Set of indices.
This class is built on top of the faudes version TBaseSet of STL sets. It provides the essentials of the STL interface and inherits the standard token IO interface from Type, so you may use Read and Write for file/string/console IO.
IndexSet is used as common base for TaIndexSet (indices with attributes), NameSet (indices with symbolic names) and TaNameSet (indices with attributes and symbolic names).
The index of value 0 is reserved to indicate the invalid index. If the macro FAUDES_CHECKED is defined, the attempt to insert an index 0 triggers an exception (id 61). Invalid iterators throw an exception (id 62) when used as an argument to a IndexSet function.
Technically, file IO is done by TaIndexSet 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 "MySet" consisting of indices 17, 25, 26, 27, 28, 40:
<Myset>
17
<Consecutive> 25 4 </Consecutive>
40
</MySet>
Theere is a minimum number of consecutive indices for the use of the consecutive section defined in definitions.h.
Definition at line 78 of file cfl_indexset.h.
|
| IndexSet (void) |
| Constructor. More...
|
|
| IndexSet (const IndexSet &rOtherSet) |
| Copy-constructor. More...
|
|
| IndexSet (const TBaseSet< Idx > &rOtherSet) |
| Copy-constructor. More...
|
|
| IndexSet (const std::string &rFilename, const std::string &rLabel="") |
| Construct from file. More...
|
|
virtual | ~IndexSet (void) |
| Virtual destructor. More...
|
|
Idx | MaxIndex (void) const |
| Get maximum index used in this set (0 for emptyset) More...
|
|
bool | Valid (const Idx &rIndex) const |
| Test whether index is not 0. More...
|
|
Idx | Insert (void) |
| Insert new index to set. More...
|
|
bool | Insert (const Idx &rIndex) |
| Insert specified index. More...
|
|
Idx | Signature (void) const |
| Compute an Idx type signature for a Set. More...
|
|
std::string | Str (const Idx &rIndex) const |
| Return pretty printable index. More...
|
|
| 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 AttributeVoid * | AttributeType (void) const |
| Attribute typeinfo. More...
|
|
virtual bool | AttributeTest (const Type &rAttr) const |
| Attribute typeinfo. More...
|
|
virtual TBaseSet & | AssignWithoutAttributes (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 AttributeVoid * | Attributep (const Idx &rElem) |
| Attribute access. More...
|
|
virtual const AttributeVoid & | Attribute (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...
|
|
Type & | operator= (const Type &rSrc) |
| Assign configurationdata from other object. More...
|
|
bool | operator== (const Type &rOther) const |
| Test equality of configuration data. More...
|
|
bool | operator!= (const Type &rOther) const |
| Test equality of configuration data. More...
|
|
| Type (void) |
| Constructor. More...
|
|
| Type (const Type &rType) |
| Copy constructor. More...
|
|
virtual | ~Type (void) |
| Destructor. More...
|
|
virtual Type * | New (void) const |
| Construct on heap. More...
|
|
virtual Type * | Copy (void) const |
| Construct on heap. More...
|
|
virtual const Type * | Cast (const Type *pOther) const |
| Cast other object to this type. More...
|
|
virtual Type & | Assign (const Type &rSrc) |
| Assign configuration data from other object. More...
|
|
Type & | operator= (const Type &rSrc) |
| Assign configurationdata from other object. More...
|
|
virtual bool | Equal (const Type &rOther) const |
| Test equality of configuration data. More...
|
|
bool | operator== (const Type &rOther) const |
| Test equality of configuration data. More...
|
|
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...
|
|
|
void | DoAssign (const IndexSet &rSource) |
| Assign my members. More...
|
|
virtual void | DoWrite (TokenWriter &tw, const std::string &rLabel="", const Type *pContext=0) const |
| Write to TokenWriter, see Type::Write for public wrappers. More...
|
|
virtual void | DoXWrite (TokenWriter &tw, const std::string &rLabel="", const Type *pContext=0) const |
| Write to TokenWriter, see Type::Write for public wrappers. More...
|
|
virtual void | DoRead (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0) |
| Read from TokenReader, see Type::Read for public wrappers. More...
|
|
virtual const std::string & | XElementTag (void) const |
| Get name of elements (used for XML IO) More...
|
|
virtual void | DoDWrite (TokenWriter &rTw, const std::string &rLabel="", const Type *pContext=0) const |
| Token output, debugging see Type::DWrite for public wrappers. 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 AttributeVoid * | DoAttribute (const Idx &rElem) const |
| get attribute from map (return null if elem does not exist in map) More...
|
|
AttributeVoid * | DoAttributeExplicit (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 TypeDefinition * | TypeDefinitionp (void) const |
| Reimplment from type to use chache. More...
|
|
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 |
|
|
enum | DetachMode |
| Detach from extern storage (incl allocation and true copy) More...
|
|
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...
|
|
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...
|
|
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...
|
|