libFAUDES

Sections

Index

faudes::TaNameSet< Attr > Class Template Reference
[State, Event and Transition Set]

#include <nameset.h>

Inherits faudes::NameSet, and faudes::TaIndexSet< Attr >.

Inherited by faudes::SimConditionSet.

List of all members.


Detailed Description

template<class Attr>
class faudes::TaNameSet< Attr >

Set of indices with symbolic names and attributes.

This class is derived from NameSet and TaIndexSet to inherit both extra features on top of IndexSet.

The file format is demonstrated by the following example of a set "Alphabet" consisting of events "alpha", "beta" and "gamma" with "gamma" having some attribute (see eg AtributeFlags)

 <Alphabet> 
 "alpha" 
 "beta" 
 "gamma" 0x0f
 <\Alphabet> 
As with TaIndexSet, reading a file ignores unknown attributes. Thus, the above example may also be read as IndexSet.

Public Member Functions

 TaNameSet (void)
 Constructor for NameSet referring to the static SymbolTable.
 TaNameSet (const TaNameSet &rOtherSet)
 Copy-constructor from other TaNameSet (incl attributes and symboltable).
 TaNameSet (const NameSet &rOtherSet)
 Constructor from NameSet (sets default attributes, same symboltable).
 TaNameSet (const std::string &rFilename, const std::string &rLabel="NameSet")
 Constructor from file.
virtual ~TaNameSet (void)
 Virtual destructor.
virtual TaNameSetNew () const
 Construct on heap.
TaNameSet NewN () const
 Return a NameSet with same symboltable as this set.
virtual TaNameSetoperator= (const TaNameSet &rSrc)
 Assignment operator (uses Copy).
virtual TaNameSetoperator= (const NameSet &rSrc)
 Assignment operator (uses Copy).
virtual void Copy (TaNameSet< Attr > &rSet) const
 Copy to other name with same attribute type.
virtual void Copy (NameSet &rSet) const
 Copy to other name set.
bool Insert (Idx index)
 Add an element by index.
bool Insert (Idx index, const Attr &rAttr)
 Add an element by index incl.
Idx Insert (const std::string &rName)
 Add an element by its symbolic name.
Idx Insert (const std::string &rName, const Attr &rAttr)
 Add an element by its symbolic name.
void InsertSet (const NameSet &rOtherSet)
 Inserts elements of rOtherSet.
void InsertSet (const TaNameSet &rOtherSet)
 Inserts elements of rOtherSet incl attributes Attributes of this set are maintained, new elements are inserted with attribute.
virtual bool Erase (Idx index)
 Delete element by index.
virtual bool Erase (const std::string &rName)
 Delete element by symbolic name.
virtual Iterator Erase (const Iterator &pos)
 Delete element by iterator.
void EraseSet (const NameSet &rOtherSet)
 Erase elements indicated by rOtherSet.
void EraseSet (const TaNameSet &rOtherSet)
 Erase elements indicated by rOtherSet.
void RestrictSet (const NameSet &rOtherSet)
 Restrict elements indicated by rOtherSet.
void RestrictSet (const TaNameSet &rOtherSet)
 Restrict elements indicated by rOtherSet.
virtual void Attributes (const NameSet &rOtherSet)
 Set attributes.
virtual void Attributes (const TaNameSet &rOtherSet)
 Set attributes.
std::string Str (Idx index) const
 Return pretty printable symbolic name for index.

Friends

class NameSet
 We implement "protected privacy for template classes" by friendship.

Constructor & Destructor Documentation

template<class Attr>
faudes::TaNameSet< Attr >::TaNameSet ( void   )  [inline]

Constructor for NameSet referring to the static SymbolTable.

template<class Attr>
faudes::TaNameSet< Attr >::TaNameSet ( const TaNameSet< Attr > &  rOtherSet  )  [inline]

Copy-constructor from other TaNameSet (incl attributes and symboltable).

Parameters:
rOtherSet Set to copy

template<class Attr>
faudes::TaNameSet< Attr >::TaNameSet ( const NameSet rOtherSet  )  [inline]

Constructor from NameSet (sets default attributes, same symboltable).

Parameters:
rOtherSet Set to copy

