utilities

Metrics


toc >>

class ARRAY_OF_CHILDREN : public C_ITEM

#include "free_list.H"

Internal Class: ARRAY_OF_CHILDREN Summary: Holds an array of children. Description: If a C_QUEUE having an object of this class is cleared, then the array of children in this class will be deleted correctly.

Public Interface

virtual C_ITEM* GetArray( ) = 0;
Method: GetArray
Summary: 
Description: descendants of ARRAY_OF_CHILDREN must override this to
             return their data member.  That data member is an array.
Return: An array of objects of a class descending from C_ITEM

<<toc >>

class BASE_DATA_TYPE : public FUNDAMENTAL_DATA_TYPE

#include "DataParserTypes.H"

Public Interface

BASE_DATA_TYPE ~BASE_DATA_TYPE Exists
Find FindFirstDefine FindNextDefine
GetArraySize GetBDT GetNenum
GetNreference GetNtypes GetNumReferences
GetQtypes GetType GoToFirstReference
GoToNextReference printlevel

Public Interface

BASE_DATA_TYPE( C_QUEUE* Qatoms ) ;
~BASE_DATA_TYPE( ) ;
int Exists( char* FindName ) ;
virtual FUNDAMENTAL_DATA_TYPE* Find( char* FindName ) ;
virtual FUNDAMENTAL_DATA_TYPE* FindFirstDefine( ) ;
virtual FUNDAMENTAL_DATA_TYPE* FindNextDefine( FUNDAMENTAL_DATA_TYPE* Start ) ;
int GetArraySize( char* n ) ;
virtual BASE_DATA_TYPE* GetBDT( ) ;
int GetNenum( ) ;
int GetNreference( ) ;
virtual int GetNtypes( char* T ) ;
int GetNumReferences( char* ReferenceName ) ;
C_QUEUE* GetQtypes( ) ;
virtual char* GetType( ) ;
FUNDAMENTAL_DATA_TYPE* GoToFirstReference( char* ReferenceName ) ;
FUNDAMENTAL_DATA_TYPE* GoToNextReference( char* ReferenceName ) ;
virtual void printlevel( ostream& out , int level ) ;

<<toc >>

class BINARY_TREE

#include "BinaryTree.H"

Public Interface

BINARY_TREE operator++ operator++
operator+= operator-- operator--
operator-= CheckIntegrity Find
Find GetCurrentElement GetCurrentKey
GetCurrentKeyName GetFirstElement GetLastElement
GetNextElement GetNumElements GetPreviousElement
Insert Insert IsBalancedTreeMode
IsNormalTreeMode IsSplayTreeMode Remove
Remove RemoveFirstElement RemoveFirstElement
SetBalancedTreeMode SetNormalTreeMode SetSplayTreeMode

Public Interface

BINARY_TREE( ) ;
void* operator++( ) ;
void* operator++( int ) ;
void operator+=( void* ptr ) ;
void* operator--( ) ;
void* operator--( int ) ;
void* operator-=( void* ptr ) ;
int CheckIntegrity( ) ;
void* Find( char* keyName ) ;
void* Find( double key ) ;
void* GetCurrentElement( ) ;
double GetCurrentKey( ) ;
char* GetCurrentKeyName( ) ;
void* GetFirstElement( ) ;
void* GetLastElement( ) ;
void* GetNextElement( ) ;
int GetNumElements( ) ;
void* GetPreviousElement( ) ;
void Insert( void* element , char* keyName ) ;
void Insert( void* element , double key ) ;
int IsBalancedTreeMode( ) ;
int IsNormalTreeMode( ) ;
int IsSplayTreeMode( ) ;
void* Remove( char* keyName ) ;
void* Remove( double key ) ;
void* RemoveFirstElement( ) ;
void* RemoveFirstElement( double& key ) ;
void SetBalancedTreeMode( ) ;
void SetNormalTreeMode( ) ;
void SetSplayTreeMode( ) ;

<<toc >>

class C_BASETYPE : public C_NAMIT

#include "basetype.H"

Basetype object.

Public Interface

C_BASETYPE ~C_BASETYPE add
add_type exists get_array_size
get_element get_elements get_enum
get_enum get_enumid get_first_type
get_float get_int get_logical
get_nenum get_next_type get_ntypes
get_string get_type printfile
set_enum

Public Interface

C_BASETYPE( char* string ) ;
~C_BASETYPE( ) ;
void add( C_ITEM* item ) ;
void add_type( C_ITEM* item ) ;
int exists( char* s ) ;
int get_array_size( char* s ) ;
C_NAMIT* get_element( char* s ) ;
C_QUEUE* get_elements( ) ;
int get_enum( char* s ) ;
char* get_enum( int i ) ;
int get_enumid( char* s ) ;
C_BASETYPE* get_first_type( ) ;
float get_float( char* s , int i = - 1 ) ;
int get_int( char* s , int i = - 1 ) ;
int get_logical( char* s , int i = - 1 ) ;
int get_nenum( ) ;
C_BASETYPE* get_next_type( ) ;
int get_ntypes( ) ;
char* get_string( char* s , int i = - 1 ) ;
C_BASETYPE* get_type( char* s ) ;
virtual void printfile( FILE* fp ) ;
void set_enum( int enm ) ;

<<toc >>

class C_DBL_ITEM

#include "dbl_item.H"

Class: C_DBL_ITEM Summary: Base class for classes whose objects can be non-rollbackably inserted into doubly linked list data structures of type C_DBL_QUEUE Description: Classes must inherit from this class to be inserted into C_DBL_QUEUEs. This class does not have any rollback support, and is thus simply a generic doubly-linked queue item that can be sorted according to simulated time tags by a C_DBL_QUEUE. For doubly-linked rollbackable queues, use C_SQ_ITEMs and C_XQUEUEs. Objects of this type can only be inserted into C_DBL_QUEUEs (ie, not C_QUEUEs or C_XQUEUEs). They can also be used in a C_DBL_QUEUE used as a stack. That is, when consistantly popping from the top of the queue, pushing can be to the top or the bottom of the queue. When consistantly pushing to the top, the C_QUEUE acts as a stack. When consistantly pushing to the bottom, the C_QUEUE acts as a queue. Pushing effects are vice-versa when consistantly popping from the bottom (rather than the top) of the queue. Sorting and inserting operations always put the low time value on top so that consecutive pops off the top of the sorted queue or stack occurs in simulated time order.

Public Interface

C_DBL_ITEM get_id get_next
get_previous get_ptr get_valu
print set_id set_next
set_previous set_ptr set_valu

Public Interface

C_DBL_ITEM( ) ;
int get_id( ) ;
Method: get_id
Summary: Gets the ID of this item
Description: 
Return: The ID of this item
C_DBL_ITEM* get_next( ) ;
Method: get_next Summary: Gets the forward link from this C_DBL_ITEM to the next C_DBL_ITEM Description: Use this to get the C_DBL_ITEM linked as the next C_DBL_ITEM in the doubly-linked C_DBL_QUEUE data structure in which this C_DBL_ITEM is contained Return: The C_DBL_ITEM forwardly linked from this C_DBL_ITEM.
C_DBL_ITEM* get_previous( ) ;
Method: get_previous
Summary: Gets the backward link from this C_DBL_ITEM to the previous
         C_DBL_ITEM
Description: Use this to get the C_DBL_ITEM linked as the previous C_DBL_ITEM
             in the doubly-linked C_DBL_QUEUE data structure in which this
             C_DBL_ITEM is contained
Return: The C_DBL_ITEM backwardly linked from this C_DBL_ITEM
void* get_ptr( ) ;
Method: get_ptr
Summary: Gets the pointer of this item to its data
Description: 
Return: The pointer to this item's data
SIMTIME& get_valu( ) ;
Method: get_valu
Summary: Gets the simulated time of this item
Description: 
Return: The simulated time of this item
virtual void print( ) ;
Virtual Method: print 
Summary: By default, this method prints the ID and simulation time to stderr,
         but is user-overridable.
Description: 
Return: None
void set_id( int i ) ;
Method: set_id
Summary: Sets the ID of this item
Description: 
Return: None
i
IN: the ID of this item.
void set_next( C_DBL_ITEM* nxt ) ;
Internal Method: set_next
Summary: Sets the forward link from this C_DBL_ITEM to the next C_DBL_ITEM
Description: Use this to set the link to the next C_DBL_ITEM in the
             doubly-linked C_DBL_QUEUE data structure in which this
             C_DBL_ITEM is contained
Return: None
nxt
IN: C_ITEM to follow this one in the C_DBL_QUEUE this is currently contained in.
void set_previous( C_DBL_ITEM* prv ) ;
Internal Method: set_previous
Summary: Sets the backward link from this C_DBL_ITEM to the C_DBL_ITEM to
         precede this one
Description: Use this to set the link to the previous C_DBL_ITEM in the
             doubly-linked C_DBL_QUEUE data structure in which this
             C_DBL_ITEM is contained
Return: None
prv
IN: C_ITEM to preceed this one in the C_DBL_QUEUE this is currently contained in.
void set_ptr( void* p ) ;
Method: set_ptr
Summary: Sets the pointer of this item to its data 
Description: 
Return: None
p
IN: the pointer to this item's data.
void set_valu( const SIMTIME& v ) ;
Method: set_valu
Summary: Sets the simulated time of this item
Description: 
Return: None
v
The simulated time of this item.

<<toc >>

class C_DBL_QUEUE

#include "dbl_queue.H"

Class: C_DBL_QUEUE Summary: Doubly-linked list non-rollbackable data structure Description: This class is simply a non-rollbackable generic dounly-linked queue that sorts C_DBL_ITEMs according to simulated time tags. It can also be used as a stack. That is, when consistantly popping from the top of the queue, pushing can be to the top or the bottom of the queue. When consistantly pushing to the top, the C_DBL_QUEUE acts as a stack. When consistantly pushing to the bottom, the C_DBL_QUEUE acts as a queue. Pushing effects are vice-versa when consistantly popping from the bottom (rather than the top) of the queue (for C_XQUEUEs or C_DBL_QUEUEs only). Sorting and inserting operations always put the low time value on top so that consecutive pops off the top of the sorted queue or stack occurs in simulated time order.

Public Interface

C_DBL_QUEUE check_order get_bot
get_length get_top insert
pop_bot pop_top push_bot
push_top remove

Public Interface

C_DBL_QUEUE( ) ;
void check_order( ) ;
Internal Debugging Method: check_order
Summary: Checks if the items are in time order, from earliest to latestS
Description: 
Return: None
C_DBL_ITEM* get_bot( ) ;
Method: get_bot
Summary: Get a pointer to the item at the bottom of the queue without
         removing it from the queue.
Description: 
Return: A pointer to the item at the bottom of the queue
int get_length( ) ;
Method: get_length
Summary: Get the number of items in the queue
Description: 
Return: The number of items in the queue
C_DBL_ITEM* get_top( ) ;
Method: get_top
Summary: Get a pointer to the item at the top of the queue without removing
         it from the queue.
Description: 
Return: A pointer to the item at the top of the queue
void insert( C_DBL_ITEM* dbl_item ) ;
Method: insert
Summary: Inserts a specified item into the queue in time order (earlier time
         on top)
Description: 
Return: None
dbl_item
IN: specified item to insert.
C_DBL_ITEM* pop_bot( ) ;
Method: pop_bot
Summary: Pops a specified item off of (ie, removes a specified item from) the
         bottom of the queue and returns it
Description: 
Return: Item that has been popped off of (removed from) the bottom of the
        queue
C_DBL_ITEM* pop_top( ) ;
Method: pop_top
Summary: Pops a specified item off of (ie, removes a specified item from) the
         top of the queue and returns it
Description: 
Return: Item that has been popped off of (removed from) the top of the queue
void push_bot( C_DBL_ITEM* dbl_item ) ;
Method: push_bot
Summary: Pushes a specified item onto (ie, inserts a specified item at) the
         bottom of the queue
Description: 
Return: None
dbl_item
IN: specified item to insert.
void push_top( C_DBL_ITEM* dbl_item ) ;
Method: push_top
Summary: Pushes a specified item onto (ie, inserts a specified item at) the
         top of the queue
Description: This method moves the top pointer in this queue to the specified
             item, which then points to the old top item
Return: None
dbl_item
IN: specified item to insert.
void remove( C_DBL_ITEM* dbl_item ) ;
Method: remove
Summary: Remove (delete) an item from the queue
Description: 
Return: None
dbl_item
IN: item to remove from the queue.

<<toc >>

class C_DUMMY_V

#include "qitem.H"

Internal Class: C_DUMMY_V
Summary: Dummy class that puts the V table at the top of item objects
Description: 

Public Interface

virtual void print( ) ;

<<toc >>

class C_FREE_LIST

#include "free_list.H"

Public Interface

C_FREE_LIST ~C_FREE_LIST CopyType
GetName GetNames GetNtypes
delete_list delete_list delete_object
delete_object generate get_size
get_size new_object print
set_ntypes set_type set_type

Public Interface

C_FREE_LIST( ) ;
~C_FREE_LIST( ) ;
void CopyType( char* NewName , int NewType , int OldType ) ;
Method: CopyType
Summary: Create a new freelist type with a new name by copying the
         constructor, ToBeDeleteds, size and neach attributes from
         an old (already existing) freelist type
Description: 
Return: None
NewName
Name of new freelist type.
NewType
Type ID of new type.
OldType
Type ID of old type.
char* GetName( int i ) ;
Method: GetName
Summary: Get the name of the i'th freelist
Description: 
Return: The name of the i'th freelist
i
Element ordering of the desired freelist name.
char** GetNames( ) ;
Method: GetNames
Summary: Get a pointer to the first element of the array of names of
         freelists
