libFAUDES

Sections

Index

faudes::IndexSet Class Reference
[State, Event and Transition Set]

#include <indexset.h>

Inherits faudes::TBaseSet< long unsigned int >.

Inherited by faudes::NameSet [virtual], faudes::TaIndexSet< Attr > [virtual], faudes::TaIndexSet< EventAttr > [virtual], faudes::TaIndexSet< faudes::AttributeCFlags > [virtual], faudes::TaIndexSet< faudes::AttributeTimedState > [virtual], faudes::TaIndexSet< faudes::HioEventFlags > [virtual], faudes::TaIndexSet< faudes::HioStateFlags > [virtual], faudes::TaIndexSet< faudes::SimConditionAttribute > [virtual], faudes::TaIndexSet< faudes::SimEventAttribute > [virtual], and faudes::TaIndexSet< StateAttr > [virtual].

List of all members.


Detailed Description

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.

Public Types

typedef TBaseSet< Idx >::Iterator Iterator
 Iterators on indexset.

Public Member Functions

 IndexSet (void)
 Constructor.
 IndexSet (const TBaseSet< Idx > &rOtherSet)
 Copy-constructor.
 IndexSet (const std::string &rFilename, const std::string &rLabel="IndexSet")
 Construct from file.
virtual IndexSetNew (void) const
 Construct on heap with same type.
virtual ~IndexSet (void)
 Virtual destructor.
virtual void Copy (IndexSet &rOtherSet) const
 Copy indexset.
virtual IndexSetoperator= (const IndexSet &rSrc)
 Assignment operator (fake copy).
virtual void CopyWithoutAttributes (IndexSet &rOtherSet) const
 Copy indexset.
Idx MaxIndex (void) const
 Get maximum index used in this set (0 for emptyset).
bool Valid (Idx index) const
 Test whether index is not 0.
Idx Insert (void)
 Insert new index to set.
bool Insert (Idx idx)
 Insert specified index.
Idx Signature (void) const
 Compute an Idx type signature for a Set.
std::string Str (Idx index) const
 Return pretty printable index.

Protected Member Functions

virtual void DoWrite (TokenWriter &tw, const std::string &rLabel="", const Type *pContext=0) const
 Write to TokenWriter, see Type::Write for public wrappers.
virtual void DoRead (TokenReader &rTr, const std::string &rLabel="", const Type *pContext=0)
 Read from TokenReader, see Type::Read for public wrappers.

Friends

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

Member Typedef Documentation

Iterators on indexset.


Constructor & Destructor Documentation

faudes::IndexSet::IndexSet ( void   ) 

Constructor.

faudes::IndexSet::IndexSet ( const TBaseSet< Idx > &  rOtherSet  ) 

Copy-constructor.

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

Construct from file.

Uses the Read(TokenReader&, const std::string&) function to read. a IndexSet from section rLabel in file rFilename.

Parameters:
rFilename Name of file to read
rLabel Section to read
Exceptions:
Exception 
  • IO Errors (id 1)
  • token musmatch (id 50, 51, 52)

virtual faudes::IndexSet::~IndexSet ( void   )  [inline, virtual]

Virtual destructor.


Member Function Documentation

void faudes::IndexSet::Copy ( IndexSet rOtherSet  )  const [virtual]

void faudes::IndexSet::CopyWithoutAttributes ( IndexSet rOtherSet  )  const [virtual]

Copy indexset.

Performs a fake copy, see TBaseSet. This function sets attributes to default.

Parameters:
rOtherSet Destination to copy to

Idx faudes::IndexSet::MaxIndex ( void   )  const

Get maximum index used in this set (0 for emptyset).

Returns:
max indices

bool faudes::IndexSet::Valid ( Idx  index  )  const

Test whether index is not 0.

Parameters:
index Index to test
Returns:
True if idx!=0

Idx faudes::IndexSet::Signature ( void   )  const

Compute an Idx type signature for a Set.

The value is computed by summing up the product of every index with an integer starting at 1 (for the first index) and ending at Size() (for the last index).

Returns:
Idx type set signature

std::string faudes::IndexSet::Str ( Idx  index  )  const [inline]

void faudes::IndexSet::DoWrite ( TokenWriter tw,
const std::string &  rLabel = "",
const Type pContext = 0 
) const [protected, virtual]

Write to TokenWriter, see Type::Write for public wrappers.

Appends the IndexSet to TokenWriter. This will write a section with label as specified that holds integer tokens to represent the IndexSet. For non-default attribute values, the respective index is followed by the attribute value. The latter may consist of sections (or tokens different from integer or string) to allow for transparent reading; see AttributeVoid and AttributeFlags. Example for a set with name "MySet" consisting of indices 17, 25, 40, where index 25 has a nontrivial attribute attached:

 <Myset> 
 17 
 25 <AValue> "Some Value" </AValue> 
 40 
 </MySet>  

Parameters:
tw Reference to TokenWriter
rLabel Label of section to write, defaults to name of set or "IndexSet"
pContext Write context to provide contextual information
Exceptions:
Exception 
  • IO errors (id 2)

Reimplemented from faudes::TBaseSet< T, Cmp >.

Reimplemented in faudes::NameSet.

void faudes::IndexSet::DoRead ( TokenReader rTr,
const std::string &  rLabel = "",
const Type pContext = 0 
) [protected, virtual]

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

This method invokes TokenReader::SeekBegin() to seek the specified section, reads subsequent integer tokens as indexes, calls matching TokenReader::SeekEnd(). When used by a derived class with attributes, attributes are read, too. If no section is specified, the section "IndexSet" is read.

Parameters:
rTr Reference to tokenreader
rLabel Section to read, defaults to "IndexSet"
pContext Read context to provide contextual information
Exceptions:
Exception 
  • IO errors (id 1)
  • token mismatch (id 50, 51, 52)

Reimplemented from faudes::TBaseSet< T, Cmp >.

Reimplemented in faudes::NameSet.


Friends And Related Function Documentation

friend class TaIndexSet [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 files:

libFAUDES 2.13a c++ source docu by doxygen 1.5.6