template<class Attr>
faudes::TaNameSet< Attr >::TaNameSet ( const std::string &  rFilename,
const std::string &  rLabel = "NameSet" 
) [inline]

Constructor from file.

This constructor reads a NameSet from a file using the DoRead(TokenReader&, const std::String&) function. The section is specified by rLabel and the static SymbolTable is used.

Parameters:
rFilename Name of File
rLabel Section for the set in the file;

template<class Attr>
virtual faudes::TaNameSet< Attr >::~TaNameSet ( void   )  [inline, virtual]

Virtual destructor.


Member Function Documentation

template<class Attr>
TaNameSet< Attr > * faudes::TaNameSet< Attr >::New ( void   )  const [inline, virtual]

Construct on heap.

Constructs an empty NameSet with same attribute type and same symbol table as this set.

Returns:
Pointer to new empty NameSet on heap

Reimplemented from faudes::TaIndexSet< Attr >.

template<class Attr>
TaNameSet< Attr > faudes::TaNameSet< Attr >::NewN ( void   )  const [inline]

Return a NameSet with same symboltable as this set.

Returns:
New empty TaNameSet

Reimplemented from faudes::NameSet.

template<class Attr>
virtual TaNameSet& faudes::TaNameSet< Attr >::operator= ( const TaNameSet< Attr > &  rSrc  )  [inline, virtual]

Assignment operator (uses Copy).

Parameters:
rSrc Source from which to assign
Returns:
Ref to this set

template<class Attr>
virtual TaNameSet& faudes::TaNameSet< Attr >::operator= ( const NameSet rSrc  )  [inline, virtual]

Assignment operator (uses Copy).

Parameters:
rSrc Source from which to assign
Returns:
Ref to this set

Reimplemented from faudes::NameSet.

template<class Attr>
void faudes::TaNameSet< Attr >::Copy ( TaNameSet< Attr > &  rSet  )  const [inline, virtual]

Copy to other name with same attribute type.

Parameters:
rSet 

template<class Attr>
void faudes::TaNameSet< Attr >::Copy ( NameSet rSet  )  const [inline, virtual]

Copy to other name set.

This function maintains attributes if types can be casted.

Parameters:
rSet 

Reimplemented from faudes::NameSet.

template<class Attr>
bool faudes::TaNameSet< Attr >::Insert ( Idx  index  )  [inline]

Add an element by index.

Index must be already known to the global SymbolTable. If the element already exists in the set, the attribute is maintained. Otherwise, the element is inserted with default attribute.

Parameters:
index Index to add
Returns:
True, if element was new to set
Exceptions:
Exception 
  • no symbolic name for index (id 65)

Reimplemented from faudes::TaIndexSet< Attr >.

template<class Attr>
bool faudes::TaNameSet< Attr >::Insert ( Idx  index,
const Attr &  rAttr 
) [inline]

Add an element by index incl.

attribute

Parameters:
index Index to add
rAttr Attribute to add
Returns:
True, if index was new to set
Exceptions:
Exception 
  • no symbolic name for index (id 65)

Reimplemented from faudes::TaIndexSet< Attr >.

template<class Attr>
Idx faudes::TaNameSet< Attr >::Insert ( const std::string &  rName  )  [inline]

Add an element by its symbolic name.

If the name is unknown, a new index will be generated and recorded in the symboltable. If the name is known, the corresponding index will be added to the set. If the element already exists in the set, the attribute is maintained. Otherwise, the element is inserted with default attribute.

Parameters:
rName symbolic name of element to add
Returns:
Index of (new) element

Reimplemented from faudes::NameSet.

template<class Attr>
Idx faudes::TaNameSet< Attr >::Insert ( const std::string &  rName,
const Attr &  rAttr 
) [inline]

Add an element by its symbolic name.

If the name is unknown, a new index will be generated and recorded in the symboltable. If the name is known, the corresponding index will be added to the set.

Parameters:
rName symbolic name of element to add
rAttr Attribute
Returns:
Index of (new) element

template<class Attr>
void faudes::TaNameSet< Attr >::InsertSet ( const NameSet rOtherSet  )  [inline]

Inserts elements of rOtherSet.

Attributes of this set are maintained, newly inserted elements have default attribute.

Parameters:
rOtherSet Other StateSet
Exceptions:
Exception 
  • symboltable mismatch (id 67)

