![]() |
ATLAS Offline Software
|
@Brief Implementation class for AuxTypeRegistry.
More...
Classes | |
| struct | typeinfo_t |
| Hold information about one aux data item. More... | |
Public Types | |
| using | id_map_t = CxxUtils::ConcurrentStrMap<SG::auxid_t, CxxUtils::SimpleUpdater> |
| Map from name -> auxid. | |
| using | ti_map_t = CxxUtils::ConcurrentStrMap<const IAuxTypeVectorFactory*, CxxUtils::SimpleUpdater> |
| Map from type_info name + allocator ti name -> IAuxTypeVectorFactory. | |
| typedef std::unordered_map< std::string, std::string > | renameMap_t |
Save the information provided by setInputRenameMap. | |
| using | allocMap_t = CxxUtils::ConcurrentStrMap<const std::type_info*, CxxUtils::SimpleUpdater> |
| using | Flags = SG::AuxVarFlags |
| Additional flags to qualify an auxiliary variable. | |
Public Member Functions | |
| AuxTypeRegistryImpl () | |
| Constructor. | |
| ~AuxTypeRegistryImpl () | |
| Destructor. | |
| SG::auxid_t | findAuxID (const std::string &name, const std::string &clsname, const Flags flags, const SG::auxid_t linkedVariable, const std::type_info &ti, const std::type_info *ti_alloc, const std::string *alloc_name, std::unique_ptr< IAuxTypeVectorFactory >(AuxTypeRegistry::*makeFactory)() const) |
Look up a name -> auxid_t mapping. | |
| const IAuxTypeVectorFactory * | addFactory (lock_t &lock, const std::type_info &ti, const std::type_info &ti_alloc, const IAuxTypeVectorFactory *factory) |
| Add a new type -> factory mapping. | |
| const IAuxTypeVectorFactory * | addFactory (lock_t &, const std::type_info &ti, const std::string &ti_alloc_name, std::unique_ptr< const IAuxTypeVectorFactory > factory) |
| Add a new type -> factory mapping. | |
| const IAuxTypeVectorFactory * | getFactory (lock_t &lock, const std::type_info &ti, const std::type_info &ti_alloc) |
| Return the vector factory for a given vector element type. | |
| const IAuxTypeVectorFactory * | addFactory (const std::type_info &ti, const std::type_info &ti_alloc, std::unique_ptr< const IAuxTypeVectorFactory > factory) |
| Add a new type -> factory mapping. | |
| const IAuxTypeVectorFactory * | addFactory (const std::type_info &ti, const std::string &ti_alloc_name, std::unique_ptr< const IAuxTypeVectorFactory > factory) |
| Add a new type -> factory mapping. | |
| const IAuxTypeVectorFactory * | getFactory (const std::type_info &ti, const std::type_info &ti_alloc) |
| Return the vector factory for a given vector element type. | |
| const IAuxTypeVectorFactory * | getFactory (const std::type_info &ti, const std::string &alloc_name) |
| Return the vector factory for a given vector element type. | |
| const IAuxTypeVectorFactory * | getFactory (SG::auxid_t auxid) const |
| Return the vector factory for a given auxid. | |
| size_t | numVariables () const |
| Return the total number of registered auxiliary variable. | |
| template<class T, class ALLOC = AuxAllocator_t<T>> | |
| SG::auxid_t | getAuxID (const std::string &name, const std::string &clsname="", const Flags flags=Flags::None, const SG::auxid_t linkedVariable=SG::null_auxid) |
Look up a name -> auxid_t mapping. | |
| SG::auxid_t | getAuxID (const std::type_info &ti, const std::string &name, const std::string &clsname="", const Flags flags=Flags::None, const SG::auxid_t linkedVariable=SG::null_auxid) |
Look up a name -> auxid_t mapping. | |
| SG::auxid_t | getAuxID (const std::type_info &ti_alloc, const std::type_info &ti, const std::string &name, const std::string &clsname="", const Flags flags=Flags::None, const SG::auxid_t linkedVariable=SG::null_auxid, std::unique_ptr< IAuxTypeVectorFactory >(AuxTypeRegistry::*makeFactory)() const =&AuxTypeRegistry::makeFactoryNull) |
Look up a name -> auxid_t mapping, specifying allocator. | |
| SG::auxid_t | getAuxID (const std::string &alloc_type, const std::type_info &ti, const std::string &name, const std::string &clsname="", const Flags flags=Flags::None, const SG::auxid_t linkedVariable=SG::null_auxid) |
Look up a name -> auxid_t mapping, specifying allocator. | |
| SG::auxid_t | findAuxID (const std::string &name, const std::string &clsname="") const |
Look up a name -> auxid_t mapping. | |
| template<class T, class ALLOC = AuxAllocator_t<T>> | |
| void | checkAuxID (const SG::auxid_t auxid, const Flags flags=Flags::None) |
| Verify type for an aux variable. | |
| void | checkAuxID (const SG::auxid_t auxid, const std::type_info &ti, const std::type_info &ti_alloc, const Flags flags) |
| Verify type for an aux variable. | |
| std::unique_ptr< IAuxTypeVector > | makeVector (SG::auxid_t auxid, size_t size, size_t capacity) const |
| Construct a new vector to hold an aux item. | |
| std::unique_ptr< IAuxTypeVector > | makeVectorFromData (SG::auxid_t auxid, void *data, IAuxTypeVector *linkedVector, bool isPacked, bool ownFlag) const |
Construct an IAuxTypeVector object from a vector. | |
| std::string | getName (SG::auxid_t auxid) const |
| Return the name of an aux data item. | |
| std::string | getClassName (SG::auxid_t auxid) const |
| Return the class name associated with an aux data item (may be blank). | |
| const std::type_info * | getType (SG::auxid_t auxid) const |
| Return the type of an aux data item. | |
| std::string | getTypeName (SG::auxid_t auxid) const |
| Return the type name of an aux data item. | |
| const std::type_info * | getVecType (SG::auxid_t auxid) const |
| Return the type of the STL vector used to hold an aux data item. | |
| std::string | getVecTypeName (SG::auxid_t auxid) const |
| Return the type of the STL vector used to hold an aux data item. | |
| const std::type_info * | getAllocType (SG::auxid_t auxid) const |
| Return the type of the vector allocator. | |
| size_t | getEltSize (SG::auxid_t auxid) const |
| Return size of an element in the STL vector. | |
| Flags | getFlags (SG::auxid_t auxid) const |
| Return flags associated with an auxiliary variable. | |
| bool | isLinked (SG::auxid_t auxid) const |
| Test whether this is a linked variable. | |
| SG::auxid_t | linkedVariable (SG::auxid_t auxid) const |
| Return the auxid if the linked variable, if there is one. | |
| void | copy (SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n) const |
| Copy elements between vectors. | |
| void | copy (SG::auxid_t auxid, AuxVectorData &&dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n) const |
| Copy elements between vectors. | |
| void | copyForOutput (SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, const AuxVectorData &src, size_t src_index, size_t n) const |
| Copy elements between vectors. | |
| void | swap (SG::auxid_t auxid, AuxVectorData &a, size_t aindex, AuxVectorData &b, size_t bindex, size_t n) const |
| Swap elements between vectors. | |
| void | clear (SG::auxid_t auxid, AuxVectorData &dst, size_t dst_index, size_t n) const |
| Clear a range of elements within a vector. | |
| void | setInputRenameMap (const Athena::InputRenameMap_t *map, const IStringPool &pool) |
| Declare input renaming requests. | |
| const std::string & | inputRename (const std::string &key, const std::string &name) const |
| Check for an input renaming of an auxiliary variable. | |
Static Public Member Functions | |
| static bool | checkName (std::string_view s) noexcept |
| Check for valid variable name. | |
| static AuxTypeRegistry & | instance () |
| Return the singleton registry instance. | |
| static bool | isLinkedName (const std::string &name) |
| Test if a variable name corresponds to a linked variable. | |
| static std::string | linkedName (const std::string &name) |
| Given a variable name, return the name of the corresponding linked variable. | |
| static bool | classNameHasLink (const std::string &className) |
| Test to see if a class name corresponds to a class with a linked variable. | |
Public Attributes | |
| AthContainers_detail::concurrent_vector< typeinfo_t > | m_types |
Table of aux data items, indexed by auxid. | |
| id_map_t | m_auxids |
| ti_map_t | m_factories |
| std::vector< const IAuxTypeVectorFactory * > | m_oldFactories |
| Hold additional factory instances we need to delete. | |
| renameMap_t | m_renameMap |
| allocMap_t | m_allocMap |
| mutex_t | m_mutex |
| Mutex controlling access to the registry. | |
Private Types | |
| typedef AthContainers_detail::mutex | mutex_t |
| typedef AthContainers_detail::lock_guard< mutex_t > | lock_t |
Private Member Functions | |
| template<class T, class ALLOC = AuxAllocator_t<T>> | |
| std::unique_ptr< IAuxTypeVectorFactory > | makeFactory () const |
Create an AuxTypeVectorFactory instance. | |
| std::unique_ptr< IAuxTypeVectorFactory > | makeFactoryNull () const |
makeFactory implementation that always returns nullptr. | |
Static Private Member Functions | |
| static std::string | makeKey (const std::string &name, const std::string &clsname) |
| Return the key used to look up an entry in m_auxids. | |
@Brief Implementation class for AuxTypeRegistry.
We split this off in order to reduce compile-time dependencies on tbb and ConcurrentStrMap. Since this can get accessed frequently, but is a singleton, we don't use the more commom pimpl idiom. Instead, we put the implementation stuff in a derived class. The function that creates the singleton actually makes an instance of the derived class, and we static_cast to the derived class where needed. Since instances of this cannot be created anywhere else, this is safe.
Definition at line 44 of file AuxTypeRegistry.cxx.
| using SG::AuxTypeRegistryImpl::allocMap_t = CxxUtils::ConcurrentStrMap<const std::type_info*, CxxUtils::SimpleUpdater> |
Definition at line 223 of file AuxTypeRegistry.cxx.
|
inherited |
Additional flags to qualify an auxiliary variable.
Definition at line 65 of file AuxTypeRegistry.h.
| using SG::AuxTypeRegistryImpl::id_map_t = CxxUtils::ConcurrentStrMap<SG::auxid_t, CxxUtils::SimpleUpdater> |
Map from name -> auxid.
Definition at line 205 of file AuxTypeRegistry.cxx.
|
privateinherited |
Definition at line 541 of file AuxTypeRegistry.h.
|
privateinherited |
Definition at line 540 of file AuxTypeRegistry.h.
| typedef std::unordered_map<std::string, std::string> SG::AuxTypeRegistryImpl::renameMap_t |
Save the information provided by setInputRenameMap.
Each entry is of the form KEY.DECOR -> DECOR_RENAMED
Definition at line 217 of file AuxTypeRegistry.cxx.
| using SG::AuxTypeRegistryImpl::ti_map_t = CxxUtils::ConcurrentStrMap<const IAuxTypeVectorFactory*, CxxUtils::SimpleUpdater> |
Map from type_info name + allocator ti name -> IAuxTypeVectorFactory.
Definition at line 209 of file AuxTypeRegistry.cxx.
| SG::AuxTypeRegistryImpl::AuxTypeRegistryImpl | ( | ) |
Constructor.
Populates the type -> factory mappings for standard C++ types.
Definition at line 241 of file AuxTypeRegistry.cxx.
| SG::AuxTypeRegistryImpl::~AuxTypeRegistryImpl | ( | ) |
Destructor.
Delete factory instances.
Definition at line 294 of file AuxTypeRegistry.cxx.
| const IAuxTypeVectorFactory * SG::AuxTypeRegistry::addFactory | ( | const std::type_info & | ti, |
| const std::string & | ti_alloc_name, | ||
| std::unique_ptr< const IAuxTypeVectorFactory > | factory ) |
Add a new type -> factory mapping.
| ti | Type of the vector element. |
| ti_alloc_name | The name of the vector allocator type. |
| factory | The factory instance. |
This records that factory can be used to construct vectors with an element type of ti. If a mapping already exists, the new factory is discarded, unless the old one is a dynamic factory and the new one isn't, in which case the new replaces the old one.
Definition at line 484 of file AuxTypeRegistry.cxx.
| const IAuxTypeVectorFactory * SG::AuxTypeRegistry::addFactory | ( | const std::type_info & | ti, |
| const std::type_info & | ti_alloc, | ||
| std::unique_ptr< const IAuxTypeVectorFactory > | factory ) |
Add a new type -> factory mapping.
| ti | Type of the vector element. |
| ti_alloc | The type of the vector allocator |
| factory | The factory instance. |
This records that factory can be used to construct vectors with an element type of ti. If a mapping already exists, the new factory is discarded, unless the old one is a dynamic factory and the new one isn't, in which case the new replaces the old one.
Definition at line 467 of file AuxTypeRegistry.cxx.
| const IAuxTypeVectorFactory * SG::AuxTypeRegistryImpl::addFactory | ( | lock_t & | , |
| const std::type_info & | ti, | ||
| const std::string & | ti_alloc_name, | ||
| std::unique_ptr< const IAuxTypeVectorFactory > | factory ) |
Add a new type -> factory mapping.
(external locking)
| lock | The registry lock. |
| ti | Type of the vector element. |
| ti_alloc_name | The name of the vector allocator type. |
| factory | The factory instance. |
This records that factory can be used to construct vectors with an element type of ti. If a mapping already exists, the new factory is discarded, unless the old one is a dynamic factory and the new one isn't, in which case the new replaces the old one.
Definition at line 532 of file AuxTypeRegistry.cxx.
| const IAuxTypeVectorFactory * SG::AuxTypeRegistryImpl::addFactory | ( | lock_t & | lock, |
| const std::type_info & | ti, | ||
| const std::type_info & | ti_alloc, | ||
| const IAuxTypeVectorFactory * | factory ) |
Add a new type -> factory mapping.
(external locking)
| lock | The registry lock. |
| ti | Type of the vector element. |
| ti_alloc | The type of the vector allocator |
| factory | The factory instance. Ownership is not taken. |
This records that factory can be used to construct vectors with an element type of ti. If a mapping already exists, the new factory is discarded, unless the old one is a dynamic factory and the new one isn't, in which case the new replaces the old one.
Definition at line 489 of file AuxTypeRegistry.cxx.
|
inherited |
Verify type for an aux variable.
| auxid | The ID of the variable to check. |
| flags | Optional flags qualifying the type. See above. |
If the type of auxid is not compatible with the supplied types T / ALLOC, then throw a SG::ExcAuxTypeMismatch exception. Also may throw SG::ExcFlagMismatch.
|
inherited |
Verify type for an aux variable.
| auxid | The ID of the variable to check. |
| ti | Type of the aux data item. |
| ti_alloc | Type of the vector allocator. |
| flags | Optional flags qualifying the type. See above. |
If the type of auxid is not compatible with the supplied types ti / ti_alloc, then throw a SG::ExcAuxTypeMismatch exception. Also may throw SG::ExcFlagMismatch.
Definition at line 787 of file AuxTypeRegistry.cxx.
|
staticnoexcept |
Check for valid variable name.
| name | Name to check. |
Require that NAME be not empty, contains only alphanumeric characters plus underscore, and first character is not a digit.
Definition at line 569 of file AuxTypeRegistry.cxx.
|
staticinherited |
Test to see if a class name corresponds to a class with a linked variable.
Definition at line 1313 of file AuxTypeRegistry.cxx.
|
inherited |
Clear a range of elements within a vector.
| auxid | The aux data item being operated on. |
| dst | Container holding the element |
| dst_index | Index of the first element in the vector. |
| n | Number of elements to clear. |
Definition at line 1092 of file AuxTypeRegistry.cxx.
|
inherited |
Copy elements between vectors.
| auxid | The aux data item being operated on. |
| dst | Container for the destination vector. Declared as a rvalue reference to allow passing a temporary here (such as from AuxVectorInterface). |
| dst_index | Index of the first destination element in the vector. |
| src | Container for the source vector. |
| src_index | Index of the first source element in the vector. |
| n | Number of elements to copy. |
dst and @ src can be either the same or different.
|
inherited |
Copy elements between vectors.
| auxid | The aux data item being operated on. |
| dst | Container for the destination vector. |
| dst_index | Index of the first destination element in the vector. |
| src | Container for the source vector. |
| src_index | Index of the first source element in the vector. |
| n | Number of elements to copy. |
dst and @ src can be either the same or different.
Definition at line 1027 of file AuxTypeRegistry.cxx.
|
inherited |
Copy elements between vectors.
Apply any transformations needed for output.
| auxid | The aux data item being operated on. |
| dst | Container for the destination vector. |
| dst_index | Index of the first destination element in the vector. |
| src | Container for the source vector. |
| src_index | Index of the first source element in the vector. |
| n | Number of elements to copy. |
dst and @ src can be either the same or different.
Definition at line 1050 of file AuxTypeRegistry.cxx.
|
inherited |
Look up a name -> auxid_t mapping.
| name | The name of the aux data item. |
| clsname | The name of its associated class. May be blank. |
Will only find an existing auxid_t; unlike getAuxID, this won't make a new one. If the item isn't found, this returns null_auxid.
Definition at line 757 of file AuxTypeRegistry.cxx.
| SG::auxid_t SG::AuxTypeRegistryImpl::findAuxID | ( | const std::string & | name, |
| const std::string & | clsname, | ||
| const Flags | flags, | ||
| const SG::auxid_t | linkedVariable, | ||
| const std::type_info & | ti, | ||
| const std::type_info * | ti_alloc, | ||
| const std::string * | alloc_name, | ||
| std::unique_ptr< IAuxTypeVectorFactory >(AuxTypeRegistry::* | makeFactory )() const ) |
Look up a name -> auxid_t mapping.
| name | The name of the aux data item. |
| clsname | The name of its associated class. May be blank. |
| flags | Optional flags qualifying the type. See above. |
| linkedVariable | auxid of a linked variable, or null_auxid. |
| ti | The type of this aux data item. |
| ti_alloc | The type of the vector allocator. |
| alloc_name | The name of the vector allocator. Used only if ti_alloc is null. |
| makeFactory | Function to create a factory for this type, if needed. May return 0 if the type is unknown. |
If the aux data item already exists, check to see if the provided type matches the type that was used before. If so, then set return the auxid; otherwise, throw SG::ExcAuxTypeMismatch.
If the aux data item does not already exist, then see if we have a factory registered for this type_info. If not, then call makeFactory and use what it returns. If that returns 0, then fail and return null_auxid. Otherwise, assign a new auxid and return it.
Definition at line 332 of file AuxTypeRegistry.cxx.
|
inherited |
Return the type of the vector allocator.
| auxid | The desired aux data item. |
Definition at line 965 of file AuxTypeRegistry.cxx.
|
inherited |
Look up a name -> auxid_t mapping, specifying allocator.
| alloc_name | Name of the vector allocator type. |
| ti | Type of the aux data item. |
| name | The name of the aux data item. |
| clsname | The name of its associated class. May be blank. |
| flags | Optional flags qualifying the type. See above. |
| linkedVariable | auxid of a linked variable, or null_auxid. |
The type of the item is given by ti. Return null_auxid if we don't know how to make vectors of ti. (Use addFactory to register additional types.) If an item with the same name was previously requested with a different type, then throw SG::ExcAuxTypeMismatch.
Definition at line 733 of file AuxTypeRegistry.cxx.
|
inherited |
Look up a name -> auxid_t mapping.
| name | The name of the aux data item. |
| clsname | The name of its associated class. May be blank. |
| flags | Optional flags qualifying the type. See above. |
| linkedVariable | auxid of a linked variable, or null_auxid. |
The type of the item is given by the template parameter T, and the ALLOC gives the type of the vector allocator. If an item with the same name was previously requested with a different type, then throw SG::ExcAuxTypeMismatch.
|
inherited |
Look up a name -> auxid_t mapping.
| ti | Type of the aux data item. |
| name | The name of the aux data item. |
| clsname | The name of its associated class. May be blank. |
| flags | Optional flags qualifying the type. See above. |
| linkedVariable | auxid of a linked variable, or null_auxid. |
The type of the item is given by ti. Return null_auxid if we don't know how to make vectors of ti. (Use addFactory to register additional types.) If an item with the same name was previously requested with a different type, then throw SG::ExcAuxTypeMismatch.
Definition at line 673 of file AuxTypeRegistry.cxx.
|
inherited |
Look up a name -> auxid_t mapping, specifying allocator.
| ti_alloc | Type of the vector allocator. |
| ti | Type of the aux data item. |
| name | The name of the aux data item. |
| clsname | The name of its associated class. May be blank. |
| flags | Optional flags qualifying the type. See above. |
| linkedVariable | auxid of a linked variable, or null_auxid. |
| makeFactory | Function to create a factory for this type, if needed. May return 0 if the type is unknown. |
The type of the item is given by ti. Return null_auxid if we don't know how to make vectors of ti. (Use addFactory to register additional types.) If an item with the same name was previously requested with a different type, then throw SG::ExcAuxTypeMismatch.
Definition at line 703 of file AuxTypeRegistry.cxx.
|
inherited |
Return the class name associated with an aux data item (may be blank).
| auxid | The desired aux data item. |
Definition at line 896 of file AuxTypeRegistry.cxx.
|
inherited |
Return size of an element in the STL vector.
| auxid | The desired aux data item. |
Definition at line 978 of file AuxTypeRegistry.cxx.
| const IAuxTypeVectorFactory * SG::AuxTypeRegistry::getFactory | ( | const std::type_info & | ti, |
| const std::string & | alloc_name ) |
Return the vector factory for a given vector element type.
| ti | The type of the vector element. |
| alloc_name | The name of the vector allocator type. |
Returns nullptr if the type is not known. (Use addFactory to add new mappings.)
Definition at line 441 of file AuxTypeRegistry.cxx.
| const IAuxTypeVectorFactory * SG::AuxTypeRegistry::getFactory | ( | const std::type_info & | ti, |
| const std::type_info & | ti_alloc ) |
Return the vector factory for a given vector element type.
| ti | The type of the vector element. |
| ti_alloc | The type of the vector allocator. |
Returns nullptr if the type is not known. (Use addFactory to add new mappings.)
| ti | The type of the vector element. |
| ti_alloc | The type of the vector allocator |
Returns nullptr if the type is not known. (Use addFactory to add new mappings.)
Definition at line 429 of file AuxTypeRegistry.cxx.
| const IAuxTypeVectorFactory * SG::AuxTypeRegistryImpl::getFactory | ( | lock_t & | lock, |
| const std::type_info & | ti, | ||
| const std::type_info & | ti_alloc ) |
Return the vector factory for a given vector element type.
(External locking.)
| lock | The registry lock. |
| ti | The type of the vector element. |
| ti_alloc | The type of the vector allocator |
Returns nullptr if the type is not known. (Use addFactory to add new mappings.)
Definition at line 591 of file AuxTypeRegistry.cxx.
| const IAuxTypeVectorFactory * SG::AuxTypeRegistry::getFactory | ( | SG::auxid_t | auxid | ) | const |
Return the vector factory for a given auxid.
| auxid | The desired aux data item. |
Returns nullptr if the type is not known. (Use addFactory to add new mappings.)
Definition at line 452 of file AuxTypeRegistry.cxx.
|
inherited |
Return flags associated with an auxiliary variable.
| auxid | The desired aux data item. |
Definition at line 991 of file AuxTypeRegistry.cxx.
|
inherited |
Return the name of an aux data item.
| auxid | The desired aux data item. |
Definition at line 882 of file AuxTypeRegistry.cxx.
|
inherited |
Return the type of an aux data item.
| auxid | The desired aux data item. |
Definition at line 909 of file AuxTypeRegistry.cxx.
|
inherited |
Return the type name of an aux data item.
| auxid | The desired aux data item. |
Returns an empty string if the type is not known.
Definition at line 924 of file AuxTypeRegistry.cxx.
|
inherited |
Return the type of the STL vector used to hold an aux data item.
| auxid | The desired aux data item. |
Definition at line 937 of file AuxTypeRegistry.cxx.
|
inherited |
Return the type of the STL vector used to hold an aux data item.
Return the type name of the STL vector used to hold an aux data item.
| auxid | The desired aux data item. |
Returns an empty string if the type is not known.
Definition at line 952 of file AuxTypeRegistry.cxx.
|
inherited |
Check for an input renaming of an auxiliary variable.
key The SG key of the object to which the variable is attached.
name The name of the variable on the input file.
name, but may be different if there was a renaming request. Definition at line 1274 of file AuxTypeRegistry.cxx.
|
staticinherited |
Return the singleton registry instance.
Definition at line 640 of file AuxTypeRegistry.cxx.
|
inherited |
Test whether this is a linked variable.
| auxid | The aux data item to test. |
|
staticinherited |
Test if a variable name corresponds to a linked variable.
Definition at line 1293 of file AuxTypeRegistry.cxx.
|
staticinherited |
Given a variable name, return the name of the corresponding linked variable.
Definition at line 1303 of file AuxTypeRegistry.cxx.
|
inherited |
Return the auxid if the linked variable, if there is one.
| auxid | The aux data item to test. |
Returns null_auxid if auxid is invalid or it doesn't have a linked variable.
Definition at line 1007 of file AuxTypeRegistry.cxx.
|
privateinherited |
Create an AuxTypeVectorFactory instance.
This is passed to findAuxID when we're looking up an item for which we know the type at compile-time.
The ALLOC template parameter is the allocator to use for the resulting vector.
|
privateinherited |
makeFactory implementation that always returns nullptr.
This is passed to findAuxID when we're looking up an item for which we do not know the type at compile-time.
|
staticprivateinherited |
Return the key used to look up an entry in m_auxids.
| name | The name of the aux data item. |
| clsname | The name of its associated class. May be blank. |
Definition at line 864 of file AuxTypeRegistry.cxx.
|
inherited |
Construct a new vector to hold an aux item.
| auxid | The desired aux data item. |
| size | Initial size of the new vector. |
| capacity | Initial capacity of the new vector. |
Returns a newly-allocated object.
| auxid | The desired aux data item. |
| size | Initial size of the new vector. |
| capacity | Initial capacity of the new vector. |
Definition at line 818 of file AuxTypeRegistry.cxx.
|
inherited |
Construct an IAuxTypeVector object from a vector.
| data | The vector object. |
| linkedVector | The interface for another variable linked to this one, or nullptr if there isn't one. (We do not take ownership.) |
| isPacked | If true, data is a PackedContainer. |
| ownFlag | If true, the newly-created IAuxTypeVector object will take ownership of data. |
If the element type is T, then data should be a pointer to a std::vector<T> object, which was obtained with new. But if isPacked is true, then data should instead point at an object of type SG::PackedContainer<T>.
Returns a newly-allocated object.
Definition at line 846 of file AuxTypeRegistry.cxx.
|
inherited |
Return the total number of registered auxiliary variable.
(This will be one more than the current largest auxid.)
Definition at line 652 of file AuxTypeRegistry.cxx.
|
inherited |
Declare input renaming requests.
| map | Map of (hashed) sgkey -> sgkey for renaming requests. |
| pool | String pool in which the hashed keys are defined. |
This is called by AddressRemappingSvc when there is a request to rename input objects. It saves any requests involving renaming of auxiliary variables and makes that information available via inputRename.
Definition at line 1238 of file AuxTypeRegistry.cxx.
|
inherited |
Swap elements between vectors.
| auxid | The aux data item being operated on. |
| a | Container for the first vector. |
| aindex | Index of the first element in the first vector. |
| b | Container for the second vector. |
| bindex | Index of the first element in the second vector. |
| n | Number of elements to swap. |
a and @ b can be either the same or different. However, the ranges should not overlap.
Definition at line 1074 of file AuxTypeRegistry.cxx.
| allocMap_t SG::AuxTypeRegistryImpl::m_allocMap |
Definition at line 224 of file AuxTypeRegistry.cxx.
| id_map_t SG::AuxTypeRegistryImpl::m_auxids |
Definition at line 206 of file AuxTypeRegistry.cxx.
| ti_map_t SG::AuxTypeRegistryImpl::m_factories |
Definition at line 210 of file AuxTypeRegistry.cxx.
|
mutable |
Mutex controlling access to the registry.
Definition at line 232 of file AuxTypeRegistry.cxx.
| std::vector<const IAuxTypeVectorFactory*> SG::AuxTypeRegistryImpl::m_oldFactories |
Hold additional factory instances we need to delete.
Definition at line 213 of file AuxTypeRegistry.cxx.
| renameMap_t SG::AuxTypeRegistryImpl::m_renameMap |
Definition at line 218 of file AuxTypeRegistry.cxx.
| AthContainers_detail::concurrent_vector<typeinfo_t> SG::AuxTypeRegistryImpl::m_types |
Table of aux data items, indexed by auxid.
Definition at line 202 of file AuxTypeRegistry.cxx.