Detailed Description

Set of indices with symbolic names.

In a NameSet, symbolic names are mandatory. The class is derived from IndexSet and uses a pointer to a SymbolTable to maintain the symbolic names. The static SymbolTable is used as default, which in the context of libfaudes becomes the global event symbol table. It is an error to refer to an unknown symbolic name or to an index with no name associated. When FAUDES_CHECKED is defined, an exception will be thrown. It is also considered an error to relate two NameSets that refer to different SymbolTables (using e.g. SetUnion).

Since symbolic names are mandatory, file IO uses names rather than indices. Technically, file IO is done by TaNameSet functions. This requires a copy and for that reason may be reimplemented in a future versions. The format is demonstrated by the following example of a set with name "Alphabet" consisting of events "alpha", "beta" and "gamma":

"alpha" "beta" "gamma"
TaNameSet< AttributeCFlags > Alphabet
Convenience typedef for event sets with controllability attributes.

Note that when reading a file, indices will be associated with the symbolic names based on availability. Within one libfaudes session, each individual event will be referred to by a unique index.

Definition at line 69 of file cfl_nameset.h.

#include <cfl_nameset.h>

Public Member Functions

 NameSet (void)
 Constructor for NameSet referring to the static SymbolTable. More...
 
 NameSet (const NameSet &rOtherSet)
 Copy-constructor from other NameSet. More...
 
 NameSet (const std::string &rFilename, const std::string &rLabel="")
 Constructor from file. More...
 
virtual ~NameSet (void)
 Virtual destructor. More...
 
SymbolTableSymbolTablep (void) const
 Get Pointer mpSymbolTable. More...
 
void SymbolTablep (SymbolTable *pSymTab)
 Set SymbolTable reference. More...
 
bool Insert (const Idx &rIndex)
 Add an element by index. More...
 
Idx Insert (const std::string &rName)
 Add an element by its symbolic name. More...
 
virtual void InsertSet (const NameSet &rOtherSet)
 Inserts all elements of rOtherSet. More...
 
virtual void InsertSet (const TBaseSet< Idx > &rOtherSet)
 Inserts all elements of rOtherSet. More...
 
virtual bool Erase (const Idx &rIndex)
 Delete element by index. More...
 
virtual bool Erase (const std::string &rName)
 Delete element by symbolic name. More...
 
virtual NameSet::Iterator Erase (const Iterator &pos)
 Delete element by iterator. More...
 
void EraseSet (const NameSet &rOtherSet)
 Erase elements specified by rOtherSet. More...
 
virtual void EraseSet (const TBaseSet< Idx > &rOtherSet)
 Erase elements specified by rOtherSet. More...
 
void RestrictSet (const NameSet &rOtherSet)
 Restrict to elements specified by rOtherSet. More...
 
virtual void RestrictSet (const TBaseSet< Idx > &rOtherSet)
 Restrict to elements specified by rOtherSet. More...
 
void SymbolicName (Idx index, const std::string &rName)
 Set new name for existing index. More...
 
void SymbolicName (const std::string &rName, const std::string &rNewName)
 Set new name for existing name FAUDES_CHECKED checks if the specified name exists in NameSet. More...
 
std::string SymbolicName (Idx index) const
 Name lookup. More...
 
Idx Index (const std::string &rName) const
 Index lookup. More...
 
bool Exists (const Idx &rIndex) const
 Test existence of index. More...
 
bool Exists (const std::string &rName) const
 Test existence of name. More...
 
NameSet::Iterator Find (const Idx &rIndex) const
 Find iterator for index. More...
 
NameSet::Iterator Find (const std::string &rName) const
 Find iterator for name. More...
 
NameSet operator+ (const NameSet &rOtherSet) const
 Set union operator. More...
 
NameSet operator- (const NameSet &rOtherSet) const
 Set difference operator. More...
 
NameSet operator* (const NameSet &rOtherSet) const
 Set intersection operator. More...
 
