|
libFAUDES
Sections
Index
|
faudes::TBaseSet< T, Cmp > Class Template Reference
|
Classes | |
class | Iterator |
Iterator class for high-level api to TBaseSet. More... | |
Public Member Functions | |
TBaseSet (void) | |
Constructor. | |
TBaseSet (const TBaseSet &rOtherSet) | |
Copy-constructor. | |
TBaseSet (const std::string &rFilename, const std::string &rLabel="BaseSet") | |
Constructor from file. | |
virtual | ~TBaseSet (void) |
Virtual destructor. | |
const std::string & | Name (void) const |
Return name of TBaseSet. | |
void | Name (const std::string &rName) |
Set name of TBaseSet. | |
virtual void | Clear (void) |
Clear all set. | |
Idx | Size (void) const |
Get Size of TBaseSet. | |
bool | Empty (void) const |
Check if the TBaseSet ist Empty. | |
virtual std::string | Str (const T &rElem) const |
Return pretty printable element. | |
Iterator | Begin (void) const |
Iterator to the begin of set. | |
Iterator | End (void) const |
Iterator to the end of set. | |
virtual bool | Valid (const T &rElem) const |
Test validty of candidate element. | |
virtual bool | Erase (const T &rElem) |
Erase element by reference. | |
virtual Iterator | Erase (const Iterator &pos) |
Erase element by iterator. | |
virtual void | EraseSet (const TBaseSet &rOtherSet) |
Erase elements given by other set. | |
virtual void | RestrictSet (const TBaseSet &rOtherSet) |
Restrict elements given by other set. | |
virtual bool | Insert (const T &rElem) |
Insert specified element. | |
virtual void | InsertSet (const TBaseSet &rOtherSet) |
Insert elements given by rOtherSet. | |
virtual void | SetUnion (const TBaseSet &rOtherSet) |
Set Union, result is accumulated in this set. | |
virtual void | SetIntersection (const TBaseSet &rOtherSet) |
Set Intersection, result is stored in this set. | |
bool | Exists (const T &rElem) const |
Test existence of element. | |
Iterator | Find (const T &rElem) const |
Find element and return iterator. | |
TBaseSet | operator+ (const TBaseSet &rOtherSet) const |
Set union operator. | |
TBaseSet | operator- (const TBaseSet &rOtherSet) const |
Set difference operator. | |
TBaseSet | operator* (const TBaseSet &rOtherSet) const |
Set intersection operator. | |
bool | operator<= (const TBaseSet &rOtherSet) const |
Test for subset. | |
bool | operator>= (const TBaseSet &rOtherSet) const |
Test for superset. | |
bool | operator< (const TBaseSet &rOtherSet) const |
Order for sorting containers of TBaseSet. | |
void | DValid (const std::string &rMessage="") const |
Some validation of deferred copy mechanism (provoke abort). | |
virtual void | Detach (void) const |
Detach from extern storage (incl allocation and true copy). | |
virtual void | Lock (void) const |
Detach and lock any further reallocation. | |
virtual const AttributeVoid * | Attributep (void) const |
Attribute typeinfo. | |
virtual const AttributeVoid & | Attribute (void) const |
Attribute typeinfo. | |
virtual bool | AttributeTry (const Type &rAttr) const |
Attribute typeinfo. | |
virtual TBaseSet & | AssignWithoutAttributes (const TBaseSet &rSourceSet) |
Attribute access. | |
virtual void | Attributes (const TBaseSet &rOtherSet) |
Attributes access. | |
virtual Idx | AttributesSize (void) const |
Attribute access. | |
virtual void | ClearAttributes (void) |
Attribute access. | |
virtual bool | EqualAttributes (const TBaseSet &rOtherSet) const |
Attribute access. | |
virtual AttributeVoid * | Attributep (const T &rElem) |
Attribute access. | |
virtual const AttributeVoid & | Attribute (const T &rElem) const |
Attribute access. | |
virtual void | Attribute (const T &rElem, const Type &rAttr) |
Attribute access. | |
virtual void | AttributeTry (const T &rElem, const Type &rAttr) |
Attribute access. | |
virtual void | ClrAttribute (const T &rElem) |
Attribute access. | |
Protected Types | |
typedef std::set< T, Cmp > ::iterator | iterator |
STL iterator, non-const version. | |
typedef std::set< T, Cmp > ::const_iterator | const_iterator |
STL iterator, const version. | |
typedef std::map< T, AttributeVoid * >::iterator | aiterator |
STL attribute iterator, non-const version. | |
typedef std::map< T, AttributeVoid * > ::const_iterator | const_aiterator |
STL attribute iterator, const version. | |
Protected Member Functions | |
virtual void | DoWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const |
Token output, see Type::DWrite for public wrappers. | |
virtual void | DoDWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const |
Token output, debugging see Type::DWrite for public wrappers. | |
virtual void | DoSWrite (TokenWriter &rTw) const |
Token output, see Type::SWrite for public wrappers. | |
virtual void | DoRead (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0) |
Token input, see Type::Read for public wrappers. | |
virtual void | DoAssign (const TBaseSet &rSourceSet) |
assign my members | |
virtual bool | DoEqual (const TBaseSet &rOtherSet) const |
test equality | |
TBaseSet< T, Cmp >::Iterator | ThisIterator (const typename std::set< T, Cmp >::const_iterator &sit) const |
Convert STL iterator. | |
void | RelinkReferences (void) |
Ensure that we do not serve contents to anyone else. | |
void | AttachReference (TBaseSet *pRef) const |
Record that we serve contents to some other TBaseSet. | |
void | DetachReference (TBaseSet *pRef) const |
Record that we stop serving contents to some TBaseSet. | |
void | AttachIterator (Iterator *pFit) const |
Record that an iterator refers to this TBaseSet. | |
void | DetachIterator (Iterator *pFit) const |
Record that an iterator stops to refer to this TBaseSet. | |
void | FnctUnion (const TBaseSet &rOtherSet, TBaseSet &rRes) const |
Implementation of union. | |
void | FnctDifference (const TBaseSet &rOtherSet, TBaseSet &rRes) const |
Implementation of difference. | |
void | FnctIntersection (const TBaseSet &rOtherSet, TBaseSet &rRes) const |
Implementation of intersection. | |
virtual const TypeDefinition * | TypeDefinitionp (void) const |
Reimplment from type type to use chache. | |
virtual const std::string & | TypeName (void) const |
Reimplment from faudes type to use chache. | |
virtual const std::string & | XElementTag (void) const |
Name of elements (used for XML IO). | |
Protected Attributes | |
std::set< T, Cmp > * | mpSet |
STL set, if the object owns content (else NULL). | |
std::map< T, AttributeVoid * > * | mpAttributes |
Attribute map, if this object owns content (else NULL). | |
std::set< T, Cmp > * | pSet |
Pointer on STL set to operate on. | |
std::map< T, AttributeVoid * > * | pAttributes |
Pointer to attribute map to operate on. | |
std::string | mMyName |
Name of TBaseSet. | |
std::set< TBaseSet< T, Cmp > * > | mReferences |
Other BaseSets, that refer to the STL set provided by this TBaseSet. | |
TBaseSet< T, Cmp > * | pBaseSet |
Pointer on BaseSet that owns the STL set this BaseSet referrs to. | |
bool | mDetached |
Indicate "has no references, provides STL set". | |
bool | mLocked |
Indicate "dont re-allocate the STL set again". | |
std::set< Iterator * > | mIterators |
Iterators that refer to this TBaseSet. | |
const TypeDefinition * | pTypeDefinition |
TypeDefinition cache (should use guarded pointer here). | |
Static Protected Attributes | |
static std::set< T, Cmp > | mEmptySet = std::set<T,Cmp>() |
static empty STL set for default constructor | |
static std::map< T, AttributeVoid * > | mEmptyAttributes = std::map<T,AttributeVoid*>() |
static empty STL map for default constructor | |
Friends | |
class | TaBaseSet |
We implement "protected privacy for template classes" by friendship. |
STL style set template.
This class template is built on top of the STL set template. It provides essentials of the STL interface relevant to libFAUDES plus a deferred copy mechanism, aka copy-on-write. TBaseSet serves as a base class for all libFaudes containers:
The public functions of a TBaseSet provide the high-level api, with the intention to organize the deferred copy machanism in a transparent manner. Since STL iterators refer to a particular STL container, they become invalid when the internal container is copied. Therefor, TBaseSet tracks iterators and fixes them when the actual copy takes place. Clearly, this introduces some overhead, in particular when your application represents subsets as sets of iterators. You may use the public method Lock() to enforce a full copy and to prevent any further re-allocation.
Alternatively to the high-level api, a protected low-level api is provided with direct access to the internal STL set. When using this api, it is up to the derived class to ensure that the BaseSet gets detached from its refernces befor write operations can take place.
The virtual function TBaseSet<T>::Valid() is used to indicate whether a candidate element is valid as a set member. If the macro FAUDES_CHECKED is defined, the attempt to insert an invalid element triggers an exception (id 61). Invalid iterators throw an exception (id 62) when used as an argument to a BaseSet function.
While the TBaseSet itself does not provide any attributes attached to its elements, it does provide an interface to attributes implemented in derived classes. The implementation of the interface behaves as if the attribute type was AttributeVoid. Thus, there is a uniform access to attributes for all faudes container classes. The actual attribute type can be detected via the C++ RTTI.
Note on a boring technical detail: since STL sets are sorted, effectively all set iterators should be const. However, there is a minor issue whether or not the erase function should use a const iterator as argument. SGI derived STL implementations (as used on most GNU systems) avoid this issue by defining const and non-const iterators on sets as identical types. MS implementation (used in VS C++ by default) differ in this aspect. The class TBaseSet::Iterator hides the issue from the faudes API but it is still present internaly: in its current implementation, libfaudes will not compile with MS STL. At this stage we are aware of two workarounds, one simple but on cost of performance, one a little bit awkward. Let us know if MS STL is missioncrititical for your libfaudes application.
Definition at line 96 of file cfl_baseset.h.
typedef std::map<T,AttributeVoid*>::iterator faudes::TBaseSet< T, Cmp >::aiterator [protected] |
STL attribute iterator, non-const version.
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, and faudes::TaBaseSet< Idx, Attr >.
Definition at line 869 of file cfl_baseset.h.
typedef std::map<T,AttributeVoid*>::const_iterator faudes::TBaseSet< T, Cmp >::const_aiterator [protected] |
STL attribute iterator, const version.
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, and faudes::TaBaseSet< Idx, Attr >.
Definition at line 872 of file cfl_baseset.h.
typedef std::set<T,Cmp>::const_iterator faudes::TBaseSet< T, Cmp >::const_iterator [protected] |
STL iterator, const version.
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, and faudes::TaBaseSet< Idx, Attr >.
Definition at line 863 of file cfl_baseset.h.
typedef std::set<T,Cmp>::iterator faudes::TBaseSet< T, Cmp >::iterator [protected] |
STL iterator, non-const version.
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, and faudes::TaBaseSet< Idx, Attr >.
Definition at line 860 of file cfl_baseset.h.
faudes::TBaseSet< T, Cmp >::TBaseSet | ( | void | ) | [inline] |
Constructor.
Definition at line 1109 of file cfl_baseset.h.
faudes::TBaseSet< T, Cmp >::TBaseSet | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | [inline] |
Copy-constructor.
rOtherSet | Source to copy from |
Definition at line 1147 of file cfl_baseset.h.
faudes::TBaseSet< T, Cmp >::TBaseSet | ( | const std::string & | rFilename, | |
const std::string & | rLabel = "BaseSet" | |||
) | [inline] |
Constructor from file.
This constructor indicates the intended interface for derived classes. The base set itself cannot read from token streams.
rFilename | Name of File | |
rLabel | Section for the set in the file; |
Definition at line 1127 of file cfl_baseset.h.
faudes::TBaseSet< T, Cmp >::~TBaseSet | ( | void | ) | [inline, virtual] |
Virtual destructor.
Definition at line 1173 of file cfl_baseset.h.
virtual TBaseSet& faudes::TBaseSet< T, Cmp >::AssignWithoutAttributes | ( | const TBaseSet< T, Cmp > & | rSourceSet | ) | [inline, virtual] |
Attribute access.
This virtual function provides an interface for derived classes with attributes eg TaIndexSet. It is meant to ignore any attributes. The TBaseSet itself has no attributes, so it calls its Assign method that ignores attributes anyway.
rSourceSet | Set to copy from |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 663 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::AttachIterator | ( | Iterator * | pFit | ) | const [inline, protected] |
Record that an iterator refers to this TBaseSet.
Definition at line 1433 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::AttachReference | ( | TBaseSet< T, Cmp > * | pRef | ) | const [inline, protected] |
Record that we serve contents to some other TBaseSet.
Definition at line 1421 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::Attribute | ( | const T & | rElem, | |
const Type & | rAttr | |||
) | [inline, virtual] |
Attribute access.
This virtual function provides an interface for derived classes with attributes eg TaIndexSet. The TBaseSet itself has void attributes and thus formally accepts any nontrivial attribute, however, ignoring any value. Derived classes that provide attributes are meant to set the attribute as specified. Only if the required cast to the actual attribute type fails an exception is thrown.
rElem | Element of which the attribute is to be set | |
rAttr | Attribute value to set. |
Exception |
|
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 2027 of file cfl_baseset.h.
const AttributeVoid & faudes::TBaseSet< T, Cmp >::Attribute | ( | const T & | rElem | ) | const [inline, virtual] |
Attribute access.
This virtual function provides an interface for derived classes with attributes eg TaIndexSet. The TBaseSet has no attributes and thus returns a void attribute. Derived classes that provide attributes are meant to return the attribute specified by rElem.
rElem | Element of which the attribute is requested |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 2020 of file cfl_baseset.h.
const AttributeVoid & faudes::TBaseSet< T, Cmp >::Attribute | ( | void | ) | const [inline, virtual] |
Attribute typeinfo.
This virtual function provides an interface for derived container classes with attributes eg TaIndexSet. When not re-implemented, it returns an attribute with type AttributeVoid to
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, and faudes::TaBaseSet< Idx, Attr >.
Definition at line 2004 of file cfl_baseset.h.
AttributeVoid * faudes::TBaseSet< T, Cmp >::Attributep | ( | const T & | rElem | ) | [inline, virtual] |
Attribute access.
This virtual function provides an interface for derived classes with attributes eg TaIndexSet. The TBaseSet has no attributes and thus throws an exception. Derived classes that provide attributes are meant to return a pointer to the attribute specified by rElem.
rElem | Element of which the attribute is requested |
Exception |
|
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 2010 of file cfl_baseset.h.
const AttributeVoid * faudes::TBaseSet< T, Cmp >::Attributep | ( | void | ) | const [inline, virtual] |
Attribute typeinfo.
This virtual function provides an interface for derived container classes with attributes eg TaIndexSet. When not re-implemented, it returns an attribute with type AttributeVoid to indicate the absence of nontrivial attributes
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, and faudes::TaBaseSet< Idx, Attr >.
Definition at line 1998 of file cfl_baseset.h.
virtual void faudes::TBaseSet< T, Cmp >::Attributes | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | [inline, virtual] |
Attributes access.
This virtual function provides an interface for derived classes with attributes eg TaIndexSet. It is meant to copy attributes from the specified set. The TBaseSet itself has no attributes and thus this function does nothing.
rOtherSet | Other BaseSet |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 674 of file cfl_baseset.h.
virtual Idx faudes::TBaseSet< T, Cmp >::AttributesSize | ( | void | ) | const [inline, virtual] |
Attribute access.
This virtual function provides an interface for derived classes with attributes eg TaIndexSet. It is meant to provide the number of explicit attributes. The TBaseSet itself has no attributes and thus this function returns 0.
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, and faudes::TaBaseSet< Idx, Attr >.
Definition at line 683 of file cfl_baseset.h.
virtual void faudes::TBaseSet< T, Cmp >::AttributeTry | ( | const T & | rElem, | |
const Type & | rAttr | |||
) | [inline, virtual] |
Attribute access.
This virtual function provides an interface for derived classes with attributes eg TaIndexSet. It is meant to try to set the attribute as specified if the type can be casted. Otherwise it does nothing.
rElem | Element of which the attribute is to be set | |
rAttr | Attribute value to set. |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 758 of file cfl_baseset.h.
virtual bool faudes::TBaseSet< T, Cmp >::AttributeTry | ( | const Type & | rAttr | ) | const [inline, virtual] |
Attribute typeinfo.
This virtual function provides an interface for derived classes with attributes eg TaIndexSet. It is meant to test whether this set accepts the specified attribute type ie whether it can be casted. When not re-implemented, the set accepts any attributes derived from attribute void.
rAttr | Attribute type to test. |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, and faudes::TaBaseSet< Idx, Attr >.
Definition at line 652 of file cfl_baseset.h.
TBaseSet< T, Cmp >::Iterator faudes::TBaseSet< T, Cmp >::Begin | ( | void | ) | const [inline] |
Iterator to the begin of set.
Reimplemented in faudes::TTransSet< Cmp >, faudes::TTransSet< TransSort::X1EvX2 >, and faudes::TTransSet< TransSort::EvX2X1 >.
Definition at line 1668 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::Clear | ( | void | ) | [inline, virtual] |
Clear all set.
Reimplemented from faudes::Type.
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaIndexSet< Attr >, faudes::TaTransSet< Attr >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, faudes::TaBaseSet< Idx, Attr >, faudes::TaIndexSet< DiagLabelSet >, faudes::TaIndexSet< HioStateFlags >, and faudes::TaIndexSet< StateAttr >.
Definition at line 1679 of file cfl_baseset.h.
virtual void faudes::TBaseSet< T, Cmp >::ClearAttributes | ( | void | ) | [inline, virtual] |
Attribute access.
This virtual function provides an interface for derived classes with attributes eg TaIndexSet. The TBaseSet itself has no attributes and thus this function does nothing.
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, and faudes::TaBaseSet< Idx, Attr >.
Definition at line 690 of file cfl_baseset.h.
virtual void faudes::TBaseSet< T, Cmp >::ClrAttribute | ( | const T & | rElem | ) | [inline, virtual] |
Attribute access.
This virtual function provides an interface for derived classes with attributes eg TaIndexSet. It is meant to set the attribute of the specified element to the default value. The TBaseSet itself has no attributes and thus this function does nothing.
rElem | Element of which the attribute is to be cleared |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 768 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::Detach | ( | void | ) | const [inline, virtual] |
Detach from extern storage (incl allocation and true copy).
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, and faudes::TaBaseSet< Idx, Attr >.
Definition at line 1242 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::DetachIterator | ( | Iterator * | pFit | ) | const [inline, protected] |
Record that an iterator stops to refer to this TBaseSet.
Definition at line 1440 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::DetachReference | ( | TBaseSet< T, Cmp > * | pRef | ) | const [inline, protected] |
Record that we stop serving contents to some TBaseSet.
Definition at line 1427 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::DoAssign | ( | const TBaseSet< T, Cmp > & | rSourceSet | ) | [inline, protected, virtual] |
assign my members
Definition at line 1195 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::DoDWrite | ( | TokenWriter & | rTw, | |
const std::string & | rLabel = "" , |
|||
const Type * | pContext = 0 | |||
) | const [inline, protected, virtual] |
Token output, debugging see Type::DWrite for public wrappers.
Reimplement this function in derived classes for specific specific template parameters.
rTw | Reference to TokenWriter | |
rLabel | Label of section to write, defaults to name of set | |
pContext | Write context to provide contextual information |
Reimplemented from faudes::Type.
Reimplemented in faudes::NameSet.
Definition at line 1621 of file cfl_baseset.h.
bool faudes::TBaseSet< T, Cmp >::DoEqual | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | const [inline, protected, virtual] |
test equality
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 1971 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::DoRead | ( | TokenReader & | rTr, | |
const std::string & | rLabel = "" , |
|||
const Type * | pContext = 0 | |||
) | [inline, protected, virtual] |
Token input, see Type::Read for public wrappers.
Reimplement this function in derived classes for specific specific template parameters. By convention, the default label "" should be translated to some meaningful default, eg "IndexSet" for a set of indices". The pContext pointer can de type-checked and interpreted, ie as a symboltable to provide symbolic names. It is also passed on to attributes.
rTr | Reference to TokenReader | |
rLabel | Label of section to read, defaults to name of set | |
pContext | Read context to provide contextual information |
Reimplemented from faudes::Type.
Reimplemented in faudes::IndexSet, faudes::NameSet, and faudes::SymbolSet.
Definition at line 1652 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::DoSWrite | ( | TokenWriter & | rTw | ) | const [inline, protected, virtual] |
Token output, see Type::SWrite for public wrappers.
Statistics include size, name and attributey type. The latter is retrieved from the RTI, if initialized. Dereived sets may reimplement this method.
rTw | Reference to TokenWriter |
Reimplemented from faudes::Type.
Definition at line 1636 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::DoWrite | ( | TokenWriter & | rTw, | |
const std::string & | rLabel = "" , |
|||
const Type * | pContext = 0 | |||
) | const [inline, protected, virtual] |
Token output, see Type::DWrite for public wrappers.
Reimplement this function in derived classes for specific specific template parameters. By convention, the default label "" should be translated to a) the name of the set or b) some meaningful default, eg "IndexSet" for a set of indices. The pContext pointer can de type-checked and interpreted, ie as a symboltable to provide symbolic names. It is also passed on to attributes.
rTw | Reference to TokenWriter | |
rLabel | Label of section to write, defaults to name of set | |
pContext | Write context to provide contextual information |
Reimplemented from faudes::Type.
Reimplemented in faudes::IndexSet, faudes::NameSet, faudes::SymbolSet, faudes::TTransSet< Cmp >, faudes::TTransSet< TransSort::X1EvX2 >, and faudes::TTransSet< TransSort::EvX2X1 >.
Definition at line 1609 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::DValid | ( | const std::string & | rMessage = "" |
) | const [inline] |
Some validation of deferred copy mechanism (provoke abort).
Definition at line 1447 of file cfl_baseset.h.
bool faudes::TBaseSet< T, Cmp >::Empty | ( | void | ) | const [inline] |
Check if the TBaseSet ist Empty.
Definition at line 1603 of file cfl_baseset.h.
TBaseSet< T, Cmp >::Iterator faudes::TBaseSet< T, Cmp >::End | ( | void | ) | const [inline] |
Iterator to the end of set.
Reimplemented in faudes::TTransSet< Cmp >, faudes::TTransSet< TransSort::X1EvX2 >, and faudes::TTransSet< TransSort::EvX2X1 >.
Definition at line 1673 of file cfl_baseset.h.
virtual bool faudes::TBaseSet< T, Cmp >::EqualAttributes | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | const [inline, virtual] |
Attribute access.
This virtual function provides an interface for derived classes with attributes eg TaIndexSet. Derived classes that provide attributes are meant to return true if attributes match for shared elements. The base set returns true as a default.
rOtherSet | Other object to compare with. |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 702 of file cfl_baseset.h.
TBaseSet< T, Cmp >::Iterator faudes::TBaseSet< T, Cmp >::Erase | ( | const Iterator & | pos | ) | [inline, virtual] |
Erase element by iterator.
pos | Iterator to specify element |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaIndexSet< Attr >, faudes::NameSet, faudes::TaNameSet< Attr >, faudes::TaTransSet< Attr >, faudes::TaBaseSet< Idx, AttributeSimplenetEvent >, faudes::TaBaseSet< Transition, Attr, TransSort::X1EvX2 >, faudes::TaBaseSet< Idx, EventAttr >, faudes::TaBaseSet< Idx, HioEventFlags >, faudes::TaBaseSet< Idx, AttributeSignalEvent >, faudes::TaBaseSet< Idx, DiagLabelSet >, faudes::TaBaseSet< Idx, StateAttr >, faudes::TaBaseSet< Idx, AttributeFailureEvents >, faudes::TaBaseSet< Idx, AttributeSimCondition >, faudes::TaBaseSet< Idx, SimEventAttribute >, faudes::TaBaseSet< Idx, HioStateFlags >, faudes::TaBaseSet< Idx, Attr >, faudes::TaIndexSet< DiagLabelSet >, faudes::TaIndexSet< HioStateFlags >, faudes::TaIndexSet< StateAttr >, faudes::TaNameSet< AttributeSimCondition >, faudes::TaNameSet< AttributeFailureEvents >, faudes::TaNameSet< EventAttr >, faudes::TaNameSet< HioEventFlags >, faudes::TaNameSet< AttributeSignalEvent >, faudes::TaNameSet< SimEventAttribute >, and faudes::TaNameSet< AttributeSimplenetEvent >.
Definition at line 1782 of file cfl_baseset.h.
bool faudes::TBaseSet< T, Cmp >::Erase | ( | const T & | rElem | ) | [inline, virtual] |
Erase element by reference.
rElem | Element to erase |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::TaIndexSet< Attr >, faudes::NameSet, faudes::TaNameSet< Attr >, faudes::TTransSet< Cmp >, faudes::TaTransSet< Attr >, faudes::TaIndexSet< DiagLabelSet >, faudes::TaIndexSet< HioStateFlags >, faudes::TaIndexSet< StateAttr >, faudes::TaNameSet< AttributeSimCondition >, faudes::TaNameSet< AttributeFailureEvents >, faudes::TaNameSet< EventAttr >, faudes::TaNameSet< HioEventFlags >, faudes::TaNameSet< AttributeSignalEvent >, faudes::TaNameSet< SimEventAttribute >, faudes::TaNameSet< AttributeSimplenetEvent >, faudes::TTransSet< TransSort::X1EvX2 >, and faudes::TTransSet< TransSort::EvX2X1 >.
Definition at line 1775 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::EraseSet | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | [inline, virtual] |
Erase elements given by other set.
rOtherSet | Set of elements to erase |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 1800 of file cfl_baseset.h.
bool faudes::TBaseSet< T, Cmp >::Exists | ( | const T & | rElem | ) | const [inline] |
Test existence of element.
rElem | Element to test |
Reimplemented in faudes::NameSet, faudes::TTransSet< Cmp >, faudes::TTransSet< TransSort::X1EvX2 >, and faudes::TTransSet< TransSort::EvX2X1 >.
Definition at line 1860 of file cfl_baseset.h.
TBaseSet< T, Cmp >::Iterator faudes::TBaseSet< T, Cmp >::Find | ( | const T & | rElem | ) | const [inline] |
Find element and return iterator.
rElem | Element to find |
Reimplemented in faudes::NameSet, faudes::TTransSet< Cmp >, faudes::TTransSet< TransSort::X1EvX2 >, and faudes::TTransSet< TransSort::EvX2X1 >.
Definition at line 1855 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::FnctDifference | ( | const TBaseSet< T, Cmp > & | rOtherSet, | |
TBaseSet< T, Cmp > & | rRes | |||
) | const [inline, protected] |
Implementation of difference.
Definition at line 1929 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::FnctIntersection | ( | const TBaseSet< T, Cmp > & | rOtherSet, | |
TBaseSet< T, Cmp > & | rRes | |||
) | const [inline, protected] |
Implementation of intersection.
Definition at line 1939 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::FnctUnion | ( | const TBaseSet< T, Cmp > & | rOtherSet, | |
TBaseSet< T, Cmp > & | rRes | |||
) | const [inline, protected] |
Implementation of union.
Definition at line 1920 of file cfl_baseset.h.
bool faudes::TBaseSet< T, Cmp >::Insert | ( | const T & | rElem | ) | [inline, virtual] |
Insert specified element.
rElem | Element to insert |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >, faudes::IndexSet, faudes::TaIndexSet< Attr >, faudes::NameSet, faudes::TaNameSet< Attr >, faudes::SymbolSet, faudes::TTransSet< Cmp >, faudes::TaTransSet< Attr >, faudes::TaIndexSet< DiagLabelSet >, faudes::TaIndexSet< HioStateFlags >, faudes::TaIndexSet< StateAttr >, faudes::TaNameSet< AttributeSimCondition >, faudes::TaNameSet< AttributeFailureEvents >, faudes::TaNameSet< EventAttr >, faudes::TaNameSet< HioEventFlags >, faudes::TaNameSet< AttributeSignalEvent >, faudes::TaNameSet< SimEventAttribute >, faudes::TaNameSet< AttributeSimplenetEvent >, faudes::TTransSet< TransSort::X1EvX2 >, and faudes::TTransSet< TransSort::EvX2X1 >.
Definition at line 1730 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::InsertSet | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | [inline, virtual] |
Insert elements given by rOtherSet.
rOtherSet | Set of elements to insert |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 1743 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::Lock | ( | void | ) | const [inline, virtual] |
Detach and lock any further reallocation.
Definition at line 1351 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::Name | ( | const std::string & | rName | ) | [inline, virtual] |
Set name of TBaseSet.
rName | Name to set |
Reimplemented from faudes::Type.
Definition at line 1558 of file cfl_baseset.h.
const std::string & faudes::TBaseSet< T, Cmp >::Name | ( | void | ) | const [inline, virtual] |
Return name of TBaseSet.
Reimplemented from faudes::Type.
Definition at line 1553 of file cfl_baseset.h.
TBaseSet< T, Cmp > faudes::TBaseSet< T, Cmp >::operator* | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | const [inline] |
TBaseSet< T, Cmp > faudes::TBaseSet< T, Cmp >::operator+ | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | const [inline] |
TBaseSet< T, Cmp > faudes::TBaseSet< T, Cmp >::operator- | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | const [inline] |
bool faudes::TBaseSet< T, Cmp >::operator< | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | const [inline] |
Order for sorting containers of TBaseSet.
Definition at line 1992 of file cfl_baseset.h.
bool faudes::TBaseSet< T, Cmp >::operator<= | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | const [inline] |
Test for subset.
Definition at line 1980 of file cfl_baseset.h.
bool faudes::TBaseSet< T, Cmp >::operator>= | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | const [inline] |
Test for superset.
Definition at line 1986 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::RelinkReferences | ( | void | ) | [inline, protected] |
Ensure that we do not serve contents to anyone else.
Definition at line 1378 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::RestrictSet | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | [inline, virtual] |
Restrict elements given by other set.
rOtherSet | Set of elements to keep |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 1825 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::SetIntersection | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | [inline, virtual] |
Set Intersection, result is stored in this set.
rOtherSet | Other TBaseSet |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 1891 of file cfl_baseset.h.
void faudes::TBaseSet< T, Cmp >::SetUnion | ( | const TBaseSet< T, Cmp > & | rOtherSet | ) | [inline, virtual] |
Set Union, result is accumulated in this set.
rOtherSet | Other TBaseSet |
Reimplemented in faudes::TaBaseSet< T, Attr, Cmp >.
Definition at line 1866 of file cfl_baseset.h.
Idx faudes::TBaseSet< T, Cmp >::Size | ( | void | ) | const [inline] |
Get Size of TBaseSet.
Definition at line 1598 of file cfl_baseset.h.
std::string faudes::TBaseSet< T, Cmp >::Str | ( | const T & | rElem | ) | const [inline, virtual] |
Return pretty printable element.
Reimplement this method for derived classes.
rElem | Element to print |
Reimplemented in faudes::IndexSet, faudes::NameSet, faudes::TaNameSet< Attr >, faudes::SymbolSet, faudes::TTransSet< Cmp >, faudes::TaNameSet< AttributeSimCondition >, faudes::TaNameSet< AttributeFailureEvents >, faudes::TaNameSet< EventAttr >, faudes::TaNameSet< HioEventFlags >, faudes::TaNameSet< AttributeSignalEvent >, faudes::TaNameSet< SimEventAttribute >, faudes::TaNameSet< AttributeSimplenetEvent >, faudes::TTransSet< TransSort::X1EvX2 >, and faudes::TTransSet< TransSort::EvX2X1 >.
Definition at line 1591 of file cfl_baseset.h.
TBaseSet< T, Cmp >::Iterator faudes::TBaseSet< T, Cmp >::ThisIterator | ( | const typename std::set< T, Cmp >::const_iterator & | sit | ) | const [inline, protected] |
Convert STL iterator.
Definition at line 1663 of file cfl_baseset.h.
const TypeDefinition * faudes::TBaseSet< T, Cmp >::TypeDefinitionp | ( | void | ) | const [inline, protected, virtual] |
Reimplment from type type to use chache.
Reimplemented from faudes::Type.
Definition at line 1565 of file cfl_baseset.h.
const std::string & faudes::TBaseSet< T, Cmp >::TypeName | ( | void | ) | const [inline, protected, virtual] |
Reimplment from faudes type to use chache.
Reimplemented from faudes::Type.
Definition at line 1575 of file cfl_baseset.h.
bool faudes::TBaseSet< T, Cmp >::Valid | ( | const T & | rElem | ) | const [inline, virtual] |
Test validty of candidate element.
Reimplement this function for particular type T of elements, eg for an index set with T=Idx indicate 0 an invalid index.
rElem | Candidate to test |
Reimplemented in faudes::IndexSet, and faudes::SymbolSet.
Definition at line 1724 of file cfl_baseset.h.
const std::string & faudes::TBaseSet< T, Cmp >::XElementTag | ( | void | ) | const [inline, protected, virtual] |
Name of elements (used for XML IO).
Definition at line 1582 of file cfl_baseset.h.
friend class TaBaseSet [friend] |
We implement "protected privacy for template classes" by friendship.
This is used for the pragmatic implemention conversion constructors.
Definition at line 106 of file cfl_baseset.h.
bool faudes::TBaseSet< T, Cmp >::mDetached [protected] |
Indicate "has no references, provides STL set".
Definition at line 888 of file cfl_baseset.h.
std::map< T, AttributeVoid * > faudes::TBaseSet< T, Cmp >::mEmptyAttributes = std::map<T,AttributeVoid*>() [inline, static, protected] |
static empty STL map for default constructor
Definition at line 851 of file cfl_baseset.h.
std::set< T, Cmp > faudes::TBaseSet< T, Cmp >::mEmptySet = std::set<T,Cmp>() [inline, static, protected] |
static empty STL set for default constructor
Definition at line 848 of file cfl_baseset.h.
std::set< Iterator* > faudes::TBaseSet< T, Cmp >::mIterators [protected] |
Iterators that refer to this TBaseSet.
Definition at line 903 of file cfl_baseset.h.
bool faudes::TBaseSet< T, Cmp >::mLocked [protected] |
Indicate "dont re-allocate the STL set again".
Definition at line 891 of file cfl_baseset.h.
std::string faudes::TBaseSet< T, Cmp >::mMyName [protected] |
Name of TBaseSet.
Definition at line 879 of file cfl_baseset.h.
std::map<T,AttributeVoid*>* faudes::TBaseSet< T, Cmp >::mpAttributes [protected] |
Attribute map, if this object owns content (else NULL).
Definition at line 845 of file cfl_baseset.h.
std::set<T,Cmp>* faudes::TBaseSet< T, Cmp >::mpSet [protected] |
STL set, if the object owns content (else NULL).
Definition at line 842 of file cfl_baseset.h.
std::set< TBaseSet<T,Cmp>* > faudes::TBaseSet< T, Cmp >::mReferences [protected] |
Other BaseSets, that refer to the STL set provided by this TBaseSet.
Definition at line 882 of file cfl_baseset.h.
std::map<T,AttributeVoid*>* faudes::TBaseSet< T, Cmp >::pAttributes [protected] |
Pointer to attribute map to operate on.
Definition at line 857 of file cfl_baseset.h.
TBaseSet<T,Cmp>* faudes::TBaseSet< T, Cmp >::pBaseSet [protected] |
Pointer on BaseSet that owns the STL set this BaseSet referrs to.
Definition at line 885 of file cfl_baseset.h.
std::set<T,Cmp>* faudes::TBaseSet< T, Cmp >::pSet [protected] |
Pointer on STL set to operate on.
Definition at line 854 of file cfl_baseset.h.
const TypeDefinition* faudes::TBaseSet< T, Cmp >::pTypeDefinition [protected] |
TypeDefinition cache (should use guarded pointer here).
Note: - we should use guarded pointers here
Definition at line 925 of file cfl_baseset.h.
libFAUDES 2.18b --- 2010-12-17 --- c++ source docu by doxygen 1.6.3