SmallSet< Tdir, items > Struct Template Reference

Set containing 'items' items of 'tile and Tdir' No tree structure is used because it would cause slowdowns in most usual cases. More...


Public Member Functions

 SmallSet (const char *name)
 Constructor - just set default values and 'name'.
void Reset ()
 Reset variables to default values.
bool Overflowed ()
 Returns value of 'oveflowed'.
bool IsEmpty ()
 Checks for empty set.
bool IsFull ()
 Checks for full set.
uint Items ()
 Reads the number of items.
bool Remove (TileIndex tile, Tdir dir)
 Tries to remove first instance of given tile and dir.
bool IsIn (TileIndex tile, Tdir dir)
 Tries to find given tile and dir in the set.
bool Add (TileIndex tile, Tdir dir)
 Adds tile & dir into the set, checks for full set Sets the 'overflowed' flag if the set was full.
bool Get (TileIndex *tile, Tdir *dir)
 Reads the last added element into the set.

Private Attributes

uint n
bool overflowed
const char * name
struct SmallSet::SSdata data [items]
 Element of set.

Data Structures

struct  SSdata
 Element of set. More...


Detailed Description

template<typename Tdir, uint items>
struct SmallSet< Tdir, items >

Set containing 'items' items of 'tile and Tdir' No tree structure is used because it would cause slowdowns in most usual cases.

Definition at line 47 of file signal.cpp.


Member Function Documentation

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::Overflowed (  )  [inline]

Returns value of 'oveflowed'.

Returns:
did we try to overflow the set?

Definition at line 74 of file signal.cpp.

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::IsEmpty (  )  [inline]

Checks for empty set.

Returns:
is the set empty?

Definition at line 83 of file signal.cpp.

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::IsFull (  )  [inline]

Checks for full set.

Returns:
is the set full?

Definition at line 92 of file signal.cpp.

References SmallSet< Tdir, items >::data, and lengthof.

Referenced by SmallSet< Tdir, items >::Add().

template<typename Tdir, uint items>
uint SmallSet< Tdir, items >::Items (  )  [inline]

Reads the number of items.

Returns:
current number of items

Definition at line 101 of file signal.cpp.

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::Remove ( TileIndex  tile,
Tdir  dir 
) [inline]

Tries to remove first instance of given tile and dir.

Parameters:
tile tile
dir and dir to remove
Returns:
element was found and removed

Definition at line 113 of file signal.cpp.

References SmallSet< Tdir, items >::data.

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::IsIn ( TileIndex  tile,
Tdir  dir 
) [inline]

Tries to find given tile and dir in the set.

Parameters:
tile tile
dir and dir to find
Returns:
true iff the tile & dir elemnt was found

Definition at line 131 of file signal.cpp.

References SmallSet< Tdir, items >::data.

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::Add ( TileIndex  tile,
Tdir  dir 
) [inline]

Adds tile & dir into the set, checks for full set Sets the 'overflowed' flag if the set was full.

Parameters:
tile tile
dir and dir to add
Returns:
true iff the item could be added (set wasn't full)

Definition at line 147 of file signal.cpp.

References SmallSet< Tdir, items >::data, SmallSet< Tdir, items >::SSdata::dir, SmallSet< Tdir, items >::IsFull(), and SmallSet< Tdir, items >::SSdata::tile.

template<typename Tdir, uint items>
bool SmallSet< Tdir, items >::Get ( TileIndex tile,
Tdir *  dir 
) [inline]

Reads the last added element into the set.

Parameters:
tile pointer where tile is written to
dir pointer where dir is written to
Returns:
false iff the set was empty

Definition at line 168 of file signal.cpp.

References SmallSet< Tdir, items >::data, SmallSet< Tdir, items >::SSdata::dir, and SmallSet< Tdir, items >::SSdata::tile.


The documentation for this struct was generated from the following file:

Generated on Sun Sep 13 08:19:50 2009 for OpenTTD by  doxygen 1.5.6