bool operator<= (const NameSet &rOtherSet) const
 Test for subset
More...
 
bool operator>= (const NameSet &rOtherSet) const
 Test for superset. More...
 
std::string Str (const Idx &rIndex) const
 Return pretty printable symbolic name for index. More...
 
- Public Member Functions inherited from faudes::TBaseSet< Idx >
 TBaseSet (void)
 Constructor. More...
 
 TBaseSet (const TBaseSet &rOtherSet)
 Copy-constructor. More...
 
 TBaseSet (const std::string &rFilename, const std::string &rLabel="BaseSet")
 Constructor from file. More...
 
virtual ~TBaseSet (void)
 Virtual destructor. More...
 
const std::string & Name (void) const
 Return name of TBaseSet. More...
 
void Name (const std::string &rName)
 Set name of TBaseSet. More...
 
virtual void Clear (void)
 Clear all set. More...
 
Idx Size (void) const
 Get Size of TBaseSet. More...
 
bool Empty (void) const
 Test whether if the TBaseSet is Empty. More...
 
virtual std::string Str (const Idx &rElem) const
 Return pretty printable element. More...
 
Iterator Begin (void) const
 Iterator to the begin of set. More...
 
Iterator End (void) const
 Iterator to the end of set. More...
 
virtual bool Valid (const Idx &rElem) const
 Test validty of candidate element. More...
 
virtual bool Erase (const Idx &rElem)
 Erase element by reference. More...
 
virtual Iterator Erase (const Iterator &pos)
 Erase element by iterator. More...
 
virtual void EraseSet (const TBaseSet &rOtherSet)
 Erase elements given by other set. More...
 
virtual void RestrictSet (const TBaseSet &rOtherSet)
 Restrict elements given by other set. More...
 
virtual bool Disjoint (const TBaseSet &rOtherSet) const
 Test for this set to be disjoint witg other set. More...
 
virtual bool Insert (const Idx &rElem)
 Insert specified element. More...
 
virtual Iterator Inject (const Iterator &pos, const Idx &rElem)
 Insert specified element. More...
 
virtual void Inject (const Idx &rElem)
 Insert specified element. More...
 
virtual void InsertSet (const TBaseSet &rOtherSet)
 Insert elements given by rOtherSet. More...
 
bool Exists (const Idx &rElem) const
 Test existence of element. More...
 
Iterator Find (const Idx &rElem) const
 Find element and return iterator. More...
 
TBaseSet operator+ (const TBaseSet &rOtherSet) const
 Set union operator. More...
 
TBaseSet operator- (const TBaseSet &rOtherSet) const
 Set difference operator. More...
 
TBaseSet operator* (const TBaseSet &rOtherSet) const
 Set intersection operator. More...
 
bool operator<= (const TBaseSet &rOtherSet) const
 Test for subset
More...
 
bool operator>= (const TBaseSet &rOtherSet) const
 Test for superset. More...
 
bool operator< (const TBaseSet &rOtherSet) const
 Order for sorting containers of TBaseSet. More...
 
void DValid (const std::string &rMessage="") const
 Some validation of deferred copy mechanism (provoke abort) More...
 
void Detach (DetachMode flag=AttrIncl) const
 
void Lock (void) const
 Detach and lock any further reallocation. More...
 
virtual const AttributeVoidAttributeType (void) const
 Attribute typeinfo. More...
 
virtual bool AttributeTest (const Type &rAttr) const
 Attribute typeinfo. More...
 
virtual TBaseSetAssignWithoutAttributes (const TBaseSet &rSourceSet)
 Attribute access. More...
 
virtual void Attributes (const TBaseSet &rOtherSet)
 Attributes access. More...
 
Idx AttributesSize (void) const
 Attribute access. More...
 
void ClearAttributes (void)
 Attribute access. More...
 
bool EqualAttributes (const TBaseSet &rOtherSet) const
 Attribute access. More...
 
virtual AttributeVoidAttributep (const Idx &rElem)
 Attribute access. More...
 
