Namespaces | |
namespace | config |
namespace | traits |
Data Structures | |
class | data_accessor_with_key |
A proxy class for accessing data with key type and key object dispatch. Only used internally in ViennaData. More... | |
class | data_accessor_no_key |
A proxy class for accessing data with key type dispatch, but no key object dispatch. Only used internally in ViennaData. More... | |
class | data_erasor_with_key |
A proxy class for erasing data. Only used internally in ViennaData. More... | |
class | data_erasor_with_key< KeyType, all > |
Specialization that prevents supplying a key argument when using viennadata::all. More... | |
class | data_erasor_with_key< all, DataType > |
Specialization that prevents supplying a key argument when using viennadata::all. More... | |
class | data_erasor_with_key< all, all > |
Specialization that prevents supplying a key argument when using viennadata::all. More... | |
class | data_erasor_no_key |
A proxy class for erasing data. Only used internally in ViennaData. More... | |
class | data_erasor_no_key< KeyType, all > |
Specialization for erasing all data for a particular KeyType by providing viennadata::all for the DataType. More... | |
class | data_erasor_no_key< all, DataType > |
Specialization for erasing all data of a particular DataType by providing viennadata::all for the KeyType. More... | |
class | data_erasor_no_key< all, all > |
Specialization for erasing all data using viennadata::all. More... | |
class | data_copy_with_key |
A proxy class for copying data associated with a particular key from one object to another. Only used internally in ViennaData. More... | |
class | data_copy_with_key< KeyType, all > |
Specialization that prevents supplying a key argument when using viennadata::all. More... | |
class | data_copy_with_key< all, DataType > |
Specialization that prevents supplying a key argument when using viennadata::all. More... | |
class | data_copy_with_key< all, all > |
Specialization that prevents supplying a key argument when using viennadata::all. More... | |
class | data_copy_no_key |
A proxy class for copying data associated with a particular key type from one object to another. Only used internally in ViennaData. More... | |
class | data_copy_no_key< KeyType, all > |
Specialization for copying all data associated with a particular key type from one object to another using viennadata::all. More... | |
class | data_copy_no_key< all, DataType > |
Specialization for copying all data of a particular DataType from one object to another using viennadata::all for the KeyType. More... | |
class | data_copy_no_key< all, all > |
Specialization for copying all data from one object to another using viennadata::all. More... | |
class | data_mover_with_key |
A proxy class for moving data associated with a particular key from one object to another. Only used internally in ViennaData. More... | |
class | data_mover_with_key< KeyType, all > |
Specialization that prevents supplying a key argument when using viennadata::all. More... | |
class | data_mover_with_key< all, DataType > |
Specialization that prevents supplying a key argument when using viennadata::all. More... | |
class | data_mover_with_key< all, all > |
Specialization that prevents supplying a key argument when using viennadata::all. More... | |
class | data_mover_no_key |
A proxy class for moving data associated with a particular key type from one object to another. Only used internally in ViennaData. More... | |
class | data_reservation_proxy |
A proxy class for reserving memory needed for storing data associated with a particular key type. Only used internally in ViennaData. More... | |
class | data_find_proxy_with_key |
A proxy class for finding data associated with a particular key. Only used internally in ViennaData. More... | |
class | data_find_proxy_no_key |
A proxy class for finding data associated with a particular key. Only used internally in ViennaData. More... | |
class | data_container |
The central container class holding the data. Uses the singleton pattern for a particular key, value and object type triple. More... | |
struct | pointer_based_id |
A tag class that indicates that object addresses should be used as identification. More... | |
struct | object_provided_id |
A tag class that indicates that the object provides an ID mechanism (must be supplied by overloading object_identifier appropriately). More... | |
struct | dense_data_tag |
A tag class for storing data in a dense manner, i.e. most objects of the same type carry the data for a particular key/value pair. More... | |
struct | sparse_data_tag |
A tag class for storing data in a sparse manner, i.e. only a few objects of the same type carry the data for a particular key/value pair. More... | |
struct | full_key_dispatch_tag |
A tag class for specifying that both the key type and the key object are used for data access. More... | |
struct | type_key_dispatch_tag |
A tag class for specifying that ONLY the key type is used for data access. More... | |
struct | all |
A tag class that is used to represent all types of either a particular key type, or a particular value type. More... | |
struct | error_indicator |
A helper class to raise compile time errors. More... | |
class | key_value_pair_interface |
The interface for type-erasued key-value type pairs on a certain element. More... | |
class | key_value_pair_wrapper |
A dispatch facility that unwraps type-erasued key-value type pairs. More... | |
class | key_value_pair |
A dispatch facility that unwraps type-erasued key-value type pairs. More... | |
class | key_value_registration |
This class holds (key-type, data-type) pairs. Uses a singleton pattern to. More... | |
Functions | |
template<typename KeyType , typename DataType > | |
data_accessor_with_key < KeyType, DataType > | access (KeyType const &key) |
The main access function within ViennaData. Allows to access data stored with a particular key, using full dispatch (type and object). | |
template<typename KeyType > | |
data_accessor_with_key < KeyType, typename config::default_data_for_key < KeyType >::type > | access (KeyType const &key) |
The main access function within ViennaData using a default data type. Allows to access data stored with a particular key, using full dispatch (type and object). | |
template<typename KeyType , typename DataType > | |
data_accessor_no_key< KeyType, DataType > | access () |
The main access function within ViennaData. Allows to access data stored with a particular key, using type based dispatch. | |
template<typename KeyType > | |
data_accessor_no_key< KeyType, typename config::default_data_for_key < KeyType >::type > | access () |
The main access function within ViennaData, using a default data type. | |
template<typename KeyType , typename DataType > | |
data_erasor_with_key< KeyType, DataType > | erase (KeyType const &key) |
Erase data associated with key 'key'. The object is obtained via a proxy class. | |
template<typename KeyType > | |
data_erasor_with_key< KeyType, typename config::default_data_for_key < KeyType >::type > | erase (KeyType const &key) |
Erase data associated with key 'key' for the default data type. The object is obtained via a proxy class. | |
template<typename KeyType , typename DataType > | |
data_erasor_no_key< KeyType, DataType > | erase () |
Erase all data associated with keys of 'KeyType'. | |
template<typename KeyType > | |
data_erasor_no_key< KeyType, typename config::default_data_for_key < KeyType >::type > | erase () |
Erase all data associated with keys of 'KeyType' using a default data type. | |
template<typename KeyType , typename DataType > | |
data_copy_with_key< KeyType, DataType > | copy (KeyType const &key) |
Copies data associated with key 'key' from one object to another. | |
template<typename KeyType > | |
data_copy_with_key< KeyType, typename config::default_data_for_key < KeyType >::type > | copy (KeyType const &key) |
Copies data associated with key 'key' from one object to another using a default data type. | |
template<typename KeyType , typename DataType > | |
data_copy_no_key< KeyType, DataType > | copy () |
Copies data associated with all keys of type 'KeyType' from one object to another. | |
template<typename KeyType > | |
data_copy_no_key< KeyType, typename config::default_data_for_key < KeyType >::type > | copy () |
Copies data associated with all keys of type 'KeyType' from one object to another using a default data type. | |
template<typename KeyType , typename DataType > | |
data_mover_with_key< KeyType, DataType > | move (KeyType const &key) |
Moves data associated with key 'key' from one object to another. | |
template<typename KeyType > | |
data_mover_with_key< KeyType, typename config::default_data_for_key < KeyType >::type > | move (KeyType const &key) |
Moves data associated with key 'key' from one object to another using a default data type specified for the key type. | |
template<typename KeyType , typename DataType > | |
data_mover_no_key< KeyType, DataType > | move () |
Moves data associated with all keys of type 'KeyType' from one object to another. | |
template<typename KeyType > | |
data_mover_no_key< KeyType, typename config::default_data_for_key < KeyType >::type > | move () |
Moves data associated with all keys of type 'KeyType' from one object to another using a default data type specified for the key type. | |
template<typename KeyType , typename DataType > | |
data_reservation_proxy < KeyType, DataType > | reserve (long num) |
Reserves memory for storing data associated with a particular key type. | |
template<typename KeyType > | |
data_reservation_proxy < KeyType, typename config::default_data_for_key < KeyType >::type > | reserve (long num) |
Reserves memory for storing data associated with a particular key type and the specified default data type. | |
template<typename KeyType , typename DataType > | |
data_find_proxy_with_key < KeyType, DataType > | find (KeyType const &key) |
Reserves memory for storing data associated with a particular key type. | |
template<typename KeyType > | |
data_find_proxy_with_key < KeyType, typename config::default_data_for_key < KeyType >::type > | find (KeyType const &key) |
Reserves memory for storing data associated with a particular key type and the specified default data type. | |
template<typename KeyType , typename DataType > | |
data_find_proxy_no_key < KeyType, DataType > | find () |
Reserves memory for storing data associated with a particular key type (key type dispatch). |
data_accessor_with_key<KeyType, typename config::default_data_for_key<KeyType>::type> viennadata::access | ( | KeyType const & | key | ) |
The main access function within ViennaData using a default data type. Allows to access data stored with a particular key, using full dispatch (type and object).
Should be called in the form
viennadata:access<KeyType>(my_key)(my_obj) = some_value;
and
some_value = viennadata:access<KeyType>(my_key)(my_obj);
This would write and read data stored using a key 'my_key' of type 'KeyType' from 'my_obj'.
Default data type is set by specializations of the class viennadata::config::default_data_for_key. See examples/tutorials/default_data_type.cpp for an example.
KeyType | Type of the key |
data_accessor_no_key<KeyType, typename config::default_data_for_key<KeyType>::type > viennadata::access | ( | ) |
The main access function within ViennaData, using a default data type.
Should be called in the form
viennadata:access<KeyType>()(my_obj) = some_value;
and
some_value = viennadata:access<KeyType>()(my_obj);
This would write and read data stored using a key of type 'KeyType' from 'my_obj'.
KeyType | Type of the key |
data_copy_with_key<KeyType, typename config::default_data_for_key<KeyType>::type> viennadata::copy | ( | KeyType const & | key | ) |
Copies data associated with key 'key' from one object to another using a default data type.
Should be called in the form
viennadata:copy<KeyType>()(src_obj, dest_obj);
This would copy data stored using a key of type 'KeyType' from 'src_obj' to 'dest_obj'.
Default data type is set by specializations of the class viennadata::config::default_data_for_key. See examples/tutorials/default_data_type.cpp for an example.
KeyType | Type of the key |
data_copy_no_key<KeyType, typename config::default_data_for_key<KeyType>::type> viennadata::copy | ( | ) |
Copies data associated with all keys of type 'KeyType' from one object to another using a default data type.
Should be called in the form
viennadata:copy<KeyType>()(src_obj, dest_obj);
This would copy data stored using a key of type 'KeyType' from 'src_obj' to 'dest_obj'.
Default data type is set by specializations of the class viennadata::config::default_data_for_key. See examples/tutorials/default_data_type.cpp for an example.
KeyType | Type of the key |
data_erasor_no_key<KeyType, typename config::default_data_for_key<KeyType>::type> viennadata::erase | ( | ) |
Erase all data associated with keys of 'KeyType' using a default data type.
Should be called in the form
viennadata:erase<KeyType>()(my_obj);
This would erase data stored using a key of type 'KeyType' from 'my_obj'.
Default data type is set by specializations of the class viennadata::config::default_data_for_key. See examples/tutorials/default_data_type.cpp for an example.
KeyType | Type of the key |
data_erasor_with_key<KeyType, typename config::default_data_for_key<KeyType>::type> viennadata::erase | ( | KeyType const & | key | ) |
Erase data associated with key 'key' for the default data type. The object is obtained via a proxy class.
Should be called in the form
viennadata:erase<KeyType>(my_key)(my_obj);
This would erase data stored using a key 'my_key' of type 'KeyType' from 'my_obj'.
Default data type is set by specializations of the class viennadata::config::default_data_for_key. See examples/tutorials/default_data_type.cpp for an example.
KeyType | Type of the key |
data_find_proxy_with_key<KeyType, typename config::default_data_for_key<KeyType>::type> viennadata::find | ( | KeyType const & | key | ) |
Reserves memory for storing data associated with a particular key type and the specified default data type.
Should be called in the form
viennadata:find<KeyType>(my_key)(my_obj);
This would search for data associated with my_obj using a key of type 'KeyType'. If found, a pointer to the data is returned, otherwise NULL.
Default data type is set by specializations of the class viennadata::config::default_data_for_key. See examples/tutorials/default_data_type.cpp for an example.
KeyType | Type of the key |
key | The key object |
data_mover_no_key<KeyType, typename config::default_data_for_key<KeyType>::type> viennadata::move | ( | ) |
Moves data associated with all keys of type 'KeyType' from one object to another using a default data type specified for the key type.
Should be called in the form
viennadata:move<KeyType>()(src_obj, dest_obj);
This would move data stored using a key of type 'KeyType' from 'src_obj' to 'dest_obj'.
Default data type is set by specializations of the class viennadata::config::default_data_for_key. See examples/tutorials/default_data_type.cpp for an example.
KeyType | Type of the key |
data_mover_with_key<KeyType, typename config::default_data_for_key<KeyType>::type> viennadata::move | ( | KeyType const & | key | ) |
Moves data associated with key 'key' from one object to another using a default data type specified for the key type.
Should be called in the form
viennadata:move<KeyType>(key)(src_obj, dest_obj);
This would move data stored using a key 'key' of type 'KeyType' from 'src_obj' to 'dest_obj'.
Default data type is set by specializations of the class viennadata::config::default_data_for_key. See examples/tutorials/default_data_type.cpp for an example.
KeyType | Type of the key |
data_reservation_proxy<KeyType, typename config::default_data_for_key<KeyType>::type> viennadata::reserve | ( | long | num | ) |
Reserves memory for storing data associated with a particular key type and the specified default data type.
Should be called in the form
viennadata:reserve<KeyType>(num)(my_obj);
This would reserve memory for num objects with the same type as my_obj for data storage using a key of type 'KeyType'. Object IDs have to be in the range 0...(num-1) then.
Default data type is set by specializations of the class viennadata::config::default_data_for_key. See examples/tutorials/default_data_type.cpp for an example.
KeyType | Type of the key |
num | Number of objects for which memory should be reserved. Object IDs have to be in the range 0...(num-1) then. |