Description: 
Return: Freelist name array
int GetNtypes( ) ;
Method: GetNtypes
Summary: Get the number of type IDs of freelists
Description: 
Return: The number of type IDs of freelists (ntypes)
void delete_list( C_QUEUE* q ) ;
the freelist's freelist object type ID
into which this object is to be placed 
void delete_list( C_QUEUE* q , int type ) ;
Method: delete_list
Summary: Add a list of objects back into a free list
Description: 
Return: None
q
Object list to delete.
type
Objec\t type ID to delete.
void delete_object( void* object ) ;
Overloaded Method: delete_object Summary: Put a no longer needed object, whose state currently contains a freelist object type ID, into its freelist Description: This and new_object() are the fundamental calls for the C_FREELIST class. They replace calling new and delete directly by saving no-longer-needed objects when calling delete_object() and then returning pointers to those no-longer-needed objects when calling new_object() (which is much faster than dynamically allocating a new one) if possible. If a freelist object type has no available old copies, then calling new_object() dynamically creates a new one and returns it. The name "freelist" refers to the list of currently no-longer-needed, but not deleted, objects that are available for future use. Returned objects are casted to (void *) and are not necessarily in their initialized state. Use this version of this method when the object already has a freelist object type ID. If this object has used the other version of this method before, then this version can be used thereafter. Or, if its freelist object type ID has been set by some other means, this version can be used. Return: None.
object
Object to put into its freelist, casted to (void *).
void delete_object( void* object , int type ) ;
Overloaded Method: delete_object Summary: Put a no longer needed object, which has possibly never participated in freelists before, into a freelist specified by freelist object type ID Description: This and new_object() are the fundamental calls for the C_FREELIST class. They replace calling new and delete directly by saving no-longer-needed objects when calling delete_object() and then returning pointers to those no-longer-needed objects when calling new_object() (which is much faster than dynamically allocating a new one) if possible. If a freelist object type has no available old copies, then calling new_object() dynamically creates a new one and returns it. The name "freelist" refers to the list of currently no-longer-needed, but not deleted, objects that are available for future use. Returned objects are casted to (void *) and are not necessarily in their initialized state. Use this version of this method when the object does not yet have (or may not have) a freelist object type ID, but is the type associated with the specified freelist object type ID. If this object has never set its freelist object type ID and has never been the calling argument in this version of this method before, then this version must be used, and then the other version of this method can be used thereafter. Return: None.
object
An object of the type associated with the freelist object type ID specified by this method's second argument, casted to (*void).
type
The freelist's freelist object type ID into which this object is to be placed.
void* generate( char* buff ) ;
Objec\t type ID to delete.
buff
Buffer from which to generate an object.
int get_size( C_ITEM* object ) ;
Overloaded Method: get_size
Summary: Get the size of a freelist object type
Description: The specified object must inherit from C_ITEM, or SPEEDES has
             undefined behavior. If it is a C_ITEM but not part of a
             freelist, -1 is returned.
Return: The size of the freelist object type of the specified object, or -1
        if this object is not part of a freelist
object
Pointer to an object.
int get_size( int type ) ;
Overloaded Method: get_size
Summary: Get the size of a freelist object type
Description: 
Return: The size of the specified freelist object type
type
Freelist object type ID.
void* new_object( int type ) ;
Type ID of old type.
type
An existing freelist object type ID.
void print( ostream& out = cout ) ;
Method: print
Summary: Print out status information for the free list
Description: 
Return: None
out
Ostream to which to print.
void set_ntypes( int n ) ;
Method: set_ntypes Summary: Set (and create) n types of freelist objects Description: When called the first time, this function allocates an array of n elements of size, neach, ncreated, name, constructor, ToBeDeleteds, qfree. These are the necessary attributes for each freelist object type. When called after the first time, it moves these arrays to new places in memory and adds or subtracts elements to the new array. Return: None.
n
Number of freelist types.
void set_type( char* nam , int type , TO_BE_DELETED_FUNCTION f , int sz , int n ) ;
void set_type( char* nam , int type , FREE_OBJECT_CONSTRUCTOR_FUNCTION f , int sz , int n ) ;
Method: set_type
Summary: Sets the name, constructor, size, and neach for a specified freelist
         object type
Description: There are two versions of this function.  Use the first
             one for backwards compatibility with old SPEEDES
             applications.  Use the second one if you also used the
             FREE_DEFINE_CLASS macro.
Return: None

<<toc >>

class C_GENENUM : public C_NAMIT

#include "genenum.H"

Genenum object.

Public Interface

C_GENENUM( char* string , int val ) ;
virtual int CheckEnum( ) ;
virtual void printfile( FILE* fp ) ;

<<toc >>

class C_GENFLOAT : public C_NAMIT

#include "genfloat.H"

Genfloat object.

Public Interface

C_GENFLOAT( char* string , char* val ) ;
virtual void printfile( FILE* fp ) ;

<<toc >>

class C_GENINT : public C_NAMIT

#include "genint.H"

Genint object.

Public Interface

C_GENINT( char* string , char* val ) ;
virtual void printfile( FILE* fp ) ;

<<toc >>

class C_GENLOGICAL : public C_NAMIT

#include "genlogical.H"

Genlogical object.

Public Interface

C_GENLOGICAL( char* string , char* val ) ;
virtual void printfile( FILE* fp ) ;

<<toc >>

class C_GENSTRING : public C_NAMIT

#include "genstring.H"

Genstring object.

Public Interface

C_GENSTRING( char* string , char* val ) ;
char* get_string( ) ;
virtual void printfile( FILE* fp ) ;

<<toc >>

class C_GENTYPE : public C_NAMIT

#include "gentype.H"

Gentype object.

Public Interface

C_GENTYPE get_basetype printfile
set_basetype

Public Interface

C_GENTYPE( char* string ) ;
C_BASETYPE* get_basetype( ) ;
virtual void printfile( FILE* fp ) ;
void set_basetype( C_BASETYPE* b ) ;

<<toc >>

class C_HASH

#include "hash.H"

Class: C_HASH
Summary: An array of queues with array like access to items
Description: 

Public Interface

C_HASH ~C_HASH add
combine dehash dehash
get get get_all
get_hashid get_nitems get_size
printh printq remove
remove reset

Public Interface

C_HASH( int n ) ;
Constructor Method: 
Summary: Constructs a C_HASH with a hash array of specified length
Description: 
n
Length of hash array.
~C_HASH( ) ;
void add( C_ITEM* item ) ;
Method: add
Summary: Add a specified C_ITEM to the hash table
Description: Push specified item to the bottom of the appropriate queue in
             the hash array
Return: None
item
C_ITEM to add.
void combine( ) ;
Method: combine
Summary: Concatonate each queue in this hash array into one queue, leaving
         the original hash table intact
Description: The resulting single queue can then be retrieved with the method
             get_all () and printed with printq ().
Return: None
void dehash( C_ITEM* item ) ;
Method: dehash
Summary: 
Description: 
Return: None
C_ITEM* dehash( int id ) ;
Method: dehash
Summary: 
Description: 
Return: C_ITEM
C_ITEM* get( char* name ) ;
Method: get Summary: Return the C_ITEM in this hash table specified by item's name Description: Gets the item from the appropriate queue in the hash array Return: The C_ITEM in this hash table specified by item's name.
name
Name of C_ITEM to get.
C_ITEM* get( int hid ) ;
Method: get Summary: Return the C_ITEM in this hash table specified by item's ID Description: Gets the item from the appropriate queue in the hash array Return: The C_ITEM in this hash table specified by item's ID.
hid
ID of C_ITEM to get.
C_QUEUE* get_all( ) ;
Method: get_all
Summary: Get the combined queue generated by the last call to combine ()
Description: 
Return: The combined queue generated by the last call to combine ()
int get_hashid( char* name ) ;
Method: get_hashid
Summary: Return a C_ITEM's ID in this hash table specified by its name
Description: 
Return: The C_ITEM's ID in this hash table specified by its name
name
Name of C_ITEM from whom to get ID.
int get_nitems( ) ;
Method: get_nitems
Summary: Get the number of C_ITEMs in this hash table
Description: 
Return: The number of C_ITEMs in this hash table
int get_size( ) ;
Method: get_size
Summary: Get the number of queues in this hash array
Description: 
Return: The number of queues in this hash array
void printh( ) ;
Method: printh Summary: Print each C_ITEM in the hash table Description: This prints the hash table by calling the virtual function print () on all of the C_ITEMs in the hash table. Unlike printq (), this method does not rely on first calling combine (). Return: None.
void printq( ) ;
Method: printq Summary: Print each C_ITEM in the combined hash table Description: Unlike printh (), which simply prints the hash table, this method relies on first calling combine () which concatonates the hash array into one combined queue. The resulting combined queue is printed with this method by calling the virtual function print () on all of the C_ITEMs in the combined queue. Return: None.
void remove( C_ITEM* item ) ;
Method: remove
Summary: Remove (delete) the specified item from this hash table
Description: 
Return: None
item
C_ITEM to remove.
void remove( int id ) ;
Method: remove
Summary: Remove (delete) an item from this hash table specified by its ID
Description: 
Return: None
id
ID of C_ITEM to remove.
void reset( ) ;
Method: reset
Summary: Clear the hash table
Description: Clear (delete) every queue in the hash array, then set length of
             the hash array to zero
Return: None

<<toc >>

class C_HOLDER : public C_ITEM

#include "holder.H"

Class: C_HOLDER Summary: A C_ITEM with an size-unlimited character buffer in it and the node to which it is supposed to arrive when sent as a message.

Public Interface

C_HOLDER C_HOLDER get
get_buff get_node get_size
set set_node

Public Interface

C_HOLDER( ) ;
C_HOLDER( char* b , int s , int n ) ;
Constructor Method: 
Summary: Initialize the data in the object
Description: 
b
IN: character buffer of which this object is a holder.
s
IN: size of character buffer, in bytes.
n
IN: node to which this C_HOLDER is supposed to arrive when sent as a message.
void get( char*& b , int& s , int& n ) ;
Method: get
Summary: Get all the data in this C_HOLDER
Description: 
Return: None
b
OUT: character buffer of which this object is a holder.
s
OUT: size of character buffer, in bytes.
n
OUT: node to which this C_HOLDER is supposed to arrive when sent as a message.
char* get_buff( ) ;
Method: get_buff
Summary: Get the character buffer of which this object is a holder, in bytes
Description: 
Return: The buffer
int get_node( ) ;
Method: get_node
Summary: Get the node to which this C_HOLDER is supposed to arrive when sent
         as a message
Description: 
Return: The node to which this C_HOLDER is supposed to arrive when sent as a
        message
int get_size( ) ;
Method: get_size
Summary: Get the size of the character buffer of which this object is a
         holder, in bytes
Description: 
Return: The size of the buffer, in bytes
void set( char* b , int s , int n ) ;
Method: set
Summary: Set all the data in this C_HOLDER
Description: 
Return: None
b
IN: character buffer of which this object is a holder.
s
IN: size of character buffer, in bytes.
n
IN: node to which this C_HOLDER is supposed to arrive when sent as a message.
void set_node( int n ) ;
Method: set_node
Summary: Set the node to which this C_HOLDER is supposed to arrive when sent
         as a message
Description: 
Return: None

<<toc >>

class C_ITEM : public C_DUMMY_V

#include "qitem.H"

Class: C_ITEM Summary: Base class for classes whose objects can be non-rollbackably inserted into singly linked list data structures of type C_QUEUE Description: Classes must inherit from this class to be inserted into C_QUEUEs. This class does not have any rollback support, and is thus simply a generic queue item that can be sorted according to simulated time tags by a C_QUEUE. Objects of this type can only be inserted into C_QUEUEs (ie, not C_XQUEUEs, which require rollback support). They can also be used in a C_QUEUE used as a stack. That is, popping must always be from the top of the queue (since it is singly linked) but pushing can be to the top or the bottom of the queue. When consistantly pushing to the top, the C_QUEUE acts as a stack. When consistantly pushing to the bottom, the C_QUEUE acts as a queue. Sorting and inserting operations always put the low time value on top so that popping off the sorted queue or stack occurs in simulated time order.