virtual const AttributeVoidAttribute (const Idx &rElem) const
 Attribute access. More...
 
virtual void Attribute (const Idx &rElem, const Type &rAttr)
 Attribute access. More...
 
virtual void AttributeTry (const Idx &rElem, const Type &rAttr)
 Attribute access. More...
 
virtual void ClrAttribute (const Idx &rElem)
 Attribute access. More...
 
virtual void XElementTag (const std::string &rTag)
 Configure the element name tag. More...
 
virtual const std::string & TypeName (void) const
 Get objects's type name. More...
 
virtual void TypeName (const std::string &rType)
 Overwrite faudes-type name. More...
 
- Public Member Functions inherited from faudes::Type
 Type (void)
 Constructor. More...
 
 Type (const Type &rType)
 Copy constructor. More...
 
virtual ~Type (void)
 Destructor. More...
 
virtual TypeNew (void) const
 Construct on heap. More...
 
virtual TypeCopy (void) const
 Construct on heap. More...
 
virtual const TypeCast (const Type *pOther) const
 Cast other object to this type. More...
 
virtual TypeAssign (const Type &rSrc)
 Assign configuration data from other object. More...
 
virtual Typeoperator= (const Type &rSrc)
 Assign configurationdata from other object. More...
 
virtual bool Equal (const Type &rOther) const
 Test equality of configuration data. More...
 
virtual bool operator== (const Type &rOther) const
 Test equality of configuration data. More...
 
virtual bool operator!= (const Type &rOther) const
 Test equality of configuration data. More...
 
void Write (const Type *pContext=0) const
 Write configuration data to console. More...
 
void Write (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0, std::ios::openmode openmode=std::ios::out|std::ios::trunc) const
 Write configuration data to a file. More...
 
void Write (const std::string &pFileName, std::ios::openmode openmode) const
 Write configuration data to a file. More...
 
