Namespaces | Data Structures | Functions

viennadata Namespace Reference

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).

Function Documentation

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.

Template Parameters:
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'.

Template Parameters:
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.

Template Parameters:
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.

Template Parameters:
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.

Template Parameters:
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.

Template Parameters:
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.

Template Parameters:
KeyType Type of the key
Parameters:
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.

Template Parameters:
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.

Template Parameters:
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.

Template Parameters:
KeyType Type of the key
Parameters:
num Number of objects for which memory should be reserved. Object IDs have to be in the range 0...(num-1) then.