Constructor from a payload object. More...
Classes | |
class | AuxElement |
Base class for elements of a container that can have aux data. More... | |
class | AuxElementComplete |
Wrapper to automatically create a private store for an element. More... | |
class | AuxStoreInternal |
An auxiliary data store that holds data internally. More... | |
class | AuxStoreStandalone |
Auxiliary data store for standalone objects. More... | |
class | AuxTypeRegistry |
Handle mappings between names and auxid_t. More... | |
class | AuxVectorBase |
Manage index tracking and synchronization of auxiliary data. More... | |
class | AuxVectorData |
Manage lookup of vectors of auxiliary data. More... | |
class | DVLConstDataListBucket |
DataBucket class for ConstDataList . More... | |
struct | DataBucketTrait< ConstDataList< T >, U > |
Metafunction to find the proper DataBucket class for the first template argument. More... | |
class | BaseInfo< ConstDataList< T > > |
Let the BaseInfo for ConstDataList forward to that of the base DataList . More... | |
class | DVLConstDataVectorBucket |
DataBucket class for ConstDataVector . More... | |
struct | DataBucketTrait< ConstDataVector< DV >, U > |
Metafunction to find the proper DataBucket class for the first template argument. More... | |
class | BaseInfo< ConstDataVector< DV > > |
Let the BaseInfo for ConstDataVector forward to that of the base DataVector . More... | |
struct | DataBucketTrait< DataList< T >, U > |
Metafunction to find the proper DataBucket class for T . More... | |
struct | DataBucketTrait< DataVector< T >, U > |
Metafunction to find the proper DataBucket class for T . More... | |
class | ExcNoAuxStore |
Exception --- Aux data requested from object with no store. More... | |
class | ExcBadAuxVar |
Exception --- Attempt to retrieve nonexistent aux data item. More... | |
class | ExcConstAuxData |
Exception --- Non-const operation performed on const aux data. More... | |
class | ExcUntrackedSetStore |
Exception --- Attempt to set aux data store on container that doesn't track indices, or disable index tracking for a container with aux data. More... | |
class | ExcBadPrivateStore |
Exception --- Bad use of private store. More... | |
class | ExcAuxTypeMismatch |
Exception --- Type mismatch for aux variable. More... | |
class | ExcInsertionInBaseClass |
Exception --- Attempted to do OP on a BASE base class of COMPLETE; can only be done on the most-derived class. More... | |
class | ExcStoreLocked |
Exception --- Attempted to modify auxiliary data in a locked store. More... | |
class | ExcNonowningContainer |
Exception --- Attempted to insert a unique_ptr to a non-owning container. More... | |
class | ExcUnknownAuxItem |
Exception --- Unknown aux data item. More... | |
class | PackedContainer |
Container to hold aux data to be stored in a packed form. More... | |
struct | inner_type |
Metafunction to extract the innermost element type from a nested vector type. More... | |
struct | inner_type< std::vector< T > > |
class | PackedConverter |
Helper for packing/unpacking a PackedContainer to/from a stream. More... | |
class | PackedParameters |
Describe how the contents of a PackedContainer are to be saved. More... | |
class | AuxDataTraits |
Allow customizing how aux data types are treated. More... | |
class | AuxDataTraits< bool > |
Allow customizing how aux data types are treated. More... | |
class | AuxTypeVector |
Implementation of IAuxTypeVector for specific types. More... | |
class | AuxTypeVectorFactory |
Factory objects that creates vectors using AuxTypeVector . More... | |
class | DVLDataBucket |
A DataBucket specialized for DataVector/ More... | |
class | IsMostDerivedFlag |
Holder for the is-most-derived flag. More... | |
class | AuxElementData |
Internal data container. More... | |
class | AuxElementPrivateData |
Internal data container for private store. More... | |
class | AuxElementStandaloneData |
Internal data container for standalone store. More... | |
class | PackedContainerStreamer |
Streamer for reading/writing SG::PackedContainer instances. More... | |
class | AuxDataOption |
Hold information about an option setting request. More... | |
class | NoAuxStore |
Mark that there's no associated AuxStore class. More... | |
struct | AuxStore_traits_AuxDefault |
Default traits values for aux data case. More... | |
struct | AuxStore_traits_NoAuxDefault |
Default traits values for no-aux data case. More... | |
struct | AuxStore_traits1 |
struct | AuxStore_traits1< DOBJ, typename SG_STD_OR_BOOST::is_base_of< IAuxElement, typename DOBJ::base_value_type >::type > |
struct | AuxStore_traits |
Associate AuxStore classes with EDM container classes (default implementation). More... | |
struct | AuxStore_traits< DOBJ * > |
Associate AuxStore classes with EDM container classes. This specialization allows using pointer types directly as an argument. More... | |
class | AuxTypePlaceholder |
class | IAuxElement |
Flag that a class may have auxiliary data associated with it. More... | |
class | IAuxSetOption |
Abstract interface for setting a option on a aux data container. More... | |
class | IAuxStore |
Interface for non-const operations on an auxiliary store. More... | |
class | IAuxStoreHolder |
Interface for objects taking part in direct ROOT I/O. More... | |
class | IAuxStoreIO |
Interface providing I/O for a generic auxiliary store. More... | |
class | IAuxTypeVector |
Abstract interface for manipulating vectors of arbitrary types. More... | |
class | IAuxTypeVectorFactory |
Interface for factory objects that create vectors. More... | |
class | IConstAuxStore |
Interface for const operations on an auxiliary store. More... | |
struct | hash< T * > |
struct | Fnv_hash |
struct | Fnv_hash< 4 > |
struct | Fnv_hash< 8 > |
struct | hash< std::string > |
struct | hash< float > |
struct | hash< double > |
struct | hash< long double > |
class | hashtable |
class | unordered_map |
class | unordered_multimap |
class | unordered_set |
class | unordered_multiset |
Typedefs | |
typedef size_t | auxid_t |
Identifier for a particular aux data item. | |
typedef SG::unordered_set< size_t > | auxid_set_t |
A set of aux data identifiers. | |
Enumerations | |
enum | IndexTrackingPolicy { DEFAULT_TRACK_INDICES, ALWAYS_TRACK_INDICES, NEVER_TRACK_INDICES } |
enum | OwnershipPolicy { OWN_ELEMENTS, VIEW_ELEMENTS } |
describes the possible element ownership policies (see e.g. DataVector) More... | |
Functions | |
ATH_NORETURN (void throwExcNonowningContainer()) | |
Throw a SG::ExcNonowningContainer exception. | |
ATH_NORETURN (void throwExcUnknownAuxItem(const std::string &name, const std::string &clsname="", const std::type_info *typ=0)) | |
Throw a SG::ExcUnknownAuxItem exception. | |
std::string | normalizedTypeinfoName (const std::type_info &info) |
Convert a type_info to a normalized string representation (matching the names used in the root dictionary). | |
void | copyAuxStoreThinned (const SG::IConstAuxStore &orig, SG::IAuxStore ©, IThinningSvc *svc) |
Helper to copy an aux store while applying thinning. | |
template<class CONTAINER > | |
CONTAINER * | copyThinned (const CONTAINER &orig, IThinningSvc *svc) |
Helper to copy an object while applying thinning. | |
template<class CONTAINER > | |
CONTAINER * | copyThinned1 (const CONTAINER &orig, const void *dummy, IThinningSvc *svc) |
Helper to copy an object while applying thinning. | |
template<class CONTAINER > | |
CONTAINER * | copyThinned1 (const CONTAINER &orig, const DataVector< typename CONTAINER::base_value_type > *dummy, IThinningSvc *svc) |
Helper to copy an object while applying thinning. | |
template<class CONTAINER > | |
CONTAINER * | copyThinned1 (const CONTAINER &orig, const SG::IAuxStore *dummy, IThinningSvc *svc) |
Helper to copy an object while applying thinning. | |
template<class CONTAINER > | |
bool | getThinnedFlags (IThinningSvc *svc, const CONTAINER &container, size_t &nremaining, std::vector< unsigned char > &flags) |
Return vector of flags giving which container elements were thinned. | |
bool | getThinnedFlags1 (IThinningSvc *svc, const void *container, size_t size, size_t &nremaining, std::vector< unsigned char > &flags) |
Return vector of flags giving which container elements were thinned. | |
void | writePackedParameters (TBuffer &b, const SG::PackedParameters &parms) |
Write a set of packed parameters to a buffer. | |
SG::PackedParameters | readPackedParameters (TBuffer &b) |
Read a set of packed parameters from a buffer. | |
std::string | excFormatName (SG::auxid_t auxid) |
Helper: format an aux data item name. | |
std::string | excNoAuxStore_format (SG::auxid_t auxid) |
Helper: format exception error string. | |
std::string | excNoAuxStore_format (const char *op) |
Helper: format exception error string. | |
std::string | excBadAuxVar_format (SG::auxid_t auxid) |
Helper: format exception error string. | |
std::string | excConstAuxData_format (const std::string &op, SG::auxid_t auxid) |
Helper: format exception error string. | |
std::string | excAuxTypeMismatch_format (SG::auxid_t auxid, const std::type_info &new_type, const std::type_info &old_type) |
Helper: format exception error string. | |
std::string | excInsertionInBaseClass_format (const char *op, const std::type_info &base_type, const std::type_info &complete_type) |
Helper: format exception error string. | |
std::string | excStoreLocked_format (SG::auxid_t auxid) |
Helper: format exception error string. | |
std::string | excStoreLocked_format (const char *op) |
Helper: format exception error string. | |
void | throwExcNonowningContainer () |
Throw a SG::ExcNonowningContainer exception. | |
std::string | excUnknownAuxItem_format (const std::string &name, const std::string &clsname, const std::type_info *typ) |
Helper: format exception error string. | |
void | throwExcUnknownAuxItem (const std::string &name, const std::string &clsname, const std::type_info *typ) |
Throw a SG::ExcNonowningContainer exception. | |
tr1_hashtable_define_trivial_hash (bool) | |
tr1_hashtable_define_trivial_hash (char) | |
tr1_hashtable_define_trivial_hash (signed char) | |
tr1_hashtable_define_trivial_hash (unsigned char) | |
tr1_hashtable_define_trivial_hash (wchar_t) | |
tr1_hashtable_define_trivial_hash (short) | |
tr1_hashtable_define_trivial_hash (int) | |
tr1_hashtable_define_trivial_hash (long) | |
template<class Key , class T , class Hash , class Pred , class Alloc , bool cache_hash_code> | |
void | swap (unordered_map< Key, T, Hash, Pred, Alloc, cache_hash_code > &x, unordered_map< Key, T, Hash, Pred, Alloc, cache_hash_code > &y) |
template<class Key , class T , class Hash , class Pred , class Alloc , bool cache_hash_code> | |
void | swap (unordered_multimap< Key, T, Hash, Pred, Alloc, cache_hash_code > &x, unordered_multimap< Key, T, Hash, Pred, Alloc, cache_hash_code > &y) |
template<class Value , class Hash , class Pred , class Alloc , bool cache_hash_code> | |
void | swap (unordered_set< Value, Hash, Pred, Alloc, cache_hash_code > &x, unordered_set< Value, Hash, Pred, Alloc, cache_hash_code > &y) |
template<class Value , class Hash , class Pred , class Alloc , bool cache_hash_code> | |
void | swap (unordered_multiset< Value, Hash, Pred, Alloc, cache_hash_code > &x, unordered_multiset< Value, Hash, Pred, Alloc, cache_hash_code > &y) |
Constructor from a payload object.
data | Object to hold in the bucket. |
Namespace used by StoreGate for some of its internal structures/classes
enum SG::OwnershipPolicy |
describes the possible element ownership policies (see e.g. DataVector)
SG::ATH_NORETURN | ( | void | throwExcUnknownAuxItemconst std::string &name, const std::string &clsname="", const std::type_info *typ=0 | ) |
Throw a SG::ExcUnknownAuxItem exception.
name | Name of the aux data item. | |
clsname | Class name of the aux data item, or an empty string. | |
typ | Type of the item, if provided. |
void SG::copyAuxStoreThinned | ( | const SG::IConstAuxStore & | orig, | |
SG::IAuxStore & | copy, | |||
IThinningSvc * | svc | |||
) |
Helper to copy an aux store while applying thinning.
orig | Source aux store from which to coy. | |
copy | Destination aux store to which to copy. | |
svc | The thinning service. |
orig
and copy
are both auxiliary store objects. The data from orig
will be copied to copy
, with individual elements removed according to thinning recorded for orig
in svc
.
CONTAINER * SG::copyThinned | ( | const CONTAINER & | orig, | |
IThinningSvc * | svc | |||
) | [inline] |
Helper to copy an object while applying thinning.
orig | The object to copy. | |
svc | The thinning service. |
Returns a new copy of orig
with elements removed according to the thinning defined in svc
. Ownership of the new object is passed back to the caller.
The code here handles DataVector
and IAuxStore
objects. Support for additional object types may be added by adding overloads for copyThinned1
.
orig | The object to copy. | |
svc | The thinning service. |
Returns a new copy of orig
with elements removed according to the thinning defined in svc
. Ownership of the new object is passed back to the caller.
CONTAINER * SG::copyThinned1 | ( | const CONTAINER & | orig, | |
const SG::IAuxStore * | dummy, | |||
IThinningSvc * | svc | |||
) | [inline] |
Helper to copy an object while applying thinning.
orig | The object to copy. | |
dummy | Dummy argument for overload resolution. | |
svc | The thinning service. |
This overload handles IAuxStore
types. It returns a new copy of the store, with any thinned elements removed.
CONTAINER * SG::copyThinned1 | ( | const CONTAINER & | orig, | |
const DataVector< typename CONTAINER::base_value_type > * | dummy, | |||
IThinningSvc * | svc | |||
) | [inline] |
Helper to copy an object while applying thinning.
orig | The object to copy. | |
dummy | Dummy argument for overload resolution. | |
svc | The thinning service. |
This overload handles DataVector
types. It returns a view container copy of orig
, from which any thinned elements are removed.
CONTAINER * SG::copyThinned1 | ( | const CONTAINER & | orig, | |
const void * | dummy, | |||
IThinningSvc * | svc | |||
) | [inline] |
Helper to copy an object while applying thinning.
orig | The object to copy. | |
dummy | Dummy argument for overload resolution. | |
svc | The thinning service. |
This is the generic version of copyThinned
, which matches types for which there is not a more specific overload. It simply makes a copy of orig
using the copy constructor.
bool SG::getThinnedFlags | ( | IThinningSvc * | svc, | |
const CONTAINER & | container, | |||
size_t & | nremaining, | |||
std::vector< unsigned char > & | flags | |||
) | [inline] |
Return vector of flags giving which container elements were thinned.
svc | The thinning service (or 0). | |
container | The container for which to find thinning information. | |
nremaining[out] | The number of elements in the container not thinned. | |
flags[out] | Array telling which elements were thinned. |
If no thinning is done on CONTAINER
, then return false with nremaining
equal to `container.size()`. flags
may be empty in this case.
Otherwise, the container was thinned, and the function returns true. The size of flags
will equal the container size; each element of flags
is non-zero if the corresponding container element has been thinned. nremaining
will be set to the count of elements that have _not_ been thinned.
bool SG::getThinnedFlags1 | ( | IThinningSvc * | svc, | |
const void * | container, | |||
size_t | size, | |||
size_t & | nremaining, | |||
std::vector< unsigned char > & | flags | |||
) |
Return vector of flags giving which container elements were thinned.
svc | The thinning service (or 0). | |
container | The container for which to find thinning information. | |
size | Size of the container. | |
nremaining[out] | The number of elements in the container not thinned. | |
flags[out] | Array telling which elements were thinned. |
This is and out-of-line helper for getThinnedFlags
.
std::string SG::normalizedTypeinfoName | ( | const std::type_info & | info | ) |
Convert a type_info
to a normalized string representation (matching the names used in the root dictionary).
info | The type to convert. |
The function `AthContainer_detailtypeinfoName` may be used to convert a C++ `type_info` to a string representing the name of the class; this handles platform-dependent details such as performing demangling.
However, the name you get as a result of this does not necessarily match the name by which the class is known in the ROOT dictionary. In particular, defaulted template arguments for STL containers and DataVector
are suppressed in the dictionary. So, for example, for a vector class typeinfoName
may produce `stdvector<int, std::allocator<T> >`, while in the dictionary it is known as `stdvector<int>`. Using normalizedTypeinfoName
instead will transform the names to match what's in the dictionary. This function will also cache the typeinfo -> string conversions.
SG::PackedParameters SG::readPackedParameters | ( | TBuffer & | b | ) | [inline] |
Read a set of packed parameters from a buffer.
b | Buffer from which to write. |
void SG::throwExcUnknownAuxItem | ( | const std::string & | name, | |
const std::string & | clsname, | |||
const std::type_info * | typ | |||
) |
Throw a SG::ExcNonowningContainer exception.
name | Name of the aux data item. | |
clsname | Class name of the aux data item, or an empty string. | |
typ | Type of the item, if provided. |
void SG::writePackedParameters | ( | TBuffer & | b, | |
const SG::PackedParameters & | parms | |||
) | [inline] |
Write a set of packed parameters to a buffer.
b | Buffer to which to write. | |
param | Parameters to write. |