Reimplemented from faudes::NameSet.

template<class Attr>
void faudes::TaNameSet< Attr >::InsertSet ( const TaNameSet< Attr > &  rOtherSet  )  [inline]

Inserts elements of rOtherSet incl attributes Attributes of this set are maintained, new elements are inserted with attribute.

Parameters:
rOtherSet Other StateSet

template<class Attr>
bool faudes::TaNameSet< Attr >::Erase ( Idx  index  )  [inline, virtual]

Delete element by index.

Symbolic name is not removed from SymbolTable.

Parameters:
index Index to delete
Returns:
True if element did exist

Reimplemented from faudes::TaIndexSet< Attr >.

template<class Attr>
bool faudes::TaNameSet< Attr >::Erase ( const std::string &  rName  )  [inline, virtual]

Delete element by symbolic name.

Symbolic name is not removed from SymbolTable

Parameters:
rName Symbolic name of element to dlete
Returns:
True if element did exist
Exceptions:
Exception 
  • name not found in Symboltable (id 66)

Reimplemented from faudes::NameSet.

template<class Attr>
TaNameSet< Attr >::Iterator faudes::TaNameSet< Attr >::Erase ( const Iterator pos  )  [inline, virtual]

Delete element by iterator.

Symbolic nam is not removed from SymbolTable.

Parameters:
pos TaNameSet::iterator
Returns:
Iterator to next element
Exceptions:
Exception 
  • invalid iterator (id 62)

Reimplemented from faudes::TaIndexSet< Attr >.

template<class Attr>
void faudes::TaNameSet< Attr >::EraseSet ( const NameSet rOtherSet  )  [inline]

Erase elements indicated by rOtherSet.

Exceptions:
Exception 
  • symboltable mismatch (id 67)
Parameters:
rOtherSet Other StateSet

Reimplemented from faudes::NameSet.

template<class Attr>
void faudes::TaNameSet< Attr >::EraseSet ( const TaNameSet< Attr > &  rOtherSet  )  [inline]

Erase elements indicated by rOtherSet.

Exceptions:
Exception 
  • symboltable mismatch (id 67)
Parameters:
rOtherSet Other StateSet

template<class Attr>
void faudes::TaNameSet< Attr >::RestrictSet ( const NameSet rOtherSet  )  [inline]

Restrict elements indicated by rOtherSet.

Exceptions:
Exception 
  • symboltable mismatch (id 67)
Parameters:
rOtherSet Other EventSet

Reimplemented from faudes::NameSet.

template<class Attr>
void faudes::TaNameSet< Attr >::RestrictSet ( const TaNameSet< Attr > &  rOtherSet  )  [inline]

Restrict elements indicated by rOtherSet.

Exceptions:
Exception 
  • symboltable mismatch (id 67)
Parameters:
rOtherSet Other StateSet

template<class Attr>
void faudes::TaNameSet< Attr >::Attributes ( const NameSet rOtherSet  )  [inline, virtual]

Set attributes.

Provided that rOtherSet has attributes that can be casted to the appropriate type, attributes are copied per element from rOtherSet. Elements of this set which are not in rOtherSet maintain their attribute.

Parameters:
rOtherSet Other IndexSet
Exceptions:
Exception 
  • Element does not exist (63)
  • Cannot cast attribute type (63)

Reimplemented from faudes::NameSet.

template<class Attr>
void faudes::TaNameSet< Attr >::Attributes ( const TaNameSet< Attr > &  rOtherSet  )  [inline, virtual]

Set attributes.

Attributes are copied per element from rOtherSet. Elements of this set which are not in rOtherSet maintain their attribute.

Parameters:
rOtherSet Other IndexSet

template<class Attr>
std::string faudes::TaNameSet< Attr >::Str ( Idx  index  )  const [inline]

Return pretty printable symbolic name for index.

Primary meant for debugging messages.

Parameters:
index Index to print
Returns:
String

Reimplemented from faudes::NameSet.


Friends And Related Function Documentation

template<class Attr>
friend class NameSet [friend]

We implement "protected privacy for template classes" by friendship.

This is used for the pragmatic implemention conversion constructors.


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

libFAUDES 2.13a c++ source docu by doxygen 1.5.6