void Write (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to TokenWriter. More...
 
virtual void XWrite (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to an XML file. More...
 
void XWrite (const Type *pContext=0) const
 Write configuration data in XML format to concole Note: this write function uses the virtual function DoXWrite(), to be reimplemented by derived classes. More...
 
void XWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data in XML format to TokenWriter. More...
 
std::string ToString (const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to a string. More...
 
std::string ToText (const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data to a formated string. More...
 
void DWrite (const Type *pContext=0) const
 Write configuration data to console, debugging format. More...
 
void DWrite (const std::string &pFileName, const std::string &rLabel="", const Type *pContext=0, std::ios::openmode openmode=std::ios::out|std::ios::trunc) const
 Write configuration data to a file, debugging format. More...
 
void DWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const
 Write configuration data in debug format to TokenWriter. More...
 
void SWrite (TokenWriter &rTw) const
 Write statistics comment to TokenWriter. More...
 
void SWrite (void) const
 Write statistics comment to console. More...
 
std::string ToSText (void) const
 Write statistics to a string. More...
 
void Read (const std::string &rFileName, const std::string &rLabel="", const Type *pContext=0)
 Read configuration data from file with label specified. More...
 
void FromString (const std::string &rString, const std::string &rLabel="", const Type *pContext=0)
 Read configuration data from a string. More...
 
void Read (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0)
 Read configuration data from TokenReader with label sepcified. More...
 

Protected Member Functions

void DoAssign (const NameSet &rSourceSet)
 Assign from other name set. More...
 
bool DoEqual (const NameSet &rOtherSet) const
 Test equality of configuration data. More...
 
virtual void DoWrite (TokenWriter &tw, const std::string &rLabel="", const Type *pContext=0) const
 Write to TokenWriter, see Type::Write for public wrappers This function will also do the token IO of attributes in derived classes. More...
 
virtual void DoDWrite (TokenWriter &tw, const std::string &rLabel="", const Type *pContext=0) const
 Write debug info to TokenWriter, see Type::DWrite for public wrapper. More...
 
virtual void DoXWrite (TokenWriter &tw, const std::string &rLabel="", const Type *pContext=0) const
 Write to TokenWriter XML format, see Type::XWrite for public wrappers This function will also do the token IO of attributes in derived classes. More...
 
virtual void DoRead (TokenReader &tr, const std::string &rLabel="", const Type *pContext=0)
 Read from TokenReader, see Type::Read for public wrappers. More...
 
- Protected Member Functions inherited from faudes::TBaseSet< Idx >
virtual const std::string & XElementTag (void) const
 Get name of elements (used for XML IO) More...
 
virtual void DoSWrite (TokenWriter &rTw) const
 Token output, see Type::SWrite for public wrappers. More...
 
void DoAssign (const TBaseSet &rSourceSet)
 assign my members More...
 
bool DoEqual (const TBaseSet &rOtherSet) const
 test equality More...
 
void DoAttribute (const Idx &rElem, const Type *pAttr)
 set attribute in map (assume elem exists in set, NULL <=> set to default) More...
 
const AttributeVoidDoAttribute (const Idx &rElem) const
 get attribute from map (return null if elem does not exist in map) More...
 
AttributeVoidDoAttributeExplicit (const Idx &rElem)
 get attribute from map (insert explicit default if elem does not exist in map) More...
 
TBaseSet< Idx, std::less< Idx > >::Iterator ThisIterator (const typename std::set< Idx, std::less< Idx > >::const_iterator &sit) const
 Convert STL iterator to API iterator. More...
 
void RelinkClients (void)
 Ensure that we do not host contents to anyone else. More...
 
void AttachClient (TBaseSet *pRef) const
 Record that we provide contents to some other BaseSet. More...
 
void DetachClient (TBaseSet *pRef) const
 Record that we stop providing data for some TBaseSet. More...
 
void AttachIterator (Iterator *pFit) const
 Record that an iterator refers to this TBaseSet. More...
 
void DetachIterator (Iterator *pFit) const
 Record that an iterator stops to refer to this TBaseSet. More...
 
virtual const TypeDefinitionTypeDefinitionp (void) const
 Reimplment from type to use chache. More...
 
- Protected Member Functions inherited from faudes::Type
void DoAssign (const Type &rSrc)
 Assign configuration data from other object. More...
 
bool DoEqual (const Type &rOther) const
 Test equality of configuration data. More...
 
virtual Token XBeginTag (const std::string &rLabel="", const std::string &rFallbackLabel="") const
 

Protected Attributes

SymbolTablempSymbolTable
 Pointer to local SymbolTable. More...
 
- Protected Attributes inherited from faudes::TBaseSet< Idx >
std::string mMyName
 Name of this BaseSet. More...
 
std::set< Idx, std::less< Idx > > * pSet
 Pointer on STL set to operate on. More...
 
std::set< Idx, std::less< Idx > > * mpSet
 STL set, if this object hosts data (else NULL) More...
 
std::map< Idx, AttributeVoid * > * pAttributes
 Pointer to attribute map to operate on. More...
 
std::map< Idx, AttributeVoid * > * mpAttributes
 Attribute map, if this object hosts data (else NULL). More...
 
TBaseSet< Idx, std::less< Idx > > * pHostSet
 Pointer on BaseSet that hosts our data (THIS if we host) More...
 
std::list< TBaseSet< Idx, std::less< Idx > > * >::iterator mClientRecord
 Iterator to the client list that hosts our data (maintained by host) More...
 
std::list< TBaseSet< Idx, std::less< Idx > > * > * mpClients
 BaseSets, that use data hosted by us (NULL if we dont host data, emptyset if we host to ourself excl.) More...
 
bool mDetached
 Indicate "hosts data to myself only". More...
 
bool mLocked
 Indicate "dont re-allocate the STL set ever again". More...
 
std::set< Iterator * > mIterators
 Iterators that refer to this TBaseSet. More...
 

Friends

template<class Attr >
class TaNameSet
 We implement "protected privacy for template classes" by friendship. More...
 

Additional Inherited Members

- Public Types inherited from faudes::TBaseSet< Idx >
enum  DetachMode
 Detach from extern storage (incl allocation and true copy) More...
 
- Protected Types inherited from faudes::TBaseSet< Idx >
typedef std::set< Idx, std::less< Idx > >::iterator iterator
 STL iterator, non-const version. More...
 
typedef std::set< Idx, std::less< Idx > >::const_iterator const_iterator
 STL iterator, const version. More...
 
typedef std::map< Idx, AttributeVoid * >::iterator aiterator
 STL attribute iterator, non-const version. More...
 
typedef std::map< Idx, AttributeVoid * >::const_iterator const_aiterator
 STL attribute iterator, const version. More...
 
- Static Protected Attributes inherited from faudes::TBaseSet< Idx >
static std::set< Idx, std::less< Idx > > msEmptySet
 static empty STL set for default constructor More...
 
static std::map< Idx, AttributeVoid * > msEmptyAttributes
 static empty STL map for default constructor More...
 

Constructor & Destructor Documentation

◆ NameSet() [1/3]

faudes::NameSet::NameSet ( void  )

Constructor for NameSet referring to the static SymbolTable.

Definition at line 48 of file cfl_nameset.cpp.

◆ NameSet() [2/3]

faudes::NameSet::NameSet ( const NameSet rOtherSet)

Copy-constructor from other NameSet.

This also copies the SymbolTable reference, hence the new NameSet will use the same SymbolTable as rOtherSet.

Parameters
rOtherSetSet to copy

Definition at line 55 of file cfl_nameset.cpp.

◆ NameSet() [3/3]

faudes::NameSet::NameSet ( const std::string &  rFilename,
const std::string &  rLabel = "" 
)

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
rFilenameName of file
rLabelSection for the set in the file;

Definition at line 63 of file cfl_nameset.cpp.

◆ ~NameSet()

faudes::NameSet::~NameSet ( void  )
virtual

Virtual destructor.

Definition at line 70 of file cfl_nameset.cpp.

Member Function Documentation

◆ DoAssign()

void faudes::NameSet::DoAssign ( const NameSet rSourceSet)
protected

Assign from other name set.

Performs a fake copy, see TBaseSet.

Parameters
rSourceSetSource to copy from
Returns
ref to this set

Definition at line 83 of file cfl_nameset.cpp.

◆ DoDWrite()

void faudes::NameSet::DoDWrite ( TokenWriter tw,
const std::string &  rLabel = "",
const Type pContext = 0 
) const
protectedvirtual

Write debug info to TokenWriter, see Type::DWrite for public wrapper.

The debug version writes a format that includes symbolic names and indices.

Parameters
twReference to TokenWriter
rLabelLabel of the section to write, defaults to name of set or "NameSet"
pContextWrite context to provide contextual information
Exceptions
Exception
  • IO errors (id 2)

Reimplemented from faudes::TBaseSet< Idx >.

Definition at line 142 of file cfl_nameset.cpp.

◆ DoEqual()

bool faudes::NameSet::DoEqual ( const NameSet rOtherSet) const
protected

Test equality of configuration data.

Ignore name of the set, insist in matching symboltables.

Parameters
rOtherSetOther object to compare with.
Returns
True on match.

Definition at line 92 of file cfl_nameset.cpp.

◆ DoRead()

void faudes::NameSet::DoRead ( TokenReader tr,
const std::string &  rLabel = "",
const Type pContext = 0 
)
protectedvirtual

Read from TokenReader, see Type::Read for public wrappers.

It is an error if the file contains a plain index (id 52). The method invokes TokenReader::ReadBegin() to seek the specified section, reads subsequent symbols, and calls matching TokenReader::ReadEnd(). If no section is specified, the section is assumed to start at the current position of the token stream. If the current position is no begin token, the section "NameSet" is read. When used by a derived class with attributes, attributes are read, too.

Parameters
trReference to TokenReader
rLabelLabel to read, defaults to current begin label or else "NameSet"
pContextWrite context to provide contextual information
Exceptions
Exception
  • IO errors (id 1)
  • token mismatch (id 50, 51, 52)

Reimplemented from faudes::TBaseSet< Idx >.

Definition at line 188 of file cfl_nameset.cpp.

◆ DoWrite()

void faudes::NameSet::DoWrite ( TokenWriter tw,
const std::string &  rLabel = "",
const Type pContext = 0 
) const
protectedvirtual

Write to TokenWriter, see Type::Write for public wrappers This function will also do the token IO of attributes in derived classes.

Parameters
twReference to TokenWriter
rLabelLabel of the section to write, defaults to name of set or "NameSet"
pContextWrite context to provide contextual information
Exceptions
Exception
  • IO errors (id 2)

Reimplemented from faudes::TBaseSet< Idx >.

Definition at line 119 of file cfl_nameset.cpp.

◆ DoXWrite()

void faudes::NameSet::DoXWrite ( TokenWriter tw,
const std::string &  rLabel = "",
const Type pContext = 0 
) const
protectedvirtual

Write to TokenWriter XML format, see Type::XWrite for public wrappers This function will also do the token IO of attributes in derived classes.

Parameters
twReference to TokenWriter
rLabelLabel of the section to write, defaults to name of set or "NameSet"
pContextWrite context to provide contextual information
Exceptions
Exception
  • IO errors (id 2)

Reimplemented from faudes::Type.

Definition at line 158 of file cfl_nameset.cpp.

◆ Erase() [1/3]

bool faudes::NameSet::Erase ( const Idx rIndex)
virtual

◆ Erase() [2/3]

NameSet::Iterator faudes::NameSet::Erase ( const Iterator &  pos)
virtual

◆ Erase() [3/3]

bool faudes::NameSet::Erase ( const std::string &  rName)
virtual

Delete element by symbolic name.

The symbolic name is not removed from the SymbolTable

Parameters
rNamesymbolic name
Returns
True if element did exist
Exceptions
Exception
  • unknown symbolic name (id 66)

Reimplemented in faudes::TaNameSet< Attr >, faudes::TaNameSet< faudes::AttributeFailureEvents >, faudes::TaNameSet< AttributeSimCondition >, faudes::TaNameSet< faudes::AttributeSignalEvent >, faudes::TaNameSet< faudes::AttributeSimplenetEvent >, faudes::TaNameSet< EventAttr >, and faudes::TaNameSet< SimEventAttribute >.

Definition at line 314 of file cfl_nameset.cpp.

◆ EraseSet() [1/2]

void faudes::NameSet::EraseSet ( const NameSet rOtherSet)

Erase elements specified by rOtherSet.

Parameters
rOtherSetOther StateSet
Exceptions
Exception
  • symboltable mismatch (id 67)

Definition at line 352 of file cfl_nameset.cpp.

◆ EraseSet() [2/2]

void faudes::NameSet::EraseSet ( const TBaseSet< Idx > &  rOtherSet)
virtual

Erase elements specified by rOtherSet.

This function requires a runtime cast to access the synboltable. An expection is thrown if the cast fails.

Parameters
rOtherSetOther NameSet
Exceptions
Exception
  • symboltable mismatch (id 67)
  • cast to nameset failed (id 67)

Reimplemented in faudes::TaNameSet< Attr >, faudes::TaNameSet< faudes::AttributeFailureEvents >, faudes::TaNameSet< AttributeSimCondition >, faudes::TaNameSet< faudes::AttributeSignalEvent >, faudes::TaNameSet< faudes::AttributeSimplenetEvent >, faudes::TaNameSet< EventAttr >, and faudes::TaNameSet< SimEventAttribute >.

Definition at line 333 of file cfl_nameset.cpp.

◆ Exists() [1/2]

bool faudes::NameSet::Exists ( const Idx rIndex) const

Test existence of index.

Parameters
rIndexIndex to test
Returns
True if index is in this set

Definition at line 433 of file cfl_nameset.cpp.

◆ Exists() [2/2]

bool faudes::NameSet::Exists ( const std::string &  rName) const

Test existence of name.

Parameters
rNameSymbolic name to test
Returns
True if index is in this set

Definition at line 438 of file cfl_nameset.cpp.

◆ Find() [1/2]

NameSet::Iterator faudes::NameSet::Find ( const Idx rIndex) const

Find iterator for index.

Returns either a valid iterator or End() for non-existent.

Parameters
rIndexIndex to find
Returns
NameSet::Iterator

Definition at line 443 of file cfl_nameset.cpp.

◆ Find() [2/2]

NameSet::Iterator faudes::NameSet::Find ( const std::string &  rName) const

Find iterator for name.

Returns either a valid iterator or End() for non-existent.

Parameters
rNameName to find
Returns
NameSet::Iterator

Definition at line 448 of file cfl_nameset.cpp.

◆ Index()

Idx faudes::NameSet::Index ( const std::string &  rName) const

Index lookup.

Parameters
rNameSymbolic name to look up
Returns
Corresponding index or 0 for non-existent

Definition at line 428 of file cfl_nameset.cpp.

◆ Insert() [1/2]

bool faudes::NameSet::Insert ( const Idx rIndex)

Add an element by index.

Index must be already known to the global SymbolTable.

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

Definition at line 256 of file cfl_nameset.cpp.

◆ Insert() [2/2]

Idx faudes::NameSet::Insert ( const std::string &  rName)

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
rNameSymbolic name of element to add
Returns
Index of (new) element

Definition at line 268 of file cfl_nameset.cpp.

◆ InsertSet() [1/2]

void faudes::NameSet::InsertSet ( const NameSet rOtherSet)
virtual

◆ InsertSet() [2/2]

void faudes::NameSet::InsertSet ( const TBaseSet< Idx > &  rOtherSet)
virtual

Inserts all elements of rOtherSet.

This variant requires a runtime cast to access the synboltable. An expection is thrown if the cast fails.

Parameters
rOtherSetOther NameSet
Exceptions
Exception
  • symboltable mismatch (id 67)
  • cast to nameset failed (id 67)

Reimplemented in faudes::TaNameSet< Attr >, faudes::TaNameSet< faudes::AttributeFailureEvents >, faudes::TaNameSet< AttributeSimCondition >, faudes::TaNameSet< faudes::AttributeSignalEvent >, faudes::TaNameSet< faudes::AttributeSimplenetEvent >, faudes::TaNameSet< EventAttr >, and faudes::TaNameSet< SimEventAttribute >.

Definition at line 276 of file cfl_nameset.cpp.

◆ operator*()

NameSet faudes::NameSet::operator* ( const NameSet rOtherSet) const

Set intersection operator.

Returns
Intersection NameSet
Exceptions
Exception
  • symboltable mismatch (id 67)

Definition at line 489 of file cfl_nameset.cpp.

◆ operator+()

NameSet faudes::NameSet::operator+ ( const NameSet rOtherSet) const

Set union operator.

Returns
Union Set
Exceptions
Exception
  • symboltable mismatch (id 67)

Definition at line 454 of file cfl_nameset.cpp.

◆ operator-()

NameSet faudes::NameSet::operator- ( const NameSet rOtherSet) const

Set difference operator.

Returns
Difference NameSet
Exceptions
Exception
  • symboltable mismatch (id 67)

Definition at line 471 of file cfl_nameset.cpp.

◆ operator<=()

bool faudes::NameSet::operator<= ( const NameSet rOtherSet) const

Test for subset

Definition at line 506 of file cfl_nameset.cpp.

◆ operator>=()

bool faudes::NameSet::operator>= ( const NameSet rOtherSet) const

Test for superset.

Definition at line 518 of file cfl_nameset.cpp.

◆ RestrictSet() [1/2]

void faudes::NameSet::RestrictSet ( const NameSet rOtherSet)

Restrict to elements specified by rOtherSet.

Parameters
rOtherSetOther StateSet
Exceptions
Exception
  • symboltable mismatch (id 67)

Definition at line 383 of file cfl_nameset.cpp.

◆ RestrictSet() [2/2]

void faudes::NameSet::RestrictSet ( const TBaseSet< Idx > &  rOtherSet)
virtual

Restrict to elements specified by rOtherSet.

This function requires a runtime cast to access the synboltable. An expection is thrown if the cast fails.

Parameters
rOtherSetOther NameSet
Exceptions
Exception
  • symboltable mismatch (id 67)
  • cast to nameset failed (id 67)

Reimplemented in faudes::TaNameSet< Attr >, faudes::TaNameSet< faudes::AttributeFailureEvents >, faudes::TaNameSet< AttributeSimCondition >, faudes::TaNameSet< faudes::AttributeSignalEvent >, faudes::TaNameSet< faudes::AttributeSimplenetEvent >, faudes::TaNameSet< EventAttr >, and faudes::TaNameSet< SimEventAttribute >.

Definition at line 365 of file cfl_nameset.cpp.

◆ Str()

std::string faudes::NameSet::Str ( const Idx rIndex) const

Return pretty printable symbolic name for index.

Primary meant for debugging messages.

Parameters
rIndexIndex to print
Returns
String

Definition at line 530 of file cfl_nameset.cpp.

◆ SymbolicName() [1/3]

void faudes::NameSet::SymbolicName ( const std::string &  rName,
const std::string &  rNewName 
)

Set new name for existing name FAUDES_CHECKED checks if the specified name exists in NameSet.

Parameters
rNameSymbolic name to edit
rNewNameNew name
Exceptions
Exception
  • symbolic name not in this set (id 60)
  • new name already associated with another index (id 44)

Definition at line 413 of file cfl_nameset.cpp.

◆ SymbolicName() [2/3]

std::string faudes::NameSet::SymbolicName ( Idx  index) const

Name lookup.

Parameters
indexIndex to lookup
Returns
Corresponding name or empty std::string if non-existent

Definition at line 395 of file cfl_nameset.cpp.

◆ SymbolicName() [3/3]

void faudes::NameSet::SymbolicName ( Idx  index,
const std::string &  rName 
)

Set new name for existing index.

FAUDES_CHECKED checks if index exists in NameSet.

Parameters
indexIndex to edit
rNameNew name
Exceptions
Exception
  • index not in this set (id 60)
  • index not found in SymbolTable (id 42)
  • name already associated with another index (id 44)

Definition at line 400 of file cfl_nameset.cpp.

◆ SymbolTablep() [1/2]

void faudes::NameSet::SymbolTablep ( SymbolTable pSymTab)

Set SymbolTable reference.

This function sets the reference to the SymbolTable. The current implementation clears the set, future versions may implement a re-indexing.

Parameters
pSymTabPointer to SymbolTable

Definition at line 110 of file cfl_nameset.cpp.

◆ SymbolTablep() [2/2]

SymbolTable * faudes::NameSet::SymbolTablep ( void  ) const

Get Pointer mpSymbolTable.

Returns
Pointer mpSymbolTable

Definition at line 105 of file cfl_nameset.cpp.

Friends And Related Function Documentation

◆ TaNameSet

template<class Attr >
friend class TaNameSet ( void  )
friend

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

This is used for the pragmatic implemention of conversion constructors.

Definition at line 79 of file cfl_nameset.h.

Member Data Documentation

◆ mpSymbolTable

SymbolTable* faudes::NameSet::mpSymbolTable
protected

Pointer to local SymbolTable.

Definition at line 428 of file cfl_nameset.h.


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

libFAUDES 2.32b --- 2024.03.01 --- c++ api documentaion by doxygen