![]() |
ATLAS Offline Software
|
#include <TransientAddress.h>
Public Types | |
typedef std::vector< CLID > | TransientClidSet |
Strictly a set, but there shouldn't be more than a handful of entries, so store it as a sorted vector instead. More... | |
typedef std::set< std::string > | TransientAliasSet |
typedef IStringPool::sgkey_t | sgkey_t |
Default Constructor. More... | |
Public Member Functions | |
TransientAddress () | |
Construct from clid and string key: More... | |
TransientAddress (CLID id, const std::string &key) | |
Construct from clid, key and IOpaqueAddress. More... | |
TransientAddress (CLID id, const std::string &key, IOpaqueAddress *addr, bool clearAddress=true) | |
Constructor giving full list of symlinked IDs — used from DataHeaderElement::getAddress(). More... | |
TransientAddress (CLID id, const std::string &key, IOpaqueAddress *addr, const std::vector< CLID > &clids) | |
TransientAddress (const TransientAddress &) | |
TransientAddress (TransientAddress &&) | |
Destructor. More... | |
~TransientAddress () | |
TransientAddress & | operator= (const TransientAddress &) |
TransientAddress & | operator= (TransientAddress &&) |
void | setID (CLID id, const std::string &key) |
Set the CLID / key. More... | |
void | reset () |
Retrieve IOpaqueAddress. More... | |
IOpaqueAddress *address | ATLAS_NOT_CONST_THREAD_SAFE () const |
set IOpaqueAddress More... | |
void | setAddress (IOpaqueAddress *pAddress) |
Retrieve primary clid. More... | |
CLID | clID () const |
Retrieve string key: More... | |
const std::string & | name () const |
Get the primary (hashed) SG key. More... | |
sgkey_t | sgkey () const |
Set the primary (hashed) SG key. More... | |
void | setSGKey (sgkey_t sgkey) |
check if it is a transient ID (primary or symLinked): More... | |
bool | transientID (CLID id) const |
set transient CLID's More... | |
void | setTransientID (CLID id) |
get transient CLID's More... | |
const TransientClidSet & | transientID () const |
set alias' More... | |
void | setAlias (const std::string &key) |
set alias' More... | |
void | setAlias (const std::set< std::string > &keys) |
set alias' More... | |
void | setAlias (std::set< std::string > &&keys) |
set transient Alias' More... | |
bool | removeAlias (const std::string &key) |
remove alias from proxy More... | |
const TransientAliasSet & | alias () const |
set the clearAddress flag: IOA will not be deleted in proxy More... | |
void | clearAddress (const bool &flag) |
Return the clearAddress flag. More... | |
bool | clearAddress () const |
this sets the flag whether to consult the provider to update this transient address if the IOA is not valid. More... | |
void | consultProvider (const bool &flag) |
Check the validity of the Transient Address. More... | |
bool | isValid (const EventContext *ctx, bool forceUpdate=false) |
cache the pointer to the Address provider which can update this transient address More... | |
IAddressProvider * | provider () |
StoreID::type | storeID () const |
void | setProvider (IAddressProvider *provider, StoreID::type storeID) |
Private Member Functions | |
TransientAddress (CLID id, const std::string &key, IOpaqueAddress *addr, bool clearAddress, bool consultProvider) | |
Private Attributes | |
std::atomic< CLID > | m_clid |
< clid of the concrete class (persistent clid) More... | |
std::atomic< sgkey_t > | m_sgkey |
Store type, needed by updateAddress. More... | |
StoreID::type | m_storeID |
Controls if IOpaqueAddress should be deleted: More... | |
bool | m_clearAddress |
Control whether the Address Provider must be consulted. More... | |
bool | m_consultProvider |
IOpaqueAddress: More... | |
IOpaqueAddress * | m_address |
AddressProvider. More... | |
IAddressProvider * | m_pAddressProvider |
string key of this object More... | |
CxxUtils::CachedValue< std::string > | m_name |
all transient clids. They come from symlinks More... | |
TransientClidSet | m_transientID |
all alias names for a DataObject. They come from setAlias More... | |
TransientAliasSet | m_transientAlias |
Static Private Attributes | |
static const std::string | s_emptyString |
Definition at line 31 of file TransientAddress.h.
Default Constructor.
Definition at line 41 of file TransientAddress.h.
typedef std::set<std::string> SG::TransientAddress::TransientAliasSet |
Definition at line 40 of file TransientAddress.h.
typedef std::vector<CLID> SG::TransientAddress::TransientClidSet |
Strictly a set, but there shouldn't be more than a handful of entries, so store it as a sorted vector instead.
Definition at line 38 of file TransientAddress.h.
TransientAddress::TransientAddress | ( | ) |
Construct from clid and string key:
Definition at line 18 of file TransientAddress.cxx.
TransientAddress::TransientAddress | ( | CLID | id, |
const std::string & | key, | ||
IOpaqueAddress * | addr, | ||
bool | clearAddress = true |
||
) |
Constructor giving full list of symlinked IDs — used from DataHeaderElement::getAddress().
Definition at line 34 of file TransientAddress.cxx.
TransientAddress::TransientAddress | ( | CLID | id, |
const std::string & | key, | ||
IOpaqueAddress * | addr, | ||
const std::vector< CLID > & | clids | ||
) |
Definition at line 46 of file TransientAddress.cxx.
TransientAddress::TransientAddress | ( | const TransientAddress & | other | ) |
Definition at line 83 of file TransientAddress.cxx.
TransientAddress::TransientAddress | ( | TransientAddress && | other | ) |
TransientAddress::~TransientAddress | ( | ) |
Definition at line 116 of file TransientAddress.cxx.
|
private |
Definition at line 62 of file TransientAddress.cxx.
|
inline |
set the clearAddress flag: IOA will not be deleted in proxy
get transient Alias'
Definition at line 284 of file TransientAddress.h.
IOpaqueAddress* address SG::TransientAddress::ATLAS_NOT_CONST_THREAD_SAFE | ( | ) | const |
set IOpaqueAddress
|
inline |
this sets the flag whether to consult the provider to update this transient address if the IOA is not valid.
Return the clearAddress flag.
Definition at line 298 of file TransientAddress.h.
|
inline |
Return the clearAddress flag.
set the clearAddress flag: IOA will not be deleted in proxy
Definition at line 291 of file TransientAddress.h.
|
inline |
|
inline |
Check the validity of the Transient Address.
cache the pointer to the Address provider which can update this transient address
If forceUpdate is true, then call updateAddress
even if we already have an address. If ctx is nullptr, we don't try to update the address.
Definition at line 304 of file TransientAddress.h.
bool TransientAddress::isValid | ( | const EventContext * | ctx, |
bool | forceUpdate = false |
||
) |
cache the pointer to the Address provider which can update this transient address
Definition at line 199 of file TransientAddress.cxx.
|
inline |
Get the primary (hashed) SG key.
Return StoreGate key.
Definition at line 214 of file TransientAddress.h.
TransientAddress & TransientAddress::operator= | ( | const TransientAddress & | other | ) |
Definition at line 122 of file TransientAddress.cxx.
TransientAddress & TransientAddress::operator= | ( | TransientAddress && | other | ) |
Definition at line 141 of file TransientAddress.cxx.
|
inline |
Definition at line 312 of file TransientAddress.h.
|
inline |
remove alias from proxy
remove alias
get transient alias
Definition at line 277 of file TransientAddress.h.
|
inline |
Retrieve IOpaqueAddress.
Definition at line 193 of file TransientAddress.h.
void TransientAddress::setAddress | ( | IOpaqueAddress * | pAddress | ) |
|
inline |
|
inline |
|
inline |
set transient Alias'
Definition at line 271 of file TransientAddress.h.
Set the CLID / key.
This will only succeed if the clid/key are currently clear. Reset
id | The new CLID. |
key | The new StoreGate key. |
This will only succeed if the clid/key are currently clear.
Definition at line 181 of file TransientAddress.cxx.
|
inline |
Definition at line 323 of file TransientAddress.h.
|
inline |
check if it is a transient ID (primary or symLinked):
Set the primary (hashed) SG key.
Definition at line 235 of file TransientAddress.h.
void TransientAddress::setTransientID | ( | CLID | id | ) |
|
inline |
Set the primary (hashed) SG key.
Get the primary (hashed) SG key.
Definition at line 228 of file TransientAddress.h.
|
inline |
Definition at line 317 of file TransientAddress.h.
|
inline |
|
inline |
set transient CLID's
check if it is a transient ID:
Definition at line 242 of file TransientAddress.h.
|
private |
AddressProvider.
Definition at line 171 of file TransientAddress.h.
|
private |
Control whether the Address Provider must be consulted.
Definition at line 165 of file TransientAddress.h.
|
private |
< clid of the concrete class (persistent clid)
(hashed) SG key for primary clid / key.
Definition at line 156 of file TransientAddress.h.
|
private |
IOpaqueAddress:
Definition at line 168 of file TransientAddress.h.
|
private |
all transient clids. They come from symlinks
Definition at line 177 of file TransientAddress.h.
|
private |
string key of this object
Definition at line 174 of file TransientAddress.h.
|
private |
Store type, needed by updateAddress.
Definition at line 159 of file TransientAddress.h.
|
private |
Controls if IOpaqueAddress should be deleted:
Definition at line 162 of file TransientAddress.h.
|
private |
Definition at line 183 of file TransientAddress.h.
|
private |
all alias names for a DataObject. They come from setAlias
Definition at line 180 of file TransientAddress.h.
|
staticprivate |
Definition at line 185 of file TransientAddress.h.