A list of tag names representing one single nesting level of a loop's definition
![]() | const_iterator
| ||||||||||||||||||||||||||||||
![]() | iterator This is designed to behave like the STL vector iterator
|
![]() | AddDataName (const string & name) DEPRECIATED - Use STL vector notation instead |
![]() | atEnd () DEPRECIATED - Use STL vector notation instead |
![]() | atStart () DEPRECIATED - Use STL vector notation instead |
![]() | ChangeName ( const string &oldName, const string &newName ) |
![]() | debugPrint ( void ) Print out debugging info detailing the layout of this list: |
![]() | FlattenNestedLoop (List<DataNameNode*>* L) DEPRECIATED |
![]() | getNextTag () DEPRECIATED - Use STL vector notation instead |
![]() | isInLoop (void) isInLoop: Returns true if this LoopNameListNode is inside a DataLoopNode, or false if it is not |
![]() | isOfType ( ASTtype T ) |
![]() | myLongestStr ( void ) Returns the length of the longest string in this object |
![]() | myName () const Return the name of the first tag in my list |
![]() | myType (void) |
![]() | RemoveDataName (const string & name, int *ele = (int*)NULL ) DEPRECIATED - Use STL vector notation instead |
![]() | reset () DEPRECIATED - Use STL vector notation instead |
![]() | searchByTag ( string &searchFor ) Find the name given in this name list |
![]() | searchForType ( ASTtype type, int delim = -1 ) This method returns a list of all the nodes of the given type that are inside this node, or children of this node, or children of children of this node, etc all the way down to the leaf nodes |
![]() | tagPosition (const string & tagName) The postion of a tag in the list (returns an integer index) |
![]() | unlinkChild ( ASTnode *child ) unlinks the given ASTnode from this ASTnode, assuming that the given ASTnode is a child of this ASTnode |
![]() | Unparse (int indent) |
![]() | ~LoopNameListNode () Destructor |
![]() |
| ||||||||||||||||||||||||||
![]() |
| ||||||||||||||||||||||||||
![]() |
| ||||||||||||||||||||||||||
![]() |
|
A list of tag names representing one single nesting level of a loop's definition. This class is designed to look somewhat like an STL vector, implementing many of the same methods as STL vector. The caller is not given access to the interior ASTlist of names because there needs to be some automated sanity checking to prevent people from deleting names without deleting the associated values in the loop. The same is true for inserting new names. If a new name is inserted, new values need to be inserted into the associated loop's values so the result is still valid STAR syntax. The methods in this class that are made to look like STL vector functions perform these tasks automatically when things are inserted or deleted from the list of names.
LoopNameListNode( bool link, LoopNameListNode &L)
LoopNameListNode(ASTlist<DataNameNode *> *L)
If this LoopNameListNode has not yet been attached to the rest of
a DataLoopNode yet, such that there are no associated data values
to go with these names, then nothing special happens - the name(s)
is(are) inserted and that's all.
Here is the more precise rules:
Insert - Insert before 'pos', the Name given. All versions make
copies of the Name rather than just pointers to it:
When new values need to be inserted to go with the new name,
this version defaults the values to insert to the STAR-null value,
a single nonquoted dot (.):
The value returned is an integer. It is a count of how many nesting
levels deep this is in the loop that it was found it. Thus if
it is zero (false) it was not found in a loop, and if it is 1 then
it was found in nesting level 1 of a loop, 2 = nesting level 2, etc.
WARNING: The list returned is allocated in heap space. It is
the caller's responsibility to delete the list after it is no
longer needed.
This search is case-insensitive. The names of things, according
to the STAR specification, are supposed to be case-insensitive.
This is being applied not only to tag names but also to
saveframe names and datablock names.
class iterator
ASTlist <DataNameNode*> ::iterator vIter
iterator()
iterator( const ASTlist<DataNameNode*>::iterator ©Me )
iterator( value_type ©Me )
~iterator()
bool operator==( const iterator &x ) const
bool operator!=( const iterator &x ) const
reference operator*() const
value_type operator->() const
iterator& operator++()
iterator& operator++(int)
iterator& operator--()
class const_iterator
ASTlist <DataNameNode*> ::const_iterator vIter
const_iterator()
const_iterator( const ASTlist<DataNameNode*>::const_iterator ©Me )
const_iterator( const value_type ©Me )
~const_iterator()
bool operator==( const iterator &x ) const
bool operator!=( const iterator &x ) const
const_reference operator*() const
const value_type operator->() const
const_iterator& operator++()
const_iterator& operator++(int)
const_iterator& operator--()
const_iterator& operator--(int)
iterator begin()
iterator end()
const_iterator begin() const
const_iterator end() const
size_type size() const
bool empty() const
reference operator[]( size_type n )
const_reference operator[]( size_type n) const
-------------------------------
void insert( iterator pos, DataNameNode &v )
void insert( iterator pos, DataNameNode *v )
void insert( iterator pos, DataNameNode &v, DataValueNode &val )
void insert( iterator pos, DataNameNode *v, DataValueNode &val )
void erase( iterator pos )
void erase( iterator from, iterator to )
int isInLoop(void)
virtual ~LoopNameListNode()
virtual void Unparse(int indent)
virtual ASTnode::ASTtype myType(void)
virtual bool isOfType( ASTtype T )
void reset()
void getNextTag()
bool atEnd()
bool atStart()
string myName() const
void FlattenNestedLoop(List<DataNameNode*>* L)
int tagPosition(const string & tagName)
StarFileNode::Status AddDataName(const string & name)
StarFileNode::Status RemoveDataName(const string & name, int *ele = (int*)NULL )
StarFileNode::Status ChangeName( const string &oldName, const string &newName )
virtual List <ASTnode*> * searchByTag( string &searchFor )
virtual List <ASTnode*> * searchForType( ASTtype type, int delim = -1 )
delim - the delimiter type (not relevant for this scope). virtual bool unlinkChild( ASTnode *child )
virtual int myLongestStr( void )
alphabetic index hierarchy of classes
generated by doc++