5#ifndef SGTOOLS_TRANSIENTADDRESS_H
6#define SGTOOLS_TRANSIENTADDRESS_H
22#include "GaudiKernel/ClassID.h"
23#include "GaudiKernel/IOpaqueAddress.h"
60 const std::vector<CLID>& clids);
73 void setID (
CLID id,
const std::string& key);
90 const std::string&
name()
const;
108 void setAlias(
const std::string& key);
111 void setAlias(
const std::vector<std::string>& keys);
114 void setAlias(std::vector<std::string>&& keys);
120 bool hasAlias(
const std::string& key)
const;
139 bool isValid (
const EventContext* ctx,
bool forceUpdate =
false);
201 IOpaqueAddress* addr
ATLAS_THREAD_SAFE =
const_cast<IOpaqueAddress*
> (m_address.get());
Cached value with atomic update.
uint32_t CLID
The Class ID type.
Abstract interface for looking up strings/CLIDs in a pool.
Simple smart pointer for Gaudi-style refcounted objects.
Define macros for attributes used to control the static checker.
#define ATLAS_THREAD_SAFE
Cached value with atomic update.
Simple smart pointer for Gaudi-style refcounted objects.
interface for IOA providers
SG::sgkey_t sgkey_t
Type of the keys.
IStringPool::sgkey_t sgkey_t
Default Constructor.
void reset()
Retrieve IOpaqueAddress.
sgkey_t sgkey() const
Set the primary (hashed) SG key.
TransientAddress()
Construct from clid and string key:
const TransientClidSet & transientID() const
set alias'
CLID clID() const
Retrieve string key:
IAddressProvider * m_pAddressProvider
string key of this object
StoreID::type storeID() const
void clearAddress(const bool &flag)
Return the clearAddress flag.
bool hasAlias(const std::string &key) const
get transient alias
const std::string & name() const
Get the primary (hashed) SG key.
std::atomic< sgkey_t > m_sgkey
Store type, needed by updateAddress.
bool isValid(const EventContext *ctx, bool forceUpdate=false)
cache the pointer to the Address provider which can update this transient address
void setTransientID(CLID id)
get transient CLID's
void setAlias(const std::string &key)
set alias'
CxxUtils::CachedValue< std::string > m_name
all transient clids. They come from symlinks
bool clearAddress() const
this sets the flag whether to consult the provider to update this transient address if the IOA is not...
bool removeAlias(const std::string &key)
remove alias from proxy
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...
bool m_consultProvider
IOpaqueAddress:
void setAddress(CxxUtils::RefCountedPtr< IOpaqueAddress > pAddress)
Retrieve primary clid.
static const std::string s_emptyString
void setSGKey(sgkey_t sgkey)
check if it is a transient ID (primary or symLinked):
IAddressProvider * provider()
TransientClidSet m_transientID
all alias names for a DataObject. They come from setAlias
std::vector< std::string > TransientAliasSet
TransientAddress & operator=(const TransientAddress &)
StoreID::type m_storeID
Controls if IOpaqueAddress should be deleted:
CxxUtils::RefCountedPtr< IOpaqueAddress > m_address
AddressProvider.
void setProvider(IAddressProvider *provider, StoreID::type storeID)
IOpaqueAddress *address ATLAS_NOT_CONST_THREAD_SAFE() const
set IOpaqueAddress
const TransientAliasSet & alias() const
set the clearAddress flag: IOA will not be deleted in proxy
bool m_clearAddress
Control whether the Address Provider must be consulted.
void consultProvider(const bool &flag)
Check the validity of the Transient Address.
void setID(CLID id, const std::string &key)
Set the CLID / key.
TransientAliasSet m_transientAlias
std::atomic< CLID > m_clid
< clid of the concrete class (persistent clid)
IOpaqueAddress *TransientAddress::address ATLAS_NOT_CONST_THREAD_SAFE() const
Retrieve IOpaqueAddress.