This class is a single row of values in a loop
![]() | innerLoop |
![]() | myTflag |
![]() | myVals |
![]() | addInnerLoopValue (const DataLoopNameListNode::Status dstat, const int row, const int currRow, DataValueNode *value) DEPRECIATED - use the STL vector operations instead. |
![]() | addValue (DataValueNode *value) DEPRECIATED - use the STL vector operations instead. |
![]() | FlattenNestedLoop (List<DataValueNode*>* M) DEPRECIATED - use the STL vector operations instead. |
![]() | LoopRowNode::RemoveColumnValues ( int nest, int ele ) DEPRECIATED - use the STL vector operations instead. |
![]() | myLongestStr ( void ) Returns the length of the longest string in this object |
![]() | reset () DEPRECIATED - use the STL vector operations instead. |
![]() | returnLoopValue (unsigned position) DEPRECIATED - use the STL vector operations instead. |
![]() | returnNextLoopElement (DataValueNode* & v) DEPRECIATED - use the STL vector operations instead. |
![]() | 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 |
![]() | unlinkChild ( ASTnode *child ) unlinks the given ASTnode from this ASTnode, assuming that the given ASTnode is a child of this ASTnode |
![]() |
|
This class is a single row of values in a loop.A single row of values in the loop is a list (STL vector) of DataValueNodes. In addition each loop row can have a table of values hanging "under" it at the next nesting level. And the rows of that table can have other tables under them, and so on.
typedef DataValueNode* value_type
typedef value_type* pointer
typedef const value_type* const_pointer
typedef value_type& reference
iterator()
iterator( const ASTlist<DataValueNode*>::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--()
const_iterator()
const_iterator( const ASTlist<DataValueNode*>::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)
-------------------------------------------------- insert() and erase() * -------------------------------------------------- The following functions will only work if this LoopRowNode has not yet been attached to a loop in a STAR tree. if this LoopRowNode *HAS* been attached to a loop in the STAR tree already, then these methods will be disallowed because that would cause a mismatch between the number of values in the loop row and the number of tagnames for the loop. Thus this can work: DataLoopNode some_loop; LoopRowNode some_row; ... some_row.insert( some_row.end(), new DataValueNode( "hello" ); some_row.insert( some_row.end(), new DataValueNode( "world" ); some_loop.getVals.insert( begin(), some_row ); * (it only works assuming that two values per row is * the proper amount for some_loop, else it's an error.) But this will not work: DataLoopNode some_loop; LoopRowNode some_row; ... ... some_loop.getVals[0].insert( end(), new DataValueNode( "hello " ); * (You cannot insert or delete values from a row * of data that is already in a loop. You can only * insert or delete entire rows at a time from an * existing loop.) Insert - Insert before 'pos', the data value given by 'v'. Returns true if it worked or false otherwise. (Will fail if the number of values does not match what is in the loop's tagname list.)
bool insert( iterator pos, DataValueNode &v )
bool insert( iterator pos, DataValueNode *v )
bool erase( iterator pos )
bool erase( iterator from, iterator to )
LoopRowNode( IterNode& N)
LoopRowNode( bool link, IterNode& N)
LoopRowNode( vector<DataValueNode*> &v, const bool tflag = false )
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.
void addInnerLoopValue(const DataLoopNameListNode::Status dstat, const int row, const int currRow, DataValueNode *value)
void FlattenNestedLoop(List<DataValueNode*>* M)
void reset()
DataLoopValListNode::Status returnNextLoopElement(DataValueNode* & v)
DataValueNode* returnLoopValue(unsigned position)
StarFileNode::Status LoopRowNode::RemoveColumnValues( int nest, int ele )
virtual List <ASTnode*> * searchForType( ASTtype type, int delim = -1 )
delim - the delimiter type to search for if searching for
DataValueNode's (default is "dont-care").
virtual bool unlinkChild( ASTnode *child )
private : ASTlist <DataValueNode *> myVals
LoopTableNode* innerLoop
bool myTflag
virtual int myLongestStr( void )
alphabetic index hierarchy of classes
generated by doc++