This class is also used as a base type for many of the other structures within SPEEDES. For example, it is used in the class C_HASH (essentially a hash table of C_QUEUE's) and in the SPEEDES event queue.

Public Interface

C_ITEM ~C_ITEM GetDoubleValue
GetName SetDoubleValue compare
copy get_freeid get_id
get_link get_time_tag print
printfile printstream put_link
set_freeid set_id set_link
set_time_tag set_time_tag set_time_tag
set_time_tag

Public Interface

C_ITEM( ) ;
virtual ~C_ITEM( ) ;
Virtual Destructor: ~C_ITEM
Summary: By default, this destructor does nothing, but is user-overridable
Description: 
double GetDoubleValue( ) ;
Method: GetDoubleValue 
Summary: Gets the simulated time tag for this C_ITEM without returning the
         priority fields
Description: 
Return: The simulated time tag (as a double without returning the priority
        fields)
virtual char* GetName( ) ;
Virtual Method: GetName 
Summary: By default, this is not implemented, but is
         user-overridable, and is intended to return the name of
         this C_ITEM.
Description: 
Return: A character pointer intended to return the name of this C_ITEM
void SetDoubleValue( double v ) ;
Method: SetDoubleValue 
Summary: Sets the simulated time tag for this C_ITEM without setting or
         affecting the SIMTIME priority fields
Description: 
Return: None
virtual int compare( C_ITEM* it ) ;
Virtual Method: compare 
Summary: By default, this method determines whether the IDs of this and
         another C_ITEM are the same. It is user-overridable.
Description:  
Return: Flag for whether the IDs of this and the passed-in C_ITEM are the 
        same
it
IN: the C_ITEM with which to compare.
virtual C_ITEM* copy( ) ;
Virtual Method: copy
Summary: By default, this is not implemented, but is user overridable.
Description: 
Return: A C_ITEM
int get_freeid( ) ;
Internal Method: get_id 
Summary: Get the free ID of this C_ITEM (for free list management)
Description: 
Return: The free ID of this C_ITEM
int get_id( ) ;
Method: get_id 
Summary: Get the ID of this C_ITEM
Description: 
Return: The ID of this C_ITEM
C_ITEM* get_link( ) ;
Method: get_link 
Summary: Gets the link for this C_ITEM (ie, the link in the singly-linked
         C_QUEUE data structure)
Description: 
Return: The link for this C_ITEM (ie, the link in the singly-linke C_QUEUE
        data structure)
SIMTIME& get_time_tag( ) ;
Method: get_time_tag 
Summary: Gets the simulated time tag for this C_ITEM
Description: 
Return: The simulated time tag (SIMTIME)
virtual void print( ) ;
Virtual Method: print 
Summary: By default, this method prints the ID and simulation time
         to stderr, but is user-overridable.
Description: 
Return: None
virtual void printfile( FILE* ) ;
Virtual Method: printfile 
Summary: By default, this is not implemented, but is
         user-overridable, and is intended to print statistics about
         this C_ITEM to a file.
Description: 
Return: None
IN: file to print to.
virtual void printstream( ostream& out ) ;
Virtual Method: printstream 
Summary: By default, this method prints the ID and simulation time
         to an ostream object, but is user-overridable.
Description: 
Return: None
out
IN: ostream object to print to.
void put_link( C_ITEM* lnk ) ;
Internal Method: put_link (same as set_link)
Summary: Sets the link for this C_ITEM (ie, the link in the singly-linked
         C_QUEUE data structure)
Description: 
Return: None
lnk
IN: next C_ITEM in the C_QUEUE.
void set_freeid( int i ) ;
Internal Method: set_id 
Summary: Set the free ID of this C_ITEM (for free list management)
Description: 
Return: None
void set_id( int i ) ;
Method: set_id 
Summary: Set the ID of this C_ITEM
Description: 
Return: None
void set_link( C_ITEM* lnk ) ;
Internal Method: set_link (same as put_link) 
Summary: Sets the link for this C_ITEM (ie, the link in the singly-linked
         C_QUEUE data structure)
Description: 
Return: None
lnk
IN: next C_ITEM in the C_QUEUE.
void set_time_tag( const SIMTIME& t ) ;
Method: set_time_tag 
Summary: Sets the simulated time tag for this C_ITEM
Description:
Return: None
t
IN: simulated time tag.
void set_time_tag( double t ) ;
Overloaded Method: set_time_tag 
Summary: Sets the simulated time tag for this C_ITEM, setting the SIMTIME
         priority fields automatically to zero.
Description:
Return: None
t
IN: time tag.
void set_time_tag( double t , int p1 ) ;
Overloaded Method: set_time_tag 
Summary: Sets the simulated time tag for this C_ITEM, setting the
         first SIMTIME priority field to a passed-in value, and
         setting the second priority field automatically to zero.
Description: 
Return: None
t
IN: time tag.
p1
IN: first priority field.
void set_time_tag( double t , int p1 , int p2 ) ;
Overloaded Method: set_time_tag 
Summary: Sets the simulated time tag for this C_ITEM, including both priority
         fields
Description: 
Return: None
t
IN: time tag.
p1
IN: first priority field.
p2
IN: second priority field.

Public Data

NET_INT freeid;
Free list id.
NET_INT id;
Id.
NET_INT item_allign;
C_ITEM* link;
SIMTIME time_tag;
Time tag of item for sorting.

<<toc >>

class C_NAMIT : public C_ITEM

#include "namit.H"

Namit object.

Public Interface

C_NAMIT C_NAMIT ~C_NAMIT
CheckEnum check_name get_name
printname setname

Public Interface

C_NAMIT( ) ;
C_NAMIT( char* string ) ;
~C_NAMIT( ) ;
virtual int CheckEnum( ) ;
int check_name( char* string ) ;
char* get_name( ) ;
void printname( ) ;
void setname( char* string ) ;

<<toc >>

class C_PARSER

#include "parser.H"

Parser object.

Public Interface

C_PARSER ~C_PARSER add_type
backup check get_basetype
list_types print_type printfile

Public Interface

C_PARSER( char* file ) ;
~C_PARSER( ) ;
void add_type( char* s ) ;
void backup( ) ;
int check( ) ;
C_BASETYPE* get_basetype( char* s ) ;
void list_types( ) ;
void print_type( char* s ) ;
void printfile( FILE* f ) ;

<<toc >>

class C_QUERY_DATA

#include "query_data.H"

Buffer object.

Public Interface

C_QUERY_DATA get_name get_value
print set_data set_data
set_data set_data set_data
set_data

Public Interface

C_QUERY_DATA( ) ;
char* get_name( ) ;
SIMTIME& get_value( ) ;
void print( ) ;
GEB2.
void set_data( char* n ) ;
void set_data( char* n , SIMTIME& tt ) ;
void set_data( char* n , double v ) ;
void set_data( char* n , int v ) ;
void set_data( char* n , double v , int P1 ) ;
void set_data( char* n , double v , int P1 , int P2 ) ;

<<toc >>

class C_QUEUE

#include "queue.H"

Class: C_QUEUE Summary: Singly linked list non-rollbackable data structure Description: This class does not have any rollback support, and is thus simply a generic queue that sorts C_ITEMs according to simulated time tags. It can also be used as a stack. That is, popping must always be from the top of the queue (since it is singly linked) but pushing can be to the top or the bottom of the queue.

When consistantly pushing to the top, this data structure acts as a stack. When consistantly pushing to the bottom, it acts as a queue. Sorting and inserting always put the low time value on top so that popping off the sorted queue or stack occurs in simulated time order.

This basic class is used throughout SPEEDES. It is used to implement the SPEEDES qheap, it shows up in the class C_HASH and in many other places.

One gotcha to watch out for is that the queue is not NULL terminated. In order to iterate through the queue, you need to first find out how many items are in the queue and then stop when that number is reached.

Public Interface

C_QUEUE clear concat
copy deque deque
fast_pop_top get_bot get_item
get_length get_top init
insert insert_after join
length merge next
pbot pop_top print
printstream ptop push_bot
push_top remove remove
reset set_bot set_length
set_top sort

Public Interface

C_QUEUE( ) ;
void clear( ) ;
Method: clear
Summary: Clear this queue and delete all the items
Description: Sets top and bottom of this queue to NULL, and number of items
             to zero
Return: None
void concat( C_QUEUE* q ) ;
Method: concat
Summary: Concatenate a specified queue with this queue, and reset the 
         specified (passed in) queue
Description: 
Return: None
q
IN: specified queue to concatenate with this queue.
C_QUEUE* copy( ) ;
Method: copy
Summary: Copy this queue
Description: 
Return: A copy of this queue
void deque( C_ITEM* item ) ;
Overloaded Method: deque
Summary: Remove (but don't delete) an item from the queue
Description: 
Return: None
item
IN: item to remove.
C_ITEM* deque( int rid ) ;
Overloaded Method: deque
Summary: Remove (but don't delete) an item from the queue
Description: 
Return: A removed (but not deleted) item from the queue
rid
IN: ID of item to remove.
C_ITEM* fast_pop_top( ) ;
Method: fast_pop_top Summary: Pops a specified item off of (ie, removes a specified item from) the top of the queue and returns it, but loses track of the number of items in the queue Description: This method has undefined (erroneous) behavior when the queue is empty or has only one item in it. It also does not decrement the number of items. If either of these issues are (or potentially are) a problem, use pop_top, which is a slower but safe routine, instead.

One reason you may use this method is that you want to quickly grab all the items off of a queue while emptying the queue. You could first find the number of items in the queue, use fast_pop_top() to get all the items and then call queue->init(NULL, NULL, 0) to set the number of items to zero. Be very careful in using this method!.

Return: Item that has been popped off of (removed from) the top of the queue.

C_ITEM* get_bot( ) ;
Method: get_bot (same as pbot)
Summary: Get a pointer to the item at the bottom of the queue without
         removing it from the queue.
Description: 
Return: A pointer to the item at the bottom of the queue
C_ITEM* get_item( int id ) ;
Method: get_item
Summary: Get a pointer to the item with a specified ID
Description: 
Return: A pointer to the item with a specified ID
id
IN: ID of item.
int get_length( ) ;
Method: get_length (same as length)
Summary: Get the number of items in the queue
Description: This method is perfect for finding out how many items
             are in a queue before you start iterating through those
             items.
Return: The number of items in the queue
C_ITEM* get_top( ) ;
Method: get_top (same as ptop)
Summary: Get a pointer to the item at the top of the queue without removing
         it from the queue.
Description: 
Return: A pointer to the item at the top of the queue
void init( C_ITEM* t , C_ITEM* b , int len ) ;
Method: init 
Summary: Initialize the queue object
Description: This should be called initially or just after clearing
             the queue. Otherwise, calling this method will
             permanently lose the current information in the queue
             and create memory leaks.
Return: None
t
IN: top of the queue.
b
IN: bottom of the queue.
len
IN: number of items in the queue.
void insert( C_ITEM* item ) ;
Method: insert (same as insert_after)
Summary: Insert a specified item into this queue, with the item having the
         lower simulated time tag on top
Description: 
Return: None
item
IN: specified item to insert into this queue.
void insert_after( C_ITEM* item ) ;
Method: insert_after (same as insert)
Summary: Insert an item into this queue, with the item having the lower 
         simulated time tag on top
Description: 
Return: None
item
IN: specified item to insert into this queue.
void join( C_QUEUE* q ) ;
Method: join
Summary: Concatenate a specified queue to this queue, but do not reset 
         the specified (passed in) queue
Description: 
Return: None
q
IN: specified queue to concatenate with this queue.
int length( ) ;
Method: length (same as get_length)
Summary: Get the number of items in the queue
Description: This method is perfect for finding out how many items
             are in a queue before you start iterating through those
             items.
Return: The number of items in the queue
void merge( C_QUEUE* q ) ;
Method: merge
Summary: Merge a specified queue into this queue in simulated time order
Description: 
Return: None
q
IN: specified queue to merge with this queue.
C_ITEM* next( C_ITEM* item ) ;
Method: next.

Summary: Get a pointer to the item in the queue immediately following (ie below) a specified item without removing it from the queue.

Description: This is a great way to walk through a queue and examine all the items. Notice that this list is not NULL terminated so you need to first find out how many items are in the list as in the following code:

C_ITEM * tempItem = queue->get_top(); int numItems = queue->get_length(); for (int i=0; i < numItems; ++i){ //Process tempItem here tempItem = queue->next(tempItem); }.

Return: A pointer to the item in the queue immediately following (ie below) a specified item without removing it from the queue.

item
IN: specified item after which the requested item lies.
C_ITEM* pbot( ) ;
Method: pbot (same as get_bot)
Summary: Get a pointer to the item at the bottom of the queue without
         removing it from the queue.
Description: 
Return: A pointer to the item at the bottom of the queue
C_ITEM* pop_top( ) ;
Method: pop_top
Summary: Pops a specified item off of (ie, removes a specified item
         from) the top of the queue and returns it
Description: 
Return: Item that has been popped off of (removed from) the top of the queue
void print( ) ;
Method: print
Summary: Print the items in this queue
Description: This calls the virtual method print() on each of the
             items in the queue.
Return: None
void printstream( ostream& out ) ;
Method: printstream
Summary: print the items in this queue using stream io
Description: This calls the virtual method printstream() on each of
             the items in the queue.
Return: None
out
IN: the ostream to which to print.
C_ITEM* ptop( ) ;
Method: ptop (same as get_top)
Summary: Get a pointer to the item at the top of the queue without removing
         it from the queue.
Description: 
Return: A pointer to the item at the top of the queue
void push_bot( C_ITEM* item ) ;
Method: push_bot
Summary: Pushes a specified item onto (ie, inserts a specified item
         at) the bottom of the queue
Description: 
Return: None
item
IN: specified item to insert.
void push_top( C_ITEM* item d item to insert ) ;
Method: push_top
Summary: Pushes a specified item onto (ie, inserts a specified item at) the
         top of the queue
Description: This method moves the top pointer in this queue to the
             specified item, which then points to the old top item
Return: None
void remove( C_ITEM* item ) ;
Overloaded Method: remove
Summary: Remove (delete) an item from the queue
Description: 
Return: None
item
IN: item to remove.
void remove( int id ) ;
Overloaded Method: remove
Summary: Remove (delete) an item from the queue
Description: This removes the item from the queue and it also
             deletes the item.  Be sure not to try to access it if
             you have a stale pointer to it!
Return: None
id
IN: ID of item to remove.
void reset( ) ;
Method: reset
Summary: Clear this queue without deleting the items
Description: Sets top and bottom of this queue to NULL, and number of items
             to zero
Return: None
void set_bot( C_ITEM* item ) ;
Method: set_bot
Summary: Set the bottom of the queue to point to a specified item
Description: This should be called initially or just after clearing
             the queue. Otherwise, calling this method will
             permanently lose the current information in the queue
             and create memory leaks.
Return: None
item
In: Item to be set as the top of the queue.
void set_length( int l ) ;
Method: set_length
Summary: Set the number of items in the queue (GET RID OF!)
Description: It is dangerous to try and use this method.  Don't use
             it unless you really know what you are doing.  It can
             result in the loss of data and the loss of pointers to
             dynamically allocated memory.
Return: None
void set_top( C_ITEM* item ) ;
IN: number of items in the queue.
item
In: Item to be set as the top of the queue.
void sort( ) ;
Method: sort Summary: Sort the queue in time order Description: If the number of items is 15 or less, this method uses insertion sort. Otherwise, it recursively divides the items into pairs of two halves until the number of items in each resulting half is 15 or less. These are sorted with insertion sort. Once each each pair has two sorted halves, the two halves are merged into one sorted temporary queue. Finally, it recursively merges all sorted temporary queues into the final sorted queue. Ie. It uses merge sort. Return: None.

<<toc >>

class C_RQUEUE

#include "rqueue.H"

Rqueue - singly linked list data structure.

Public Interface

C_RQUEUE ~C_RQUEUE delete_holder
get_average_comparisons get_average_insert get_average_loop
get_average_sort get_insert_size get_length
get_n_active get_n_created get_n_inserts
get_n_loops get_sort_size get_time
init insert pop
print set_Ncomb new_holder

Public Interface

C_RQUEUE( ) ;
~C_RQUEUE( ) ;
void delete_holder( C_RQ_HOLDER* rqh ) ;
double get_average_comparisons( ) ;
double get_average_insert( ) ;
double get_average_loop( ) ;
double get_average_sort( ) ;
int get_insert_size( ) ;
int get_length( ) ;
GEB2.
int get_n_active( ) ;
int get_n_created( ) ;
...... Statistics.
int get_n_inserts( ) ;
int get_n_loops( ) ;
int get_sort_size( ) ;
SIMTIME& get_time( ) ;
void init( ) ;
void insert( C_SQ_ITEM* it ) ;
C_SQ_ITEM* pop( ) ;
void print( ) ;
...... Print method.
void set_Ncomb( int nc ) ;
static C_RQ_HOLDER* new_holder( ) ;
...... RQ holder free list methods.

<<toc >>

class C_RQ_HOLDER : public C_SQ_ITEM

#include "rqueue.H"

Public Interface

void* get_pointer( ) ;
void init( void* ptr , const SIMTIME& time ) ;
void set_pointer( void* ptr ) ;

<<toc >>

class C_SQ_ITEM : public C_ITEM

#include "sq_item.H"

Class: C_SQ_ITEM.

Summary: Base class for classes whose objects can be rollbackably inserted into doubly-linked list data structures of type C_XQUEUE, or non-rollbackably inserted into singly-linked list data structures of type C_QUEUE Description: Classes must inherit from this class to be inserted into C_XQUEUEs or C_QUEUEs. This class is simply a generic queue item that can be sorted according to simulated time tags by a C_XQUEUE (doubly-linked) or C_QUEUE (singly-linked). All operations on a C_SQ_ITEM in or by a C_XQUEUE are rollbackable, while all operations on a C_SQ_ITEM in or by a C_QUEUE are non-rollbackable. They can also be used in a C_XQUEUE or a C_QUEUE used as a stack. That is, when consistantly popping from the top of the queue (which is the only way to pop in a C_QUEUE, since it is singly-linked), pushing can be to the top or the bottom of the queue. When consistantly pushing to the top, the C_XQUEUE or C_QUEUE acts as a stack. When consistantly pushing to the bottom, the C_XQUEUE or C_QUEUE acts as a queue. Pushing effects are vice-versa when consistantly popping from the bottom (rather than the top) of the queue (for C_XQUEUEs or C_DBL_QUEUEs only). Sorting and inserting operations always put the low time value on top so that consecutive pops off the top of the sorted queue or stack occurs in simulated time order.

Public Interface

C_SQ_ITEM get_backlink get_processed
get_queue reset_processed set_backlink
set_processed set_xinsert set_xremove

Public Interface

C_SQ_ITEM( ) ;
C_SQ_ITEM* get_backlink( ) ;
Method: get_backlink Summary: Gets the back link for this C_ITEM (ie, the link to the previous item in the doubly-linked C_XQUEUE data structure) Description: Return: The back link for this C_ITEM (ie, the link to the previous item in the doubly-linked C_XQUEUE data structure).
int get_processed( ) ;
Internal Method: get_processed
Summary: 
Description: 
Return: None
C_QUEUE* get_queue( ) ;
Internal Method: get_queue
Summary: 
Description: 
Return: None
void reset_processed( ) ;
Internal Method: reset_processed
Summary: 
Description: 
Return: None
void set_backlink( C_SQ_ITEM* bl ) ;
Internal Method: set_backlink
Summary: Sets the back link for this C_ITEM (ie, the link to the previous
         item in the doubly-linked C_XQUEUE data structure)
Description:
Return: None
void set_processed( ) ;
Internal Method: set_processed
Summary: 
Description: 
Return: None
void set_xinsert( ) ;
Internal Method: set_xinsert
Summary: 
Description: 
Return: None
void set_xremove( ) ;
Internal Method: set_xremove
Summary: 
Description: 
Return: None

Public Data

C_SQ_ITEM* backlink;
int processed;
C_QUEUE queue;
Used for rqueues.
NET_INT sq_item_allign;

<<toc >>

class C_XHASH

#include "xhash.H"

Public Interface

C_XHASH ~C_XHASH ClearAndDestroy
GetQ GetQ add
combine exchange find
find get_all get_hashid
get_length get_size printh
printq remove remove
reset

Public Interface

C_XHASH( int n ) ;
Constructor Method: 
Summary: Constructs a C_XHASH with a hash array of specified length
Description: 
n
Length of hash array.
~C_XHASH( ) ;
void ClearAndDestroy( ) ;
Method: ClearAndDestroy
Summary: Clear this hash table and delete all of the items
Description:
Return: None
C_XQUEUE* GetQ( char* name ) ;
Overloaded Method: GetQ
Summary: Get the Xqueue for the given name
Description:
Return: The Xqueue for the given name
C_XQUEUE* GetQ( int hashid = 0 ) ;
Overloaded Method: GetQ
Summary: Get the Xqueue for the given hashid
Description:
Return: The Xqueue for the given hashid
void add( C_SQ_ITEM* item ) ;
Method: add
Summary: Add a specified C_SQ_ITEM to the hash table
Description: Push specified item to the bottom of the appropriate queue in
             the hash array
Return: None
item
C_SQ_ITEM to add.
void combine( ) ;
Method: combine
Summary: Concatonate each queue in this hash array into one queue, leaving
         the original hash table intact
Description: The resulting single queue can then be retrieved with the method
             get_all () and printed with printq ().
Return: None
void exchange( C_SQ_ITEM* x_item ) ;
Internal Method: exchange
Summary: Exchange a specified C_SQ_ITEM for rollback purposes
Description: 
Return: None
x_item
IN: C_SQ_ITEM to exchange.
C_SQ_ITEM* find( char* name ) ;
Overloaded Method: find Summary: Return the C_SQ_ITEM in this hash table specified by item's name Description: Gets the item from the appropriate queue in the hash array Return: The C_SQ_ITEM in this hash table specified by item's name.
C_SQ_ITEM* find( int hid ) ;
Overloaded Method: find Summary: Return the C_SQ_ITEM in this hash table specified by item's ID Description: Gets the item from the appropriate queue in the hash array Return: The C_SQ_ITEM in this hash table specified by item's ID.
hid
ID of item to find.
C_XQUEUE* get_all( ) ;
Method: get_all
Summary: Get the combined queue generated by the last call to combine ()
Description: 
Return: The combined queue generated by the last call to combine ()
int get_hashid( char* name ) ;
Method: get_hashid
Summary: Passes in the name that is used for hashing and returns the hash
         id that is used for the array index.
Return: The hash id that is used for the array index
int get_length( ) ;
Method: get_length
Summary: Get the number of C_SQ_ITEMs in this hash table
Description: 
Return: The number of C_SQ_ITEMs in this hash table
int get_size( ) ;
Method: get_size
Summary: Get the number of queues in this hash array
Description: 
Return: The number of queues in this hash array
void printh( ) ;
Method: printh Summary: Print each C_SQ_ITEM in the hash table Description: This prints the hash table by calling the virtual function print () on all of the C_SQ_ITEMs in the hash table. Unlike printq (), this method does not rely on first calling combine (). Return: None.
void printq( ) ;
Method: printq Summary: Print each C_SQ_ITEM in the combined hash table Description: Unlike printh (), which simply prints the hash table, this method relies on first calling combine () which concatonates the hash array into one combined queue. The resulting combined queue is printed with this method by calling the virtual function print () on all of the C_SQ_ITEMs in the combined queue. Return: None.
void remove( C_SQ_ITEM* item ) ;
Method: remove
Summary: Remove (but don't delete) the specified item from this hash table
Description: 
Return: None
item
INOUT: C_SQ_ITEM to remove.
C_SQ_ITEM* remove( int id ) ;
Method: remove
Summary: Remove (but don't delete) an item from this hash table specified
         by its ID
Description: 
Return: None
id
IN: ID of C_SQ_ITEM to remove.
void reset( ) ;
Method: reset
Summary: Clear the hash table
Description: Remove (without deleting) every item in the hash table
Return: None

<<toc >>

class C_XQUEUE

#include "xqueue.H"

Class: C_XQUEUE Summary: Doubly-linked list rollbackable data structure Description: This class is simply a rollbackable generic queue that sorts C_SQ_ITEMs according to simulated time tags. It can also be used as a stack. That is, when consistantly popping from the top of the queue, pushing can be to the top or the bottom of the queue. When consistantly pushing to the top, the C_XQUEUE acts as a stack. When consistantly pushing to the bottom, the C_XQUEUE acts as a queue. Pushing effects are vice-versa when consistantly popping from the bottom (rather than the top) of the queue (for C_XQUEUEs or C_DBL_QUEUEs only). Sorting and inserting operations always put the low time value on top so that consecutive pops off the top of the sorted queue or stack occurs in simulated time order.

Public Interface

C_XQUEUE ClearAndDestroy check_integrity
exchange find get_bot
get_length get_top join
pop_bot pop_top print
push_bot push_top remove
reset set_length

Public Interface

C_XQUEUE( ) ;
void ClearAndDestroy( ) ;
Method: ClearAndDestroy
Summary: Clear this queue and delete all of the items
Description:
Return: None
int check_integrity( ) ;
Internal Debugging Method: check_integrity
Summary: Make sure the variables of this class are consistent with one
         another
Description: 
Return: None
void exchange( C_SQ_ITEM* x_item ) ;
Internal Method: exchange
Summary: Exchange an item from the queue
Description: 
Return: None
C_SQ_ITEM* find( int id ) ;
Method: find
Summary: Find (without deleting) an item from the queue
Description: 
Return: An item from the queue
id
IN: item ID to find from the queue.
C_SQ_ITEM* get_bot( ) ;
Method: get_bot
Summary: Get a pointer to the item at the bottom of the queue without
         removing it from the queue.
Description: 
Return: A pointer to the item at the bottom of the queue
int get_length( ) ;
Method: get_length
Summary: Get the number of items in the queue
Description: 
Return: The number of items in the queue
C_SQ_ITEM* get_top( ) ;
Method: get_top
Summary: Get a pointer to the item at the top of the queue without removing
         it from the queue.
Description: 
Return: A pointer to the item at the top of the queue
void join( C_XQUEUE* q ) ;
Method: join
Summary: Concatenate a specified queue to this queue, but do not reset 
         the specified queue
Description: 
Return: None
q
IN: specified queue to concatenate with this queue.
C_SQ_ITEM* pop_bot( ) ;
Method: pop_bot
Summary: Pops a specified item off of (ie, removes a specified item from) the
         bottom of the queue and returns it
Description: 
Return: Item that has been popped off of (removed from) the bottom of the
        queue
C_SQ_ITEM* pop_top( ) ;
Method: pop_top
Summary: Pops a specified item off of (ie, removes a specified item from) the
         top of the queue and returns it
Description: 
Return: Item that has been popped off of (removed from) the top of the queue
void print( ) ;
Method: print
Summary: Print the items in this queue
Description: 
Return: None
void push_bot( C_SQ_ITEM* x_item ) ;
Method: push_bot
Summary: Pushes a specified item onto (ie, inserts a specified item at) the
         bottom of the queue
Description: 
Return: None
x_item
IN: specified item to insert.
void push_top( C_SQ_ITEM* x_item ) ;
Method: push_top
Summary: Pushes a specified item onto (ie, inserts a specified item at) the
         top of the queue
Description: This method moves the top pointer in this queue to the specified
             item, which then points to the old top item
Return: None
x_item
IN: specified item to insert.
void remove( C_SQ_ITEM* x_item ) ;
Method: remove
Summary: Remove (but don't delete) an item from the queue
Description: 
Return: None
x_item
INOUT: item to remove from the queue.
void reset( ) ;
Method: reset
Summary: Clear this queue without deleting the items
Description: Sets top and bottom of this queue to NULL, and number of items
             to zero
Return: None
void set_length( int l ) ;
Method: set_length
Summary: Set the number of items in the queue (GET RID OF!)
Description: 
Return: None

<<toc >>

class DATA_PARSER

#include "DataParser.H"

Class: DATA_PARSER
Summary:  Object that reads in an input file and provides data for 
          applications.
Description: This DATA_PARSER is designed to parse files of the format
             exemplified by:

// begin example *.par file.

Set_1
{
  int i_1 14
  reference Group_1 Set_2
  reference Group_1 Set_3
  Group_1 Set_4
  {
    int i 40
  }
  Set_5
  {
    int 1 50
  }
  int i_2 16
  enum e_1
  string s_1 happy
  float f_1 1.4
  logical l_1 T
}

Set_2
{
  int i 20
}

Set_3
{
  int i 30
}

// end example *.par file.

DEFINITIONS: -Top-Level Set: A named, braced collection of primitives and/or embedded sets that is not embedded in another set -Embedded Set: A named, braced collection of primitives and/or embedded sets that is embedded in another set -Reference Set: An alias of (ie, a specifier to include) a top-level set embedded in either a top-level set or an embedded set -Set Group: A collection of embedded sets and/or reference sets nested one level into a top-level set or an embedded set unified by a common group name for the purpose of accessing each set in the group in turn via a loop control structure -Group Name: The string tag that unifies a set group -Primitive: A named value of one of the fundamental units of data extractable by the DATA_PARSER, consisting of one of the following types: integer, enumeration, logical, float, string, or define.

KEYWORDS:

-"reference":   specifies a set as a reference set, followed
                  by a group name, followed by a top-level set
                  name
-"int":         specifies a integer primitive, followed by a
                  variable name, followed by a value 
-"enum":        specifies a enumeration primitive, followed by
                  a variable name, followed by a value 
-"logical":     specifies a logical primitive, followed by a
                  variable name, followed by a value 
-"float":       specifies a floating point primitive, followed
                  by a variable name, followed by a value 
-"string":      specifies a string primitive, followed by a
                  variable name, followed by a value 
-"define":      specifies a define primitive, followed by a
                  variable name, followed by a value 

OVERVIEW: Methods are provided to move in and out of top-level sets (such as "Set_1" above), embedded sets (such as "Set_4" above), and reference sets (such as "Set_2" nested in "Set_1" above). The set to which the user has most recently moved is called the current set. Get*() methods are provided to extract primitive data (such as ints, floats, etc.) from the current set. Sets are reference sets when preceded by two words: the key word "reference" and a group name. Reference sets are nested sets that are actually an inline inclusion of a top-level set of the same set name. Sets may be grouped together for the user to loop through them by having a common group name (such as "Group_1" in the above example). Sets that are members of a group may be reference sets (such as "Set_2" nested in "Set_1" above) or embedded sets (such as "Set_4" above). When looping through a group (call it Group_1) nested one level into a set (call it Set_1), the current set changes each iteration of the loop to the nested set in Group_1 currently arrived at by the loop. This set be inline or a "reference" to a top-level set. At any point during set_a's loop through Group_1, the user may MoveIn () to the current set in Group_1, perform any Get*()'s, loop through groups, perform nested MoveIn()'s and MoveOut()'s, and then finally MoveOut () back to Set_1 and continue where Set_1 left off in its loop through Group_1. Implementation: The DATA_PARSER handles such nested navigation through a *.par file through internally keeping track of a stack of pointers to sets. It "pushes" a set pointer onto this stack when the user calls MoveIn() or MoveToFirstSetInGroup(), "pops" set pointer(s) off this stack when the user calls MoveOut () or MoveOutCompletely (), and both "pops" and "pushes" a set pointer when the user calls MoveToNextSetInGroup ().

Public Interface

DATA_PARSER ~DATA_PARSER CheckStack
Find GetArraySize GetDefine
GetEnum GetFirstDefine GetFirstType
GetFloat GetInt GetLogical
GetMark GetNdefines GetNextDefine
GetNextType GetNtypes GetNtypes
GetNumElements GetNumReferences GetNumSetsInGroup
GetReferenceName GetSetName GetString
GetType GoTo GoToFirstElement
GoToFirstReference GoToNextElement GoToNextReference
GoToType MoveIn MoveOut
MoveOutCompletely MoveToFirstSetInGroup MoveToNextSetInGroup
SetMark print

Public Interface

DATA_PARSER( const char* fileName ) ;
Constructor Method: DATA_PARSER Summary: Construct a DATA_PARSER with the file it is to parse Description: The data parser must always be constructed with the file it is to parse. Thus each DATA_PARSER is designed to parse one and only one file. To parse multiple files, simply create multiple DATA_PARSERs.
fileName
File to be parsed.
~DATA_PARSER( ) ;
int CheckStack( ) ;
void* Find( void* Mark , char* ReferenceName ) ;
Internal Method: Find
Summary: 
Description: 
Return: None
int GetArraySize( char* Name ) ;
Method: GetArraySize
Summary: Gets the size of the array of a primitive, specified by its
         name, nested one level inside of the current set, without
         changing which set is the current set
Description: If the specified primitive is not an array, this results
             in a terminal error
Return: The size of the array of a primitive, specified by its name, nested
        one level inside of the current set
char* GetDefine( char* name , int Index = - 1 ) ;
Method: GetDefine
Summary: Gets the value of a define primitive, specified by its
         name, nested one level inside of the current set, without
         changing which set is the current set
Description: If the specified primitive is not a define, this results
             in a terminal error
Return: The value of a define primitive (the string following the define
        name), specified by the define name, nested one level inside of the
        current set
int GetEnum( char* name , int Index = - 1 ) ;
Method: GetEnum Summary: Gets the value of an enumeration primitive, specified by its name, nested one level inside of the current set, without changing which set is the current set Description: If the specified primitive is not an enumeration, this results in a terminal error Return: The value of an enumeration primitive (the integral order of this primitve starting at 0 in the current set of enumerations), specified by its name, nested one level inside of the current set.
void GetFirstDefine( char*& name , char*& value ) ;
Internal Method: GetFirstDefine
Summary: 
Description: 
Return: None
void* GetFirstType( ) ;
Internal Method: GetFirstType
Summary: 
Description: 
Return: None
double GetFloat( char* name , int Index = - 1 ) ;
Method: GetFloat Summary: Gets the value of a float (floating point) primitive, specified by its name, nested one level inside of the current set, without changing which set is the current set Description: If the specified primitive is not a float, this results in a terminal error Return: The value of a float primitive, specified by its name, nested one level inside of the current set.
int GetInt( char* name , int Index = - 1 ) ;
Method: GetInt
Summary: Gets the value of an integer primitive, specified by its
         name, nested one level inside of the current set, without
         changing which set is the current set
Description: If the specified primitive is not an integer, this results
             in a terminal error
Return: The value of an integer primitive, specified by its name, nested
        one level inside of the current set
int GetLogical( char* name , int Index = - 1 ) ;
Method: GetLogical
Summary: Gets the value of a logical primitive, specified by its
         name, nested one level inside of the current set, without
         changing which set is the current set
Description: If the specified primitive is not a logical, this results
             in a terminal error
Return: The value of a logical primitive (0 for f or false, 1 for t or
        true), specified by its name, nested one level inside of the
        current set
void* GetMark( ) ;
Internal Method: GetMark
Summary: 
Description: 
Return: None
int GetNdefines( ) ;
Internal Method: GetNdefines
Summary: 
Description: 
Return: None
void GetNextDefine( char*& name , char*& value ) ;
Internal Method: GetNextDefine
Summary: 
Description: 
Return: None
void* GetNextType( void* current ) ;
Internal Method: GetNextType
Summary: 
Description: 
Return: None
int GetNtypes( ) ;
Internal Method: GetNtypes
Summary: 
Description: 
Return: None
int GetNtypes( char* Type ) ;
Internal Method: GetNtypes
Summary: 
Description: 
Return: None
int GetNumElements( void* Mark , char* ReferenceName = ( ( void* ) 0 ) ) ;
Internal Method: GetNumElements
Summary: 
Description: 
Return: None
int GetNumReferences( void* Mark , char* ReferenceName ) ;
Internal Method: GetNumReferences
Summary: 
Description: 
Return: None
int GetNumSetsInGroup( char* groupName ) ;
Method: GetNumSetsInGroup
Summary: Get the number of sets belonging to the specified set group
         nested one level in from the current set. This method does
         not change which set is the current set.
Description: This method is normally used just before looping
             through a set group so as to know how many sets to loop
             through.
Return: The number of sets belonging to a reference name group nested one
        level in from the current set
groupName
Group name of the set group of interest.
char* GetReferenceName( ) ;
Internal Method: GetReferenceName
Summary: 
Description: 
Return: None
char* GetSetName( ) ;
Method: GetSetName
Summary: Gets the name of the current set
Description: 
Return: The name of the current set
char* GetString( char* name , int Index = - 1 ) ;
Method: GetString
Summary: Gets the value of a string primitive, specified by its
         name, nested one level inside of the current set, without
         changing which set is the current set
Description: If the specified primitive is not a string, this results
             in a terminal error
Return: The value of a string primitive, specified by its name, nested
        one level inside of the current set
char* GetType( ) ;
Internal Method: GetType
Summary: 
Description: 
Return: None
void* GoTo( char* FirstName , ... ) ;
Internal Method: GoTo
Summary: 
Description: 
Return: None
void* GoToFirstElement( void* Mark , char* ReferenceName = ( ( void* ) 0 ) ) ;
Internal Method: GoToFirstElement
Summary: 
Description: 
Return: None
void* GoToFirstReference( void* Mark , char* ReferenceName ) ;
Internal Method: GoToFirstReference
Summary: 
Description: 
Return: None
void* GoToNextElement( void* Mark , char* ReferenceName = ( ( void* ) 0 ) ) ;
Internal Method: GoToNextElement
Summary: 
Description: 
Return: None
void* GoToNextReference( void* Mark , char* ReferenceName ) ;
Internal Method: GoToNextReference
Summary: 
Description: 
Return: None
void* GoToType( char* TypeName ) ;
Internal Method: *GoToType
Summary: 
Description: 
Return: None
int MoveIn( char* setName ) ;
Method: MoveIn Summary: Move into a top-level set (if not currently in a set) or into a set nested in the current set. The set moved to is called the current set, in which subsequant data extraction is possible. Description: MoveIn () is used to move to a set (with or without a reference name or the keyword "reference") that is nested in the current set (ie, the set to which the user last moved). MoveIn () must be called at least once (ie, to move to a top-level set and then move into nested sets as desired) before any data extraction is possible. MoveIn (), MoveOut (), MoveOutCompletely (), MoveToFirstSetInGroup (), and MoveToNextSetInGroup () are the five recommended methods to use for navigating through the nested data structures in a *.par file. Return: Success flag.
setName
The name of the set into which to move.
void MoveOut( int numLevels = 1 ) ;
Method: MoveOut
Summary: Move out of a set to the set in which it is nested,
         optionally multiple times
Description: MoveOut () changes the current set to be the set in
             which the cureent set is nested. MoveIn (), MoveOut (),
             MoveOutCompletely (), MoveToFirstSetInGroup (), and
             MoveToNextSetInGroup () are the five recommended methods
             to use for navigating through the nested data
             structures in a *.par file.
Return: None
numLevels
The number of MoveOuts to execute.
void MoveOutCompletely( ) ;
Method: MoveOutCompletely Summary: Jump out of the arbitrarily deeply nested current set, such that the next call to MoveIn () moves to a top-level set. Description: MoveOutCompletely () is equivalent to calling MoveOut () multiple times until no longer in any sets (ie, reseting the DATA_PARSER to the initial condition where there is no current set). Thus, the user must call MoveIn () with a top-level set as the argument just after calling MoveOutCompletely () in order to do any subsequent data extraction. MoveIn (), MoveOut (), MoveOutCompletely (), MoveToFirstSetInGroup (), and MoveToNextSetInGroup () are the five recommended methods to use for navigating through the nested data structures in a *.par file. Return: None.
int MoveToFirstSetInGroup( char* groupName ) ;
Method: MoveToFirstSetInGroup Summary: Moves into the first set of the specified set group. The set to which the DATA_PARSER moves becomes the current set. Description: If the first set in the specified set group is an inline set, the DATA_PARSER will move one nested level into that set, which becomes the current set. On the other hand, if the first set in the specified set group is a reference, the DATA_PARSER will actually move to the top-level set referenced and make that set the current set. MoveIn (), MoveOut (), MoveOutCompletely (), MoveToFirstSetInGroup (), and MoveToNextSetInGroup () are the five recommended methods to use for navigating through the nested data structures in a .par file. Return: 1=success, 0=fail.
groupName
Group name of the set group of interest.
int MoveToNextSetInGroup( ) ;
Method: MoveToNextSetInGroup Summary: Moves into the next set of the set group specified by the last call to MoveToFirstSetInGroup () at this level in the nested structure. The set to which the DATA_PARSER moves becomes the current set. Description: If the next set in the set group specified by the last call to MoveToFirstSetInGroup () is an inline set, the DATA_PARSER will move out of the current set and then into that inline set, which becomes the current set. On the other hand, if the next set is a reference, the DATA_PARSER will move out of the current set and then actually move to the top-level set referenced and make that set the current set. MoveIn (), MoveOut (), MoveOutCompletely (), MoveToFirstSetInGroup (), and MoveToNextSetInGroup () are the five recommended methods to use for navigating through the nested data structures in a *.par file. Return: 1=success, 0=fail (no more sets in group).
void SetMark( void* Mark ) ;
Internal Method: SetMark
Summary: 
Description: 
Return: None
void print( ostream& out = cout ) ;
Method: print
Summary: Print this DATA_PARSER's *.par file with appropriate indentation
Description: 
Return: None

<<toc >>

class DEFINE_DATA_TYPE : public FUNDAMENTAL_DATA_TYPE

#include "DataParserTypes.H"

Public Interface

DEFINE_DATA_TYPE ~DEFINE_DATA_TYPE GetType
GetValue printlevel

Public Interface

DEFINE_DATA_TYPE( C_QUEUE* Qatoms ) ;
~DEFINE_DATA_TYPE( ) ;
virtual char* GetType( ) ;
char* GetValue( ) ;
virtual void printlevel( ostream& out , int level ) ;

<<toc >>

class DESTINATION

#include "Destination.H"

Class definition for defining destinations when multicasting. Note that destination-based multicasting is not the normal way people thing about multicasting with multicast groups. However, this is the way SPEEDES defines multicasting. Optimizations for supporting this service can be made available on shared memory, networks, etc., so it is useful to provide this capability.

Public Interface

DESTINATION DESTINATION ~DESTINATION
operator+= operator-= operator==
Check GetDestination GetFirstNode
GetNbytes GetNextNode GetNnodes
PackBuffer Reset Reset
Set SetNnodes UnpackBuffer
print

Public Interface

DESTINATION( ) ;
DESTINATION( int Nnodes ) ;
~DESTINATION( ) ;
void operator+=( int node ) ;
void operator-=( int node ) ;
int operator==( int node ) ;
int Check( int node ) ;
char* GetDestination( ) ;
int GetFirstNode( ) ;
int GetNbytes( ) ;
int GetNextNode( int node ) ;
int GetNnodes( ) ;
char* PackBuffer( int& Nbytes ) ;
void Reset( ) ;
void Reset( int node ) ;
void Set( int node ) ;
void SetNnodes( int Nnodes ) ;
void UnpackBuffer( char* buff ) ;
void print( ostream& out ) ;

<<toc >>

class DYN_PTR_ARRAY

#include "DynArray.H"

Public Interface

DYN_PTR_ARRAY ~DYN_PTR_ARRAY operator[]
GetArraySize

Public Interface

DYN_PTR_ARRAY( int sizeOfArray = 2 ) ;
~DYN_PTR_ARRAY( ) ;
void*& operator[]( int index ) ;
Dynamic array operators.
int GetArraySize( ) ;

<<toc >>

class ENDIAN_NATURE

#include "EndianNature.H"

#define NOISY_ENDIAN_NATURE.

Public Interface

BigEndian=0
LittleEndian=1
static void DetermineEndianNature( ) ;
static char GetEndianNature( ) ;

<<toc >>

class ENUM_DATA_TYPE : public FUNDAMENTAL_DATA_TYPE

#include "DataParserTypes.H"

Public Interface

ENUM_DATA_TYPE GetType GetValue
printlevel

Public Interface

ENUM_DATA_TYPE( C_QUEUE* Qatoms , int n ) ;
virtual char* GetType( ) ;
int GetValue( ) ;
virtual void printlevel( ostream& out , int level ) ;

<<toc >>

class FLOAT_DATA_TYPE : public FUNDAMENTAL_DATA_TYPE

#include "DataParserTypes.H"

Public Interface

FLOAT_DATA_TYPE GetType GetValue
printlevel

Public Interface

FLOAT_DATA_TYPE( C_QUEUE* Qatoms ) ;
virtual char* GetType( ) ;
double GetValue( ) ;
virtual void printlevel( ostream& out , int level ) ;

<<toc >>

class FUNDAMENTAL_DATA_TYPE : public C_ITEM

#include "DataParserTypes.H"

Public Interface

FUNDAMENTAL_DATA_TYPE ~FUNDAMENTAL_DATA_TYPE Find
GetBDT GetName GetNtypes
GetType printlevel

Public Interface

FUNDAMENTAL_DATA_TYPE( C_QUEUE* Qatoms ) ;
virtual ~FUNDAMENTAL_DATA_TYPE( ) ;
virtual FUNDAMENTAL_DATA_TYPE* Find( char* FindName ) ;
virtual BASE_DATA_TYPE* GetBDT( ) ;
virtual char* GetName( ) ;
virtual int GetNtypes( char* T ) ;
virtual char* GetType( ) ;
virtual void printlevel( ostream& out , int level ) ;

<<toc >>

class HASH_TREE

#include "HashTree.H"

Public Interface

HASH_TREE HASH_TREE operator++
operator++ operator+= operator--
operator-- operator-= CheckIntegrity
Find Find GetArraySize
GetBinaryTree GetBinaryTree GetCurrentElement
GetFirstElement GetHashId GetLastElement
GetNextElement GetNumElements GetPreviousElement
Insert Insert IsBalancedTreeMode
IsNormalTreeMode IsSplayTreeMode Remove
Remove SetArraySize SetBalancedTreeMode
SetNormalTreeMode SetSplayTreeMode

Public Interface

HASH_TREE( ) ;
HASH_TREE( int arraySize ) ;
void* operator++( ) ;
void* operator++( int ) ;
void operator+=( void* ptr ) ;
void* operator--( ) ;
void* operator--( int ) ;
void* operator-=( void* ptr ) ;
int CheckIntegrity( ) ;
void* Find( char* keyName ) ;
void* Find( int key ) ;
int GetArraySize( ) ;
BINARY_TREE* GetBinaryTree( ) ;
BINARY_TREE* GetBinaryTree( int arrayIndex ) ;
void* GetCurrentElement( ) ;
void* GetFirstElement( ) ;
int GetHashId( char* keyName ) ;
void* GetLastElement( ) ;
void* GetNextElement( ) ;
int GetNumElements( ) ;
void* GetPreviousElement( ) ;
void Insert( void* element , char* keyName ) ;
void Insert( void* element , int key ) ;
int IsBalancedTreeMode( ) ;
int IsNormalTreeMode( ) ;
int IsSplayTreeMode( ) ;
void* Remove( char* keyName ) ;
void* Remove( int key ) ;
void SetArraySize( int arraySize ) ;
void SetBalancedTreeMode( ) ;
void SetNormalTreeMode( ) ;
void SetSplayTreeMode( ) ;

<<toc >>

class INT_DATA_TYPE : public FUNDAMENTAL_DATA_TYPE

#include "DataParserTypes.H"

Public Interface

INT_DATA_TYPE GetType GetValue
printlevel

Public Interface

INT_DATA_TYPE( C_QUEUE* Qatoms ) ;
virtual char* GetType( ) ;
int GetValue( ) ;
virtual void printlevel( ostream& out , int level ) ;

<<toc >>

class LIST

#include "List.H"

LIST - doubly linked list data structure.

Public Interface

LIST operator++ operator+=
operator-- operator-= DeleteItem
GetBot GetFirstElement GetLastElement
GetLength GetNext GetNextElement
GetNumElements GetPrevious GetPreviousElement
GetTop Insert InsertBot
InsertBotItem InsertItem InsertTop
InsertTopItem ItemPopBot ItemPopTop
ItemPushBot ItemPushTop NewItem
PopBot PopTop PrintStream
PushBot PushTop Remove
Remove RemoveBot RemoveBotItem
RemoveItem RemoveTop RemoveTopItem
Reset get_bot get_length
get_next get_previous get_top
pop_bot pop_item_bot pop_item_top
pop_top push_bot push_item_bot
push_item_top push_top remove
reset

Public Interface

LIST( ) ;
Constructor: LIST
Summary: Constructs the LIST (no arguments required)
Description:
Return:
void* operator++( ) ;
Overloaded operators.
void* operator+=( void* v ) ;
Operator: +=
Summary: Inserts an element to the bottom of the list
Description:
Return: The list item container
void* operator--( ) ;
Operator: --
Summary: Returns the previous element in the list
Description:
Return: The previous element in the list (NULL if no previous element)
void operator-=( void* v ) ;
Operator: -=
Summary: Removes an element from the list
Description:
Return:
void DeleteItem( LIST_ITEM* item ) ;
Method: DeleteItem Summary: Deletes a list item using the internal free list. The list item is returned to the free list instead of being actually deleted. Description: The list uses a free list to manage the list item classes that contain the elements in the list.LIST items are reused in the free list to improve performance Return: The new list item.
patibility* / void* GetBot( ) ;
Backward compatibility.
void* GetFirstElement( ) ;
Method: GetFirstElement
Summary: Get a void pointer to the first element in the list
Description: 
Return: A void pointer to the first element in the list
void* GetLastElement( ) ;
Method: GetLastElement
Summary: Get a void pointer to the last element in the list
Description: 
Return: A void pointer to the last element in the list
int GetLength( ) ;
Backward compatibility.
void* GetNext( ) ;
Backward compatibility.
void* GetNextElement( ) ;
Method: GetNextElement
Summary: Get a void pointer to the next element in the list
Description: 
Return: A void pointer to the next element in the list
int GetNumElements( ) ;
Method: GetNumElements
Summary: Get the number of elements in the list
Description: 
Return: The number of elements in the list
void* GetPrevious( ) ;
Backward compatibility.
void* GetPreviousElement( ) ;
Method: GetPreviousElement
Summary: Get a void pointer to the previous element in the list
Description: 
Return: A void pointer to the previous element in the list
void* GetTop( ) ;
Backward compatibility.
void* Insert( void* v ) ;
Method: Insert
Summary: Insert an element on the top of the list (same as InsertTop)
Description: 
Return: Pointer to the list item that contains the inserted element
void* InsertBot( void* v ) ;
Method: InsertBot
Summary: Insert an element on the bottom of the list
Description: 
Return: Pointer to the removed element
void InsertBotItem( LIST_ITEM* item ) ;
Method: InsertBotItem
Summary: Insert a list item to the bottom of the list
Description: 
Return:
void InsertItem( LIST_ITEM* item ) ;
Method: InsertItem
Summary: Insert a list item to the top of the list (same as InsertTopItem)
Description: 
Return:
void* InsertTop( void* v ) ;
Method: InsertTop
Summary: Insert an element on the top of the list
Description: 
Return: Pointer to the list item that contains the inserted element
void InsertTopItem( LIST_ITEM* item ) ;
Method: InsertTopItem
Summary: Insert a list item to the top of the list
Description: 
Return:
LIST_ITEM* ItemPopBot( ) ;
Backward compatibility.
LIST_ITEM* ItemPopTop( ) ;
Backward compatibility.
void ItemPushBot( LIST_ITEM* item ) ;
Backward compatibility.
void ItemPushTop( LIST_ITEM* item ) ;
Backward compatibility.
LIST_ITEM* NewItem( ) ;
Free LIST Methods.
void* PopBot( ) ;
Backward compatibility.
void* PopTop( ) ;
Backward compatibility.
void PrintStream( ostream& out ) ;
Method: PrintStream
Summary: Prints summary information about the list to an ostream
Description: 
Return:
void* PushBot( void* v ) ;
Backward compatibility.
void* PushTop( void* v ) ;
Backward compatibility.
void* Remove( ) ;
Method: Remove
Summary: Remove an element from the top of the list (same as RemoveTop)
Description: 
Return: Pointer to the removed element
void Remove( void* v ) ;
Method: Remove
Summary: Removes an element from the list
Description: 
Return:
void* RemoveBot( ) ;
Method: RemoveBot
Summary: Remove an element from the bottom of the list
Description: 
Return: Pointer to the removed element
LIST_ITEM* RemoveBotItem( ) ;
Method: RemoveBotItem
Summary: Remove a list item from the bottom of the list
Description: 
Return: Pointer to the removed list item
LIST_ITEM* RemoveItem( ) ;
LIST_ITEM inline methods.
void* RemoveTop( ) ;
Method: RemoveTop
Summary: Remove an element from the top of the list
Description: 
Return: Pointer to the removed element
LIST_ITEM* RemoveTopItem( ) ;
Method: RemoveTopItem
Summary: Remove a list item from the top of the list
Description: 
Return: Pointer to the removed list item
void Reset( ) ;
Method: Reset
Summary: Clear the list pointers without deleting anything the list points to
Description: Set length to zero, and the top and bottom pointers to NULL
Return: None
void* get_bot( ) ;
int get_length( ) ;
void* get_next( ) ;
void* get_previous( ) ;
void* get_top( ) ;
void* pop_bot( ) ;
LIST_ITEM* pop_item_bot( ) ;
LIST_ITEM* pop_item_top( ) ;
void* pop_top( ) ;
void* push_bot( void* v ) ;
void push_item_bot( LIST_ITEM* item ) ;
void push_item_top( LIST_ITEM* item ) ;
void* push_top( void* v ) ;
void remove( void* v ) ;
Backward compatibility.
void reset( ) ;
Backward compatibility.

<<toc >>

struct LIST_ITEM

#include "List.H"

Public Interface

Public Data

LIST_ITEM* BackwardLink;
LIST_ITEM* ForwardLink;
void* Reference;

<<toc >>

class LOGICAL_DATA_TYPE : public FUNDAMENTAL_DATA_TYPE

#include "DataParserTypes.H"

Public Interface

LOGICAL_DATA_TYPE GetType GetValue
printlevel

Public Interface

LOGICAL_DATA_TYPE( C_QUEUE* Qatoms ) ;
virtual char* GetType( ) ;
int GetValue( ) ;
virtual void printlevel( ostream& out , int level ) ;

<<toc >>

class NAME_VALUE

#include "NameValueList.H"

Public Interface

NAME_VALUE( ) ;
~NAME_VALUE( ) ;

Public Data

char* Name;
double Value;

<<toc >>

class NAME_VALUE_LIST

#include "NameValueList.H"

Public Interface

NAME_VALUE_LIST NAME_VALUE_LIST NAME_VALUE_LIST
~NAME_VALUE_LIST Allign8Bytes GetName
GetNameOfList GetNameValue GetNameValue
GetNitems GetSizeOfBuffer GetValue
GetValue MakeBuffer PackBuffer
Print ResetIterator Resize
SetName SetNameOfList SetNameValue
SetNameValue SetNitems Sort
UnPackBuffer

Public Interface

NAME_VALUE_LIST( ) ;
NAME_VALUE_LIST( char* Buffer ) ;
NAME_VALUE_LIST( int n ) ;
~NAME_VALUE_LIST( ) ;
int Allign8Bytes( int size ) ;
char* GetName( int i ) ;
char* GetNameOfList( ) ;
void GetNameValue( char*& N , double& V ) ;
void GetNameValue( int i , char*& N , double& V ) ;
int GetNitems( ) ;
int GetSizeOfBuffer( ) ;
double GetValue( int i ) ;
double GetValue( char* N , int& NameFound ) ;
char* MakeBuffer( int& Size ) ;
void PackBuffer( char* Buffer , int Size ) ;
void Print( ostream& out = cout ) ;
void ResetIterator( ) ;
void Resize( int s ) ;
void SetName( char* N ) ;
void SetNameOfList( char* NOL ) ;
void SetNameValue( char* N , double V ) ;
void SetNameValue( int i , char* N , double V ) ;
void SetNitems( int n ) ;
void Sort( ) ;
void UnPackBuffer( char* Buffer ) ;

<<toc >>

class PRIORITY_TREE

#include "PriorityTree.H"

Public Interface

PRIORITY_TREE CheckIntegrity GetCurrentPriority
GetNumElements Insert IsBalancedTreeMode
IsNormalTreeMode IsSplayTreeMode Remove
Remove Retract SetBalancedTreeMode
SetNormalTreeMode SetSplayTreeMode

Public Interface

PRIORITY_TREE( ) ;
int CheckIntegrity( ) ;
double GetCurrentPriority( ) ;
int GetNumElements( ) ;
void* Insert( void* element , double priority ) ;
int IsBalancedTreeMode( ) ;
int IsNormalTreeMode( ) ;
int IsSplayTreeMode( ) ;
void* Remove( ) ;
void* Remove( double& priority ) ;
int Retract( void* RetractionHandle ) ;
void SetBalancedTreeMode( ) ;
void SetNormalTreeMode( ) ;
void SetSplayTreeMode( ) ;

<<toc >>

class REFERENCE_DATA_TYPE : public FUNDAMENTAL_DATA_TYPE

#include "DataParserTypes.H"

Public Interface

REFERENCE_DATA_TYPE ~REFERENCE_DATA_TYPE Find
GetBDT GetNtypes GetType
GetValue SetQref SetValue
printlevel

Public Interface

REFERENCE_DATA_TYPE( C_QUEUE* Qatoms ) ;
~REFERENCE_DATA_TYPE( ) ;
virtual FUNDAMENTAL_DATA_TYPE* Find( char* FindName ) ;
virtual BASE_DATA_TYPE* GetBDT( ) ;
virtual int GetNtypes( char* T ) ;
virtual char* GetType( ) ;
BASE_DATA_TYPE* GetValue( ) ;
void SetQref( C_QUEUE* Q ) ;
void SetValue( BASE_DATA_TYPE* BDT ) ;
virtual void printlevel( ostream& out , int level ) ;

<<toc >>

class REF_ITEM : public C_ITEM

#include "DataParserTypes.H"

Public Interface

Public Data

REFERENCE_DATA_TYPE* RDT;

<<toc >>

class Random

#include "Random.h"

Public Interface

Random operator() generator
generator

Public Interface

Random( RNG* generator ) ;
virtual double operator()( ) = 0;
RNG* generator( ) ;
void generator( RNG* p ) ;

<<toc >>

class SIMTIME

#include "simtime.H"

Class: SIMTIME Summary: An abstract representation of simulated time Description: SIMTIME uses a double for representing the physical time and then two integer priority fields for breaking physical time ties. This is for repeatability when on multiple nodes and rollbacks are involved. Since rollbacks are not repeatable, when events are rescheduled, there must be a way to order them the same way each time they are reprocessed. Since physical times are often the same, priorities are needed to indicate the order in which events which have the same physical time are to be processed. The first priority field has precedence over the second priority field. The combination of the physical time and the two priority fields is called logical time. Repeatable rollbackable simulations are assured only if events always schedule new events in future logical time. In other words, scheduling must either have physical time non-zero lookahead, or physical time zero lookahead with higher priority values (meaning later logical time) than the priorities of the current event.

Public Interface

SIMTIME SIMTIME operator=
operator= operator double operator!=
operator!= operator+= operator+=
operator-= operator-= operator<
operator< operator<= operator<=
operator== operator== operator>
operator> operator>= operator>=
DecrementPriority1 DecrementPriority2 GetCounter
GetPriority1 GetPriority2 GetTime
GetUniqueId IncrementPriority1 IncrementPriority2
SetCounter SetPriority SetPriority
SetPriority1 SetPriority2 SetTime
SetUniqueId SetValues print

Public Interface

SIMTIME( const SIMTIME& x ) ;
Constructor: SIMTIME ()
Summary: Copy constructor
Description: Explicit copy constructors are required for the APEX
             compiler from Rational since it creates a faulty
             default copy constructor
x
In: SIMTIME which we will copy into *this.
SIMTIME( double t = DefaultTime , int p1 = DefaultPriority1 , int p2 = DefaultPriority2 , int counter = DefaultCounter , int uniqueId = DefaultUniqueId ) ;
Constructor: SIMTIME (same as SetValues ()) Summary: Set the three values in the SIMTIME object Description: The three values are 1. Physical time, 2. First priority field, 3. Second priority field.
t
Physical time.
p1
First priority field.
p2
Second priority field.
counter
Counter priority field.
uniqueId
Unique id tie-breaking field.
SIMTIME& operator=( const SIMTIME& tt ) ;
Method: operator =
Summary: When assigned to another SIMTIME, this SIMTIME undergoes an
         element-by-element copy, INCLUDING CHANGING ITS PRIORITIES
Description: 
Return: A reference to this SIMTIME object
SIMTIME& operator=( double t ) ;
Method: operator =
Summary: When assigned to a double, SIMTIME assigns that double to its
         physical time WITHOUT CHANGING ITS PRIORITIES
Description: 
Return: A reference to this SIMTIME object
operator double( ) const;
Method: operator double
Summary: When used as a primitive, SIMTIME automatically converts to a double
         representing its physical time
Description: 
Return: The physical time
int operator!=( double t ) const;
int operator!=( const SIMTIME& tt ) const;
Method: operator !=
Summary: Perform a not-equal logical time comparison between this SIMTIME and
         another SIMTIME
Description: That this is a logical time comparison means that the physical
             time is compared and if they are equal, the first priority
             fields are compared and if they are equal, the second priority
             fields are compared
Return: Whether this SIMTIME is not equal to the specified SIMTIME in logical
        time
SIMTIME& operator+=( SIMTIME& tt ) ;
Method: operator +=
Summary: When add-assigned to another SIMTIME, SIMTIME adds that double to
         its physical time INCLUDING CHANGING ITS PRIORITIES
Description: 
Return: A reference to this SIMTIME object
SIMTIME& operator+=( double t ) ;
Method: operator +=
Summary: When add-assigned to a double, SIMTIME adds that double to its
         physical time WITHOUT CHANGING ITS PRIORITIES
Description: 
Return: A reference to this SIMTIME object
SIMTIME& operator-=( SIMTIME& tt ) ;
Method: operator -=
Summary: When substract-assigned to another SIMTIME, SIMTIME subtracts that
         double from its physical time INCLUDING CHANGING ITS PRIORITIES
Description: 
Return: A reference to this SIMTIME object
SIMTIME& operator-=( double t ) ;
Method: operator -=
Summary: When subtract-assigned to a double, SIMTIME subtracts that double
         from its physical time WITHOUT CHANGING ITS PRIORITIES
Description: 
Return: A reference to this SIMTIME object
int operator<( const SIMTIME& tt ) const;
Method: operator <
Summary: Perform a less-than logical time comparison between this SIMTIME and
         another SIMTIME
Description: That this is a logical time comparison means that the physical
             time is compared and if they are equal, the first priority
             fields are compared and if they are equal, the second priority
             fields are compared
Return: Whether this SIMTIME is earlier than the specified SIMTIME in
        logical time
int operator<( double t ) const;
Comparison operators between a SIMTIME and a double.
int operator<=( double t ) const;
int operator<=( const SIMTIME& tt ) const;
Method: operator <=
Summary: Perform a less-than-or-equal logical time comparison between this
         SIMTIME and another SIMTIME
Description: That this is a logical time comparison means that the physical
             time is compared and if they are equal, the first priority
             fields are compared and if they are equal, the second priority
             fields are compared
Return: Whether this SIMTIME is earlier or equal to the specified SIMTIME in
        logical time
int operator==( double t ) const;
int operator==( const SIMTIME& tt ) const;
Method: operator ==
Summary: Perform an equality logical time comparison between this SIMTIME and
         another SIMTIME
Description: That this is a logical time comparison means that the physical
             time is compared and if they are equal, the first priority
             fields are compared and if they are equal, the second priority
             fields are compared
Return: Whether this SIMTIME is equal to the specified SIMTIME in logical
        time
int operator>( double t ) const;
int operator>( const SIMTIME& tt ) const;
Method: operator >
Summary: Perform a greater-than logical time comparison between this SIMTIME
         and another SIMTIME
Description: That this is a logical time comparison means that the physical
             time is compared and if they are equal, the first priority
             fields are compared and if they are equal, the second priority
             fields are compared
Return: Whether this SIMTIME is later than the specified SIMTIME in
        logical time
int operator>=( double t ) const;
int operator>=( const SIMTIME& tt ) const;
Method: operator >=
Summary: Perform a greater-than-or-equal logical time comparison between this
         SIMTIME and another SIMTIME
Description: That this is a logical time comparison means that the physical
             time is compared and if they are equal, the first priority
             fields are compared and if they are equal, the second priority
             fields are compared
Return: Whether this SIMTIME is later or equal to the specified SIMTIME in
        logical time
SIMTIME& DecrementPriority1( int value = 1 ) ;
Method: DecrementPriority1
Summary: Subtract a specified amount from the first priority field (default=1)
Description: 
Return: A reference to this SIMTIME object
value
Amount to subtract from first priority field.
SIMTIME& DecrementPriority2( int value = 1 ) ;
Method: DecrementPriority2
Summary: Subtract a specified amount from the second priority field (default=1)
Description: 
Return: A reference to this SIMTIME object
value
Amount to subtract from second priority field.
int GetCounter( ) const;
Method: GetCounter
Summary: Get the counter field
Description: 
Return: The counter field 
int GetPriority1( ) const;
Method: GetPriority1
Summary: Get the first priority field
Description: 
Return: The first priority field value
int GetPriority2( ) const;
Method: GetPriority2
Summary: Get the second priority field
Description: 
Return: The second priority field 
double GetTime( ) const;
Method: GetTime
Summary: Get the physical time
Description: 
Return: The physical time
int GetUniqueId( ) const;
Method: GetUniqueId
Summary: Get the unique id field
Description: 
Return: The unique id field
SIMTIME& IncrementPriority1( int value = 1 ) ;
Method: IncrementPriority1
Summary: Add a specified amount to the first priority field (default=1)
Description: 
Return: A reference to this SIMTIME object
value
Amount to add to first priority field.
SIMTIME& IncrementPriority2( int value = 1 ) ;
Method: IncrementPriority2
Summary: Add a specified amount to the second priority field (default=1)
Description: 
Return: A reference to this SIMTIME object
value
Amount to add to first priority field.
void SetCounter( int counter ) ;
Method: SetCounter
Summary: Set the counter field
Description: 
Return: None
counter
Counter field value.
void SetPriority( int p1 ) ;
Overloaded Method: SetPriority (same as SetPriority1)
Summary: Set the first priority field
Description: 
Return: None
p1
First priority field value.
void SetPriority( int p1 , int p2 ) ;
Overloaded Method: SetPriority
Summary:  Set the first and second priority fields
Description: 
Return: None
p1
First priority field value.
p2
Second priority field value.
void SetPriority1( int p ) ;
Method: SetPriority1 (same as SetPriority)
Summary: Set the first priority field
Description: 
Return: None
p
First priority field value.
void SetPriority2( int p ) ;
Method: SetPriority2
Summary: Set the second priority field
Description: 
Return: None
p
Second priority field value.
void SetTime( double t ) ;
Method: SetTime
Summary: Set the physical time
Description: 
Return: None
t
Physical time.
void SetUniqueId( int uniqueId ) ;
Method: SetUniqueId
Summary: Set the unique id field
Description: 
Return: None
uniqueId
Counter field value.
void SetValues( double t = DefaultTime , int p1 = DefaultPriority1 , int p2 = DefaultPriority2 , int counter = DefaultCounter , int uniqueId = DefaultUniqueId ) ;
Method: SetValues Summary: Set the five values in the SIMTIME object Description: The five values are 1. Physical time, 2. First priority field, 3. Second priority field, 4. The automatic tie-breaking counter, and 5. The unique id for breaking counter ties Return: None.
t
Physical time.
p1
First priority field.
p2
Second priority field.
counter
Counter field.
uniqueId
Unique id field.
void print( ostream& out = cout ) ;
Method: print
Summary: Print the SIMTIME object's values
Description: 
Return: None
out
Ostream object to which to print.

<<toc >>

class STRING_DATA_TYPE : public FUNDAMENTAL_DATA_TYPE

#include "DataParserTypes.H"

Public Interface

STRING_DATA_TYPE ~STRING_DATA_TYPE GetType
GetValue printlevel

Public Interface

STRING_DATA_TYPE( C_QUEUE* Qatoms ) ;
~STRING_DATA_TYPE( ) ;
virtual char* GetType( ) ;
char* GetValue( ) ;
virtual void printlevel( ostream& out , int level ) ;

<<toc >>

class SpATOM : public C_ITEM

#include "DataParserTypes.H"

Public Interface

SpATOM( char* s ) ;
virtual ~SpATOM( ) ;
char* GetSymbol( ) ;

<<toc >>

class SpTag

#include "SpTag.H"

Public Interface

SpTag SpTag operator<<
operator<< operator<< operator<<
operator<< operator<< operator<<
operator<< operator<< operator<<
GetBuff Init Reset
SetBuffSize

Public Interface

SpTag( ) ;
SpTag( int buffSize ) ;
ostrstream& operator<<( char* val ) ;
ostrstream& operator<<( double val ) ;
ostrstream& operator<<( float val ) ;
ostrstream& operator<<( int val ) ;
ostrstream& operator<<( long val ) ;
ostrstream& operator<<( short val ) ;
ostrstream& operator<<( unsigned int val ) ;
ostrstream& operator<<( unsigned long val ) ;
ostrstream& operator<<( unsigned short val ) ;
ostrstream& operator<<( void* p ) ;
char* GetBuff( ) ;
void Init( ) ;
void Reset( ) ;
void SetBuffSize( int buffSize ) ;

<<toc >>

class TREE_ITEM

#include "BinaryTree.H"


<<toc >>

class list <class T >

#include "list.h"

Public Interface

list list list
list ~list operator=
back back begin
begin empty end
end erase erase
front front insert
insert insert insert
max_size merge pop_back
pop_front push_back push_front
rbegin rbegin remove
rend rend reverse
size sort splice
splice splice swap
unique

Public Interface

list( ) ;
list( const list<T>& x ) ;
list( const T* first , const T* last ) ;
list( list::size_type n , const T& value = T ( ) ) ;
~list( ) ;
list<T>& operator=( const list<T>& x ) ;
const_reference back( ) const;
reference back( ) ;
iterator begin( ) ;
const_iterator begin( ) const;
bool empty( ) const;
const_iterator end( ) const;
iterator end( ) ;
void erase( list::iterator position ) ;
void erase( list::iterator first , list::iterator last ) ;
const_reference front( ) const;
reference front( ) ;
iterator insert( list::iterator position , const T& x ) ;
void insert( list::iterator position , const T* first , const T* last ) ;
void insert( list::iterator position , list::const_iterator first , list::const_iterator last ) ;
void insert( list::iterator position , list::size_type n , const T& x ) ;
size_type max_size( ) const;
void merge( list<T>& x ) ;
void pop_back( ) ;
void pop_front( ) ;
void push_back( const T& x ) ;
void push_front( const T& x ) ;
const_reverse_iterator rbegin( ) const;
reverse_iterator rbegin( ) ;
void remove( const T& value ) ;
const_reverse_iterator rend( ) const;
reverse_iterator rend( ) ;
void reverse( ) ;
size_type size( ) const;
void sort( ) ;
void splice( list::iterator position , list<T>& x ) ;
void splice( list::iterator position , list<T>& x , list::iterator i ) ;
void splice( list::iterator position , list<T>& x , list::iterator first , list::iterator last ) ;
void swap( list<T>& x ) ;
void unique( ) ;

<<toc >>

class list::const_iterator : public bidirectional_iterator< T, difference_type>

#include "list.h"

Public Interface

const_iterator const_iterator operator*
operator++ operator++ operator--
operator-- operator==

Public Interface

const_iterator( ) ;
const_iterator( const iterator& x ) ;
const_reference operator*( ) const;
const_iterator& operator++( ) ;
const_iterator operator++( int ) ;
const_iterator& operator--( ) ;
const_iterator operator--( int ) ;
bool operator==( const const_iterator& x ) const;

<<toc >>

class list::iterator : public bidirectional_iterator< T, difference_type>

#include "list.h"

Public Interface

iterator operator* operator++
operator++ operator-- operator--
operator==

Public Interface

iterator( ) ;
reference operator*( ) const;
iterator& operator++( ) ;
iterator operator++( int ) ;
iterator& operator--( ) ;
iterator operator--( int ) ;
bool operator==( const iterator& x ) const;

<<toc >>

struct list::list_node

#include "list.h"

Public Interface

Public Data

T data;
void_pointer next;
void_pointer prev;

<<toc

struct list::list_node_buffer

#include "list.h"

Public Interface

Public Data

link_type buffer;
void_pointer next_buffer;

operator!= #include "simtime.H"
int operator!=(double t , const SIMTIME& tt ) ;
toc >>

operator< #include "list.h"
template <class T >
bool operator<(const list<T>& x , const list<T>& y ) ;
<<toc >>

operator< #include "simtime.H"
int operator<(double t , const SIMTIME& tt ) ;
Operators when the double is on the left side.
<<toc >>

operator<< #include "SpTag.H"
ostream& operator<<(ostream& out , SpTag tag ) ;
<<toc >>

operator<< #include "simtime.H"
ostream& operator<<(ostream& out , const SIMTIME& tt ) ;
Method: operator <<
Summary: Print the comtents of this SIMTIME to an ostream
Description: 
Return: The specified ostream
out
The ostream to which to print.
tt
SIMTIME to print.
<<toc >>

operator<= #include "simtime.H"
int operator<=(double t , const SIMTIME& tt ) ;
<<toc >>

operator== #include "simtime.H"
int operator==(double t , const SIMTIME& tt ) ;
<<toc >>

operator== #include "list.h"
template <class T >
bool operator==(const list<T>& x , const list<T>& y ) ;
Currently the following does not work - made into a member function.
template <class T>
inline bool operator==(const list<T>::iterator& x, const list<T>::iterator& y) { 
    return x.node == y.node; 
}
<<toc >>

operator> #include "simtime.H"
int operator>(double t , const SIMTIME& tt ) ;
<<toc >>

operator>= #include "simtime.H"
int operator>=(double t , const SIMTIME& tt ) ;
<<toc >>

RB_DELETE_ARRAY_C_ITEM #include "qitem.H"
void RB_DELETE_ARRAY_C_ITEM(C_ITEM* obj ) ;
<<toc >>

RB_DELETE_ARRAY_C_ITEM_PTR #include "qitem.H"
void RB_DELETE_ARRAY_C_ITEM_PTR(C_ITEM** obj ) ;
<<toc >>

RB_DELETE_ARRAY_C_SQ_ITEM #include "sq_item.H"
void RB_DELETE_ARRAY_C_SQ_ITEM(C_SQ_ITEM* obj ) ;
<<toc >>

RB_DELETE_ARRAY_C_SQ_ITEM_PTR #include "sq_item.H"
void RB_DELETE_ARRAY_C_SQ_ITEM_PTR(C_SQ_ITEM** obj ) ;
<<toc >>

RB_DELETE_ARRAY_C_XQUEUE #include "xqueue.H"
void RB_DELETE_ARRAY_C_XQUEUE(C_XQUEUE* obj ) ;
<<toc >>

RB_DELETE_ARRAY_C_XQUEUE_PTR #include "xqueue.H"
void RB_DELETE_ARRAY_C_XQUEUE_PTR(C_XQUEUE** obj ) ;
<<toc >>

RB_DELETE_C_ITEM #include "qitem.H"
void RB_DELETE_C_ITEM(C_ITEM* obj ) ;
<<toc >>

RB_DELETE_C_ITEM_PTR #include "qitem.H"
void RB_DELETE_C_ITEM_PTR(C_ITEM** obj ) ;
<<toc >>

RB_DELETE_C_SQ_ITEM #include "sq_item.H"
void RB_DELETE_C_SQ_ITEM(C_SQ_ITEM* obj ) ;
<<toc >>

RB_DELETE_C_SQ_ITEM_PTR #include "sq_item.H"
void RB_DELETE_C_SQ_ITEM_PTR(C_SQ_ITEM** obj ) ;
<<toc >>

RB_DELETE_C_XQUEUE #include "xqueue.H"
void RB_DELETE_C_XQUEUE(C_XQUEUE* obj ) ;
<<toc >>

RB_DELETE_C_XQUEUE_PTR #include "xqueue.H"
void RB_DELETE_C_XQUEUE_PTR(C_XQUEUE** obj ) ;
<<toc >>

RB_DELETE_RB_hash #include "xhash.H"
void RB_DELETE_RB_hash(RB_hash* obj ) ;
<<toc >>

RB_DELETE_RB_hash_PTR #include "xhash.H"
void RB_DELETE_RB_hash_PTR(RB_hash** obj ) ;
<<toc >>

RB_NEW_ARRAY_C_ITEM #include "qitem.H"
C_ITEM* RB_NEW_ARRAY_C_ITEM(size_t num_C_ITEM ) ;
<<toc >>

RB_NEW_ARRAY_C_ITEM_PTR #include "qitem.H"
C_ITEM** RB_NEW_ARRAY_C_ITEM_PTR(size_t num_C_ITEM ) ;
<<toc >>

RB_NEW_ARRAY_C_SQ_ITEM #include "sq_item.H"
C_SQ_ITEM* RB_NEW_ARRAY_C_SQ_ITEM(size_t num_C_SQ_ITEM ) ;
<<toc >>

RB_NEW_ARRAY_C_SQ_ITEM_PTR #include "sq_item.H"
C_SQ_ITEM** RB_NEW_ARRAY_C_SQ_ITEM_PTR(size_t num_C_SQ_ITEM ) ;
<<toc >>

RB_NEW_ARRAY_C_XQUEUE #include "xqueue.H"
C_XQUEUE* RB_NEW_ARRAY_C_XQUEUE(size_t num_C_XQUEUE ) ;
<<toc >>

RB_NEW_ARRAY_C_XQUEUE_PTR #include "xqueue.H"
C_XQUEUE** RB_NEW_ARRAY_C_XQUEUE_PTR(size_t num_C_XQUEUE ) ;
<<toc >>

RB_NEW_C_ITEM #include "qitem.H"
C_ITEM* RB_NEW_C_ITEM() ;
<<toc >>

RB_NEW_C_ITEM #include "qitem.H"
C_ITEM* RB_NEW_C_ITEM(C_ITEM* obj ) ;
<<toc >>

RB_NEW_C_ITEM_PTR #include "qitem.H"
C_ITEM** RB_NEW_C_ITEM_PTR() ;
<<toc >>

RB_NEW_C_SQ_ITEM #include "sq_item.H"
C_SQ_ITEM* RB_NEW_C_SQ_ITEM() ;
<<toc >>

RB_NEW_C_SQ_ITEM #include "sq_item.H"
C_SQ_ITEM* RB_NEW_C_SQ_ITEM(C_SQ_ITEM* obj ) ;
<<toc >>

RB_NEW_C_SQ_ITEM_PTR #include "sq_item.H"
C_SQ_ITEM** RB_NEW_C_SQ_ITEM_PTR() ;
<<toc >>

RB_NEW_C_XQUEUE #include "xqueue.H"
C_XQUEUE* RB_NEW_C_XQUEUE() ;
<<toc >>

RB_NEW_C_XQUEUE #include "xqueue.H"
C_XQUEUE* RB_NEW_C_XQUEUE(C_XQUEUE* obj ) ;
<<toc >>

RB_NEW_C_XQUEUE_PTR #include "xqueue.H"
C_XQUEUE** RB_NEW_C_XQUEUE_PTR() ;
<<toc >>

RB_NEW_RB_hash #include "xhash.H"
RB_hash* RB_NEW_RB_hash(RB_hash* obj ) ;
<<toc >>

RB_NEW_RB_hash_PTR #include "xhash.H"
RB_hash** RB_NEW_RB_hash_PTR() ;
<<toc >>

SELECT #include "OS_Specific.H"
int SELECT(int n , fd_set* readfds , fd_set* writefds , fd_set* exceptfds , timeval* timeout ) ;
<<toc >>

SpeedesMicroSleep #include "OS_Specific.H"
void SpeedesMicroSleep(int us ) ;
<<toc >>

SpeedesSleep #include "OS_Specific.H"
void SpeedesSleep(int s ) ;
<<toc >>

SpeedesSpawn #include "OS_Specific.H"
void SpeedesSpawn(char* name , char* arg0 , ... ) ;
<<toc >>

delete_C_ITEM_array #include "qitem.H"
void delete_C_ITEM_array(void* v ) ;
<<toc >>

delete_C_ITEM_array_PTR #include "qitem.H"
void delete_C_ITEM_array_PTR(void* v ) ;
<<toc >>

delete_C_SQ_ITEM_array #include "sq_item.H"
void delete_C_SQ_ITEM_array(void* v ) ;
<<toc >>

delete_C_SQ_ITEM_array_PTR #include "sq_item.H"
void delete_C_SQ_ITEM_array_PTR(void* v ) ;
<<toc >>

delete_C_XQUEUE_array #include "xqueue.H"
void delete_C_XQUEUE_array(void* v ) ;
<<toc >>

delete_C_XQUEUE_array_PTR #include "xqueue.H"
void delete_C_XQUEUE_array_PTR(void* v ) ;
<<toc >>

delete_single_C_ITEM #include "qitem.H"
void delete_single_C_ITEM(void* v ) ;
<<toc >>

delete_single_C_ITEM_PTR #include "qitem.H"
void delete_single_C_ITEM_PTR(void* v ) ;
<<toc >>

delete_single_C_SQ_ITEM #include "sq_item.H"
void delete_single_C_SQ_ITEM(void* v ) ;
<<toc >>

delete_single_C_SQ_ITEM_PTR #include "sq_item.H"
void delete_single_C_SQ_ITEM_PTR(void* v ) ;
<<toc >>

delete_single_C_XQUEUE #include "xqueue.H"
void delete_single_C_XQUEUE(void* v ) ;
<<toc >>

delete_single_C_XQUEUE_PTR #include "xqueue.H"
void delete_single_C_XQUEUE_PTR(void* v ) ;
<<toc >>

delete_single_RB_hash #include "xhash.H"
void delete_single_RB_hash(void* v ) ;
<<toc >>

delete_single_RB_hash_PTR #include "xhash.H"
void delete_single_RB_hash_PTR(void* v ) ;
<<toc