
Public Member Functions | |
| NamedData () | |
| template<typename DATA2 > | |
| NamedData< DATA > & | operator= (const NamedData< DATA2 > &other) |
Adding members | |
| void | add (DATA &v, const std::string &name) |
| void | add (const DATA &v, const std::string &name) |
| template<typename DATA2 > | |
| void | merge (NamedData< DATA2 > &) |
| template<typename DATA2 > | |
| void | merge (const NamedData< DATA2 > &) |
Accessing and querying | |
contents | |
| unsigned int | size () const |
| Number of stored data objects. | |
| DATA & | operator() (unsigned int i) |
| Access to stored data object by index. | |
| const DATA & | operator() (unsigned int i) const |
| Read-only access to stored data object by index. | |
| const DATA & | read (unsigned int i) const |
| Read only access for a non-const object. | |
| const std::string & | name (unsigned int i) const |
| Name of object at index. | |
| unsigned int | find (const std::string &name) const |
| Find index of a named object. | |
| bool | is_const () const |
| Returns true if this object contains constant data. | |
| template<class OUT > | |
| void | print (OUT &o) const |
| List names of stored objects. | |
Static Public Member Functions | |
| ::ExceptionBase & | ExcNameMismatch (int arg1, std::string arg2) throw (errortext << "Name at position " << arg1 << " is not equal to " << arg2 ) |
| ::ExceptionBase & | ExcConstantObject () |
Private Attributes | |
| bool | is_constant |
| True if the object is to be treated constant. | |
| std::vector< DATA > | data |
| The actual data stored. | |
| std::vector< std::string > | names |
| Names for the data. | |
This class is a collection of DATA objects. Each of the pointers has a name associated, enabling identification by this name rather than the index in the vector only.
Note that it is the actual data stored in this object. Therefore, for storing vectors and other large objects, it should be considered to use SmartPointer or boost::shared_ptr for DATA.
Objects of this kind have a smart way of treating constness: if a const data object is added or a const NamedData is supplied with merge(), the object will henceforth consider itself as const (is_constant will be true). Thus, any subsequent modification will be illegal and ExcConstantObject will be raised in debug mode.
Definition at line 43 of file named_data.h.
Standard constructor creating an empty object.
Definition at line 239 of file named_data.h.
| NamedData< DATA > & NamedData< DATA >::operator= | ( | const NamedData< DATA2 > & | other ) | [inline] |
Assignment operator, copying conversible data from another object.
Definition at line 307 of file named_data.h.
References NamedData< DATA >::is_const(), and internal::SymmetricTensorAccessors::merge().
| void NamedData< DATA >::add | ( | DATA & | v, |
| const std::string & | name | ||
| ) | [inline] |
Add a new data item to the end of the collection.
Definition at line 248 of file named_data.h.
References Assert.
Referenced by MeshWorker::Assembler::SystemSimple< MATRIX, VECTOR >::initialize().
| void NamedData< DATA >::add | ( | const DATA & | v, |
| const std::string & | name | ||
| ) | [inline] |
Add a new constant data item to the end of the collection and make the collection constant.
Definition at line 259 of file named_data.h.
References Assert.
| void NamedData< DATA >::merge | ( | NamedData< DATA2 > & | other ) | [inline] |
Merge the data of another NamedData to the end of this object.
If the other object had is_constant set, so will have this object after merge.
Definition at line 273 of file named_data.h.
References Assert, NamedData< DATA >::is_const(), NamedData< DATA >::name(), NamedData< DATA >::read(), and NamedData< DATA >::size().
| void NamedData< DATA >::merge | ( | const NamedData< DATA2 > & | other ) | [inline] |
Merge the data of another NamedData to the end of this object.
After this operation, all data in this object will be treated as const.
Definition at line 290 of file named_data.h.
References Assert, NamedData< DATA >::name(), and NamedData< DATA >::size().
Number of stored data objects.
Definition at line 320 of file named_data.h.
Referenced by NamedData< DATA >::merge().
Access to stored data object by index.
true. In such a case, either cast the NamedData object to a const reference, or use the function read() instead of this operator. Definition at line 338 of file named_data.h.
References Assert, and AssertIndexRange.
| const DATA & NamedData< DATA >::operator() | ( | unsigned int | i ) | const [inline] |
Read-only access to stored data object by index.
Definition at line 349 of file named_data.h.
References AssertIndexRange.
Read only access for a non-const object.
Definition at line 359 of file named_data.h.
References AssertIndexRange.
Referenced by NamedData< DATA >::merge().
| const std::string & NamedData< DATA >::name | ( | unsigned int | i ) | const [inline] |
Name of object at index.
Definition at line 369 of file named_data.h.
References AssertIndexRange.
Referenced by MeshWorker::Assembler::CellsAndFaces< number >::initialize(), NamedData< DATA >::merge(), and MeshWorker::VectorSelector::print().
| unsigned int NamedData< DATA >::find | ( | const std::string & | name ) | const [inline] |
Find index of a named object.
Definition at line 379 of file named_data.h.
References numbers::invalid_unsigned_int.
Referenced by NamedSelection::initialize().
Returns true if this object contains constant data.
Definition at line 329 of file named_data.h.
Referenced by NamedData< DATA >::merge(), and NamedData< DATA >::operator=().
| void NamedData< DATA >::print | ( | OUT & | o ) | const [inline] |
List names of stored objects.
Definition at line 393 of file named_data.h.
| ::ExceptionBase& NamedData< DATA >::ExcNameMismatch | ( | int | arg1, |
| std::string | arg2 | ||
| ) | throw (errortext << "Name at position " << arg1 << " is not equal to " << arg2 ) [static] |
Exception indicating that a function expected a vector to have a certain name, but NamedData had a different name in that position.
| ::ExceptionBase& NamedData< DATA >::ExcConstantObject | ( | ) | [static] |
Exception indicating that read access to stored data was attempted although the NamedData object contains const data and is_constant was true.
bool NamedData< DATA >::is_constant [private] |
True if the object is to be treated constant.
Definition at line 163 of file named_data.h.
The actual data stored.
Definition at line 165 of file named_data.h.
Names for the data.
Definition at line 168 of file named_data.h.
documentation generated on Fri Feb 3 2012 06:04:10 by
doxygen
1.7.2