2009-06-25 07:16:22 -07:00
|
|
|
|
/*
|
|
|
|
|
* PortUtil.cs
|
|
|
|
|
* Copyright (c) 2009 kbinani
|
|
|
|
|
*
|
|
|
|
|
* This file is part of Boare.Lib.Vsq.
|
|
|
|
|
*
|
|
|
|
|
* Boare.Lib.Vsq is free software; you can redistribute it and/or
|
|
|
|
|
* modify it under the terms of the BSD License.
|
|
|
|
|
*
|
|
|
|
|
* Boare.Lib.Vsq is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
|
*/
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
|
|
namespace Boare.Lib.Vsq {
|
|
|
|
|
|
2009-07-30 08:02:59 -07:00
|
|
|
|
public class Vector<T> : List<T> {
|
|
|
|
|
public int size() {
|
|
|
|
|
return base.Count;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public T get( int index ) {
|
|
|
|
|
return base[index];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void set( int index, T value ) {
|
|
|
|
|
base[index] = value;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2009-06-25 07:16:22 -07:00
|
|
|
|
public interface Iterator {
|
|
|
|
|
bool hasNext();
|
|
|
|
|
object next();
|
|
|
|
|
void remove();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public class ListIterator<T> : Iterator {
|
|
|
|
|
private List<T> m_list;
|
|
|
|
|
private int m_pos;
|
|
|
|
|
|
|
|
|
|
public ListIterator( List<T> list ) {
|
|
|
|
|
m_list = list;
|
|
|
|
|
m_pos = -1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Boolean hasNext() {
|
|
|
|
|
if ( m_list != null && 0 <= m_pos + 1 && m_pos + 1 < m_list.Count ) {
|
|
|
|
|
return true;
|
|
|
|
|
} else {
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Object next() {
|
|
|
|
|
if ( m_list == null ) {
|
|
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
m_pos++;
|
|
|
|
|
return m_list[m_pos];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void remove() {
|
|
|
|
|
m_list.RemoveAt( m_pos );
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|