Data Structures | Public Member Functions | Private Attributes

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...

Data Structures

struct  SSdata
 Element of set. 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.

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 52 of file signal.cpp.


Member Function Documentation

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 152 of file signal.cpp.

References SmallSet< Tdir, items >::data, DEBUG, and SmallSet< Tdir, items >::IsFull().

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 173 of file signal.cpp.

References SmallSet< Tdir, items >::data.

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

Checks for empty set.

Returns:
is the set empty?

Definition at line 88 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 97 of file signal.cpp.

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

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

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 136 of file signal.cpp.

References SmallSet< Tdir, items >::data.

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

Reads the number of items.

Returns:
current number of items

Definition at line 106 of file signal.cpp.

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 79 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 118 of file signal.cpp.

References SmallSet< Tdir, items >::data.


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