 |
ATLAS Offline Software
|
This class provides the interface between Athena and PoolSvc.
More...
#include <AthenaPoolSharedIOCnvSvc.h>
|
| virtual StatusCode | initialize () override |
| | Required of all Gaudi Services. More...
|
| |
| virtual StatusCode | finalize () override |
| | Required of all Gaudi Services. More...
|
| |
| virtual StatusCode | connectOutput (const std::string &outputConnectionSpec, const std::string &openMode) override |
| | Implementation of IConversionSvc: Connect to the output connection specification with open mode. More...
|
| |
| virtual StatusCode | connectOutput (const std::string &outputConnectionSpec) override |
| | Implementation of IConversionSvc: Connect to the output connection specification with open mode. More...
|
| |
| virtual StatusCode | commitOutput (const std::string &outputConnectionSpec, bool doCommit) override |
| | Implementation of IConversionSvc: Commit pending output. More...
|
| |
| virtual StatusCode | disconnectOutput (const std::string &outputConnectionSpec) override |
| | Disconnect to the output connection. More...
|
| |
| virtual Token * | registerForWrite (Placement *placement, const void *obj, const RootType &classDesc) override |
| |
| virtual void | setObjPtr (void *&obj, const Token *token) override |
| |
| StatusCode | createAddress (long svcType, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress) override |
| | Create a Generic address using explicit arguments to identify a single object. More...
|
| |
| virtual StatusCode | createAddress (long svcType, const CLID &clid, const std::string &refAddress, IOpaqueAddress *&refpAddress) override |
| | Create address from string form. More...
|
| |
| virtual StatusCode | makeServer (int num) override |
| | Make this a server. More...
|
| |
| virtual StatusCode | makeClient (int num) override |
| | Make this a client. More...
|
| |
| virtual StatusCode | readData () override |
| | Read the next data object. More...
|
| |
| virtual StatusCode | commitCatalog () override |
| | Commit Catalog. More...
|
| |
| StatusCode | abortSharedWrClients (int client_n) |
| | Send abort to SharedWriter clients if the server quits on error. More...
|
| |
| virtual void | handle (const Incident &incident) override |
| | Implementation of IIncidentListener: Handle for EndEvent incidence. More...
|
| |
| | AthenaPoolSharedIOCnvSvc (const std::string &name, ISvcLocator *pSvcLocator) |
| | Standard Service Constructor. More...
|
| |
| virtual | ~AthenaPoolSharedIOCnvSvc ()=default |
| | Destructor. More...
|
| |
|
| ServiceHandle< IAthenaSerializeSvc > | m_serializeSvc {this,"AthenaRootSerializeSvc","AthenaRootSerializeSvc"} |
| |
| ToolHandle< IAthenaIPCTool > | m_inputStreamingTool {this,"InputStreamingTool",{}} |
| |
| ToolHandle< IAthenaIPCTool > | m_outputStreamingTool {this,"OutputStreamingTool",{}} |
| |
| bool | m_streamServerActive =false |
| |
| int | m_metadataClient =0 |
| |
| Gaudi::Property< std::string > | m_metadataContainerProp {this,"OutputMetadataContainer","MetaData"} |
| | For SharedWriter: To use MetadataSvc to merge data placed in a certain container. More...
|
| |
| Gaudi::Property< std::vector< std::string > > | m_metadataContainersAug {this, "OutputMetadataContainers", {}, "Metadata containers used for augmentations"} |
| |
| Gaudi::Property< int > | m_makeStreamingToolClient {this,"MakeStreamingToolClient",0} |
| | Make this instance a Streaming Client during first connect/write automatically. More...
|
| |
| Gaudi::Property< int > | m_streamingTechnology {this,"StreamingTechnology",-1} |
| | Use Streaming for selected technologies only. More...
|
| |
| Gaudi::Property< bool > | m_parallelCompression {this,"ParallelCompression",true} |
| | Use Athena Object sharing for metadata only, event data is collected and send via ROOT TMemFile. More...
|
| |
| Gaudi::Property< std::string > | m_streamPortString {this,"StreamPortString","?pmerge=localhost:0"} |
| | Extension to use ROOT TMemFile for event data, "?pmerge=<host>:<port>". More...
|
| |
This class provides the interface between Athena and PoolSvc.
Definition at line 25 of file AthenaPoolSharedIOCnvSvc.h.
◆ AthenaPoolSharedIOCnvSvc()
| AthenaPoolSharedIOCnvSvc::AthenaPoolSharedIOCnvSvc |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~AthenaPoolSharedIOCnvSvc()
| virtual AthenaPoolSharedIOCnvSvc::~AthenaPoolSharedIOCnvSvc |
( |
| ) |
|
|
virtualdefault |
◆ abortSharedWrClients()
| StatusCode AthenaPoolSharedIOCnvSvc::abortSharedWrClients |
( |
int |
client_n | ) |
|
Send abort to SharedWriter clients if the server quits on error.
- Parameters
-
| client_n | [IN] number of the current client, -1 if no current |
Definition at line 783 of file AthenaPoolSharedIOCnvSvc.cxx.
789 while (
sc.isSuccess()) {
795 while (
sc.isRecoverable()) {
799 return StatusCode::FAILURE;
◆ commitCatalog()
| StatusCode AthenaPoolSharedIOCnvSvc::commitCatalog |
( |
| ) |
|
|
overridevirtual |
◆ commitOutput()
| StatusCode AthenaPoolSharedIOCnvSvc::commitOutput |
( |
const std::string & |
outputConnectionSpec, |
|
|
bool |
doCommit |
|
) |
| |
|
overridevirtual |
Implementation of IConversionSvc: Commit pending output.
- Parameters
-
| doCommit | [IN] boolean to force full commit |
Definition at line 128 of file AthenaPoolSharedIOCnvSvc.cxx.
130 std::string outputConnection = outputConnectionSpec.substr(0, outputConnectionSpec.find(
'['));
134 if (!this->cleanUp(outputConnection).isSuccess()) {
136 return(StatusCode::FAILURE);
138 return(StatusCode::SUCCESS);
141 ATH_MSG_DEBUG(
"commitOutput SKIPPED for uninitialized server.");
142 return(StatusCode::SUCCESS);
144 std::map<void*, RootType> commitCache;
148 const char* placementStr =
nullptr;
151 if (
sc.isSuccess() && placementStr !=
nullptr && strlen(placementStr) > 6 &&
num > 0) {
152 const char * matchedChars = strstr(placementStr,
"[FILE=");
164 bool dataHeaderSeen =
false;
165 std::string dataHeaderID;
167 std::string objName =
"ALL";
168 if (useDetailChronoStat()) {
169 objName = placementStr;
174 std::string_view pStr = placementStr;
175 std::string::size_type cpos = pStr.find (
"[CONT=");
176 if (cpos == std::string::npos) {
178 return StatusCode::FAILURE;
180 std::string tokenStr (pStr.substr(0, cpos));
181 std::string contName (pStr.substr(cpos, std::string::npos));
182 std::string::size_type cl1 = contName.find(
']');
183 if (cl1 == std::string::npos) {
185 return StatusCode::FAILURE;
187 tokenStr.append(contName, cl1 + 1);
188 contName = contName.substr(6, cl1 - 6);
190 std::string::size_type ppos = pStr.find (
"[PNAME=");
191 if (ppos == std::string::npos) {
193 return StatusCode::FAILURE;
195 std::string
className (pStr.substr(ppos, std::string::npos));
196 std::string::size_type cl2 =
className.find(
']');
197 if (cl2 == std::string::npos) {
199 return StatusCode::FAILURE;
206 bool foundContainer =
false;
207 std::size_t opPos = contName.find(
'(');
209 foundContainer =
true;
212 if (contName.compare(0, opPos,
item) == 0){
213 foundContainer =
true;
219 if (len > 0 && foundContainer && contName[len] ==
'(' ) {
225 FileIncident beginInputIncident(
name(),
"BeginInputMemFile", memName);
226 incSvc->fireIncident(beginInputIncident);
227 FileIncident endInputIncident(
name(),
"EndInputMemFile", std::move(memName));
228 incSvc->fireIncident(endInputIncident);
235 sc = metadataSvc->shmProxy(
std::format(
"{}[NUM={}]", pStr, numStr));
236 if (
sc.isRecoverable()) {
238 }
else if (
sc.isFailure()) {
249 if( m_oneDataHeaderForm.value() ) {
250 auto placementWithSwn = [&] {
return std::format(
"{}[SWN={}]", placementStr,
num); };
254 "", placementWithSwn());
255 DHcnv->updateRepRefs(&
address,
static_cast<DataObject*
>(
obj)).ignore();
261 if (token ==
nullptr) {
265 tokenStr = token->toString();
270 tokenStr, placementWithSwn());
271 if (!DHcnv->updateRep(&
address,
static_cast<DataObject*
>(
obj)).isSuccess()) {
277 commitCache.insert(std::pair<void*, RootType>(
obj, classDesc));
279 placementStr =
nullptr;
283 placement.
fromString(placementStr); placementStr =
nullptr;
285 if (token ==
nullptr) {
289 tokenStr = token->toString();
295 if (!DHcnv->updateRep(&
address,
static_cast<DataObject*
>(
obj)).isSuccess()) {
299 dataHeaderSeen =
true;
306 dataHeaderID =
std::format(
"{}/{}/{}", token->contID(), numStr, token->dbID().toString());
307 }
else if (dataHeaderSeen) {
308 dataHeaderSeen =
false;
314 tokenStr, dataHeaderID);
315 if (!DHcnv->updateRepRefs(&
address,
static_cast<DataObject*
>(
obj)).isSuccess()) {
316 ATH_MSG_ERROR(
"Failed updateRepRefs for obj = " << tokenStr);
321 GenericAddress
address(0, 0,
"", dataHeaderID);
322 if (!DHcnv->updateRepRefs(&
address,
nullptr).isSuccess()) {
329 commitCache.insert(std::pair<void*, RootType>(
obj, classDesc));
336 while (
sc.isRecoverable()) {
339 if (!
sc.isSuccess()) {
345 while (
sc.isRecoverable()) {
348 if (
sc.isFailure()) {
353 if (dataHeaderSeen) {
355 GenericAddress
address(0, 0,
"", std::move(dataHeaderID));
356 if (!DHcnv->updateRepRefs(&
address,
nullptr).isSuccess()) {
361 placementStr =
nullptr;
362 }
else if (
sc.isSuccess() && placementStr !=
nullptr && strncmp(placementStr,
"stop", 4) == 0) {
363 return(StatusCode::RECOVERABLE);
364 }
else if (
sc.isRecoverable() ||
num == -1) {
365 return(StatusCode::RECOVERABLE);
370 FileIncident beginInputIncident(
name(),
"BeginInputMemFile", memName);
371 incSvc->fireIncident(beginInputIncident);
372 FileIncident endInputIncident(
name(),
"EndInputMemFile", memName);
373 incSvc->fireIncident(endInputIncident);
374 if (
sc.isFailure()) {
375 ATH_MSG_INFO(
"All SharedWriter clients stopped - exiting");
379 return(StatusCode::FAILURE);
384 return(StatusCode::SUCCESS);
386 if (outputConnection.empty()) {
387 outputConnection = std::move(
fileName);
389 outputConnection = outputConnectionSpec;
◆ connectOutput() [1/2]
| StatusCode AthenaPoolSharedIOCnvSvc::connectOutput |
( |
const std::string & |
outputConnectionSpec | ) |
|
|
overridevirtual |
Implementation of IConversionSvc: Connect to the output connection specification with open mode.
- Parameters
-
| outputConnectionSpec | [IN] the name of the output connection specification as string. |
Definition at line 94 of file AthenaPoolSharedIOCnvSvc.cxx.
96 std::string outputConnection = outputConnectionSpec.substr(0, outputConnectionSpec.find(
'['));
99 ATH_MSG_ERROR(
"Could not make AthenaPoolSharedIOCnvSvc a Share Client");
100 return(StatusCode::FAILURE);
105 return(StatusCode::SUCCESS);
110 return(StatusCode::SUCCESS);
114 return(StatusCode::SUCCESS);
120 std::size_t apend = outputConnectionSpec.find(
'[');
121 if (apend != std::string::npos) {
122 outputConnection += outputConnectionSpec.substr(apend);
◆ connectOutput() [2/2]
| StatusCode AthenaPoolSharedIOCnvSvc::connectOutput |
( |
const std::string & |
outputConnectionSpec, |
|
|
const std::string & |
openMode |
|
) |
| |
|
overridevirtual |
Implementation of IConversionSvc: Connect to the output connection specification with open mode.
- Parameters
-
| outputConnectionSpec | [IN] the name of the output connection specification as string. |
| openMode | [IN] the open mode of the file as string. |
Definition at line 89 of file AthenaPoolSharedIOCnvSvc.cxx.
◆ createAddress() [1/2]
| StatusCode AthenaPoolSharedIOCnvSvc::createAddress |
( |
long |
svcType, |
|
|
const CLID & |
clid, |
|
|
const std::string & |
refAddress, |
|
|
IOpaqueAddress *& |
refpAddress |
|
) |
| |
|
overridevirtual |
Create address from string form.
- Parameters
-
| svcType | [IN] service type of the address. |
| clid | [IN] class id for the address. |
| refAddress | [IN] string form to be converted. |
| refpAddress | [OUT] converted address. |
Definition at line 650 of file AthenaPoolSharedIOCnvSvc.cxx.
◆ createAddress() [2/2]
| StatusCode AthenaPoolSharedIOCnvSvc::createAddress |
( |
long |
svcType, |
|
|
const CLID & |
clid, |
|
|
const std::string * |
par, |
|
|
const unsigned long * |
ip, |
|
|
IOpaqueAddress *& |
refpAddress |
|
) |
| |
|
override |
Create a Generic address using explicit arguments to identify a single object.
- Parameters
-
| svcType | [IN] service type of the address. |
| clid | [IN] class id for the address. |
| par | [IN] string containing the database name. |
| ip | [IN] object identifier. |
| refpAddress | [OUT] converted address. |
Definition at line 607 of file AthenaPoolSharedIOCnvSvc.cxx.
617 addressToken.
setDb(
par[0].substr(4));
622 std::size_t nbytes = 0;
624 while (
sc.isRecoverable()) {
628 if (!
sc.isSuccess()) {
630 return(StatusCode::FAILURE);
632 auto token = std::make_unique<Token>();
633 token->fromString(
static_cast<const char*
>(
buffer));
buffer =
nullptr;
640 return(StatusCode::SUCCESS);
643 return(StatusCode::RECOVERABLE);
◆ disconnectOutput()
| StatusCode AthenaPoolSharedIOCnvSvc::disconnectOutput |
( |
const std::string & |
outputConnectionSpec | ) |
|
|
overridevirtual |
Disconnect to the output connection.
Definition at line 402 of file AthenaPoolSharedIOCnvSvc.cxx.
403 std::string outputConnection = outputConnectionSpec.substr(0, outputConnectionSpec.find(
'['));
406 return(StatusCode::SUCCESS);
412 return(StatusCode::SUCCESS);
◆ finalize()
| StatusCode AthenaPoolSharedIOCnvSvc::finalize |
( |
| ) |
|
|
overridevirtual |
◆ handle()
| void AthenaPoolSharedIOCnvSvc::handle |
( |
const Incident & |
incident | ) |
|
|
overridevirtual |
◆ initialize()
| StatusCode AthenaPoolSharedIOCnvSvc::initialize |
( |
| ) |
|
|
overridevirtual |
Required of all Gaudi Services.
Definition at line 38 of file AthenaPoolSharedIOCnvSvc.cxx.
52 getPoolSvc()->setShareMode(
true);
61 incSvc->addListener(
this,
"StoreCleared", pri);
◆ makeClient()
| StatusCode AthenaPoolSharedIOCnvSvc::makeClient |
( |
int |
num | ) |
|
|
overridevirtual |
Make this a client.
Definition at line 683 of file AthenaPoolSharedIOCnvSvc.cxx.
686 std::string streamPortSuffix;
689 return(StatusCode::FAILURE);
692 ATH_MSG_DEBUG(
"makeClient: Setting conversion service port suffix to " << streamPortSuffix);
697 return(StatusCode::SUCCESS);
700 std::string dummyStr;
◆ makeServer()
| StatusCode AthenaPoolSharedIOCnvSvc::makeServer |
( |
int |
num | ) |
|
|
overridevirtual |
Make this a server.
Definition at line 657 of file AthenaPoolSharedIOCnvSvc.cxx.
668 return(StatusCode::FAILURE);
671 m_persSvcPerOutput.setValue(
false);
672 return(StatusCode::SUCCESS);
674 return(StatusCode::RECOVERABLE);
677 return(StatusCode::RECOVERABLE);
◆ readData()
| StatusCode AthenaPoolSharedIOCnvSvc::readData |
( |
| ) |
|
|
overridevirtual |
Read the next data object.
Definition at line 704 of file AthenaPoolSharedIOCnvSvc.cxx.
706 return(StatusCode::FAILURE);
708 const char* tokenStr =
nullptr;
711 if (
sc.isSuccess() && tokenStr !=
nullptr && strlen(tokenStr) > 0 &&
num > 0) {
719 token.
fromString(tokenStr); tokenStr =
nullptr;
721 std::string objName =
"ALL";
722 if (useDetailChronoStat()) {
731 std::size_t nbytes = 0;
734 while (
sc.isRecoverable()) {
738 if (!
sc.isSuccess()) {
740 return(StatusCode::FAILURE);
745 return(StatusCode::FAILURE);
750 return(StatusCode::FAILURE);
753 std::string returnToken;
755 if (metadataToken !=
nullptr) {
756 returnToken = metadataToken->
toString();
760 delete metadataToken; metadataToken =
nullptr;
765 return(StatusCode::FAILURE);
768 return(StatusCode::RECOVERABLE);
770 return(StatusCode::SUCCESS);
◆ registerForWrite()
- Returns
- a string token to a Data Object written to Pool
- Parameters
-
| placement | [IN] pointer to the placement hint |
| obj | [IN] pointer to the Data Object to be written to Pool |
| classDesc | [IN] pointer to the Seal class description for the Data Object. |
Definition at line 425 of file AthenaPoolSharedIOCnvSvc.cxx.
428 ATH_MSG_ERROR(
"Could not make AthenaPoolSharedIOCnvSvc a Share Client");
432 Token* token =
nullptr;
436 std::string placementStr = placement->
toString();
437 placementStr +=
"[PNAME=";
438 placementStr += classDesc.
Name();
442 while (
sc.isRecoverable()) {
446 if (!
sc.isSuccess()) {
451 const void*
buffer =
nullptr;
452 std::size_t nbytes = 0;
454 if (classDesc.
Name() ==
"Token") {
455 nbytes = strlen(
static_cast<const char*
>(
obj)) + 1;
459 nbytes = classDesc.
SizeOf();
467 while (
sc.isRecoverable()) {
471 if (own) {
delete []
static_cast<const char*
>(
buffer); }
473 if (!
sc.isSuccess()) {
474 ATH_MSG_ERROR(
"Could not share object for: " << placementStr);
480 ATH_MSG_ERROR(
"Could not share dynamic aux store for: " << placementStr);
489 const char* tokenStr =
nullptr;
492 while (
sc.isRecoverable()) {
496 if (!
sc.isSuccess()) {
500 if (!strcmp(tokenStr,
"ABORT")) {
507 tempToken->
fromString(tokenStr); tokenStr =
nullptr;
509 token = tempToken; tempToken =
nullptr;
513 ATH_MSG_DEBUG(
"registerForWrite SKIPPED for uninitialized server, Placement = " << placement->
toString());
516 token = tempToken; tempToken =
nullptr;
519 token = getPoolSvc()->registerForWrite(placement,
obj, classDesc);
◆ setObjPtr()
| void AthenaPoolSharedIOCnvSvc::setObjPtr |
( |
void *& |
obj, |
|
|
const Token * |
token |
|
) |
| |
|
overridevirtual |
- Parameters
-
| obj | [OUT] pointer to the Data Object. |
| token | [IN] string token of the Data Object for which a Pool Ref is filled. |
Definition at line 530 of file AthenaPoolSharedIOCnvSvc.cxx.
533 ATH_MSG_ERROR(
"Could not make AthenaPoolSharedIOCnvSvc a Share Client");
538 int num = token->
oid().first;
541 std::size_t nbytes = 0;
543 while (
sc.isRecoverable()) {
547 if (!
sc.isSuccess()) {
579 std::size_t nbytes = 0;
585 while (
sc.isRecoverable()) {
590 if (!
sc.isSuccess()) {
◆ SvcFactory< AthenaPoolSharedIOCnvSvc >
◆ m_inputStreamingTool
| ToolHandle<IAthenaIPCTool> AthenaPoolSharedIOCnvSvc::m_inputStreamingTool {this,"InputStreamingTool",{}} |
|
private |
◆ m_makeStreamingToolClient
| Gaudi::Property<int> AthenaPoolSharedIOCnvSvc::m_makeStreamingToolClient {this,"MakeStreamingToolClient",0} |
|
private |
◆ m_metadataClient
| int AthenaPoolSharedIOCnvSvc::m_metadataClient =0 |
|
private |
◆ m_metadataContainerProp
| Gaudi::Property<std::string> AthenaPoolSharedIOCnvSvc::m_metadataContainerProp {this,"OutputMetadataContainer","MetaData"} |
|
private |
◆ m_metadataContainersAug
| Gaudi::Property<std::vector<std::string> > AthenaPoolSharedIOCnvSvc::m_metadataContainersAug {this, "OutputMetadataContainers", {}, "Metadata containers used for augmentations"} |
|
private |
◆ m_outputStreamingTool
| ToolHandle<IAthenaIPCTool> AthenaPoolSharedIOCnvSvc::m_outputStreamingTool {this,"OutputStreamingTool",{}} |
|
private |
◆ m_parallelCompression
| Gaudi::Property<bool> AthenaPoolSharedIOCnvSvc::m_parallelCompression {this,"ParallelCompression",true} |
|
private |
◆ m_serializeSvc
◆ m_streamingTechnology
| Gaudi::Property<int> AthenaPoolSharedIOCnvSvc::m_streamingTechnology {this,"StreamingTechnology",-1} |
|
private |
◆ m_streamPortString
| Gaudi::Property<std::string> AthenaPoolSharedIOCnvSvc::m_streamPortString {this,"StreamPortString","?pmerge=localhost:0"} |
|
private |
◆ m_streamServerActive
| bool AthenaPoolSharedIOCnvSvc::m_streamServerActive =false |
|
private |
The documentation for this class was generated from the following files:
Gaudi::Property< bool > m_parallelCompression
Use Athena Object sharing for metadata only, event data is collected and send via ROOT TMemFile.
StatusCode createAddress(long svcType, const CLID &clid, const std::string *par, const unsigned long *ip, IOpaqueAddress *&refpAddress) override
Create a Generic address using explicit arguments to identify a single object.
ServiceHandle< IAthenaSerializeSvc > m_serializeSvc
This class holds all the necessary information to guide the writing of an object in a physical place.
static TScopeAdapter ByNameNoQuiet(const std::string &name, Bool_t load=kTRUE)
virtual StatusCode initialize() override
Required of all Gaudi Services.
const std::string & containerName() const
Access container name.
const std::string & contID() const
Access container identifier.
Gaudi::Property< int > m_streamingTechnology
Use Streaming for selected technologies only.
bool m_streamServerActive
const std::string & auxString() const
Access auxiliary string.
const Guid & dbID() const
Access database identifier.
StatusCode sendStore(const IAthenaSerializeSvc *serSvc, IAthenaIPCTool *ipcTool, const void *obj, const Guid &classId, const std::string &contName, int num=0)
Send dynamic aux store variables to streaming tool.
void commit()
Save catalog to file.
StatusCode abortSharedWrClients(int client_n)
Send abort to SharedWriter clients if the server quits on error.
const Guid & classID() const
Access database identifier.
virtual void setObjPtr(void *&obj, const Token *token) override
#define ATH_MSG_VERBOSE(x)
static const TypeH forGuid(const Guid &info)
Access classes by Guid.
std::string to_string(const SectorProjector proj)
This class provides a token that identifies in a unique way objects on the persistent storage.
virtual Token * registerForWrite(Placement *placement, const void *obj, const RootType &classDesc) override
ToolHandle< IAthenaIPCTool > m_inputStreamingTool
This class provides a Generic Transient Address for POOL tokens.
Token & setClassID(const Guid &cl_id)
Access database identifier.
int technology() const
Access technology type.
constexpr void toString(std::span< char, StrLen > buf, bool uppercase=true) const noexcept
Automatic conversion to string representation.
StatusCode receiveStore(const IAthenaSerializeSvc *serSvc, IAthenaIPCTool *ipcTool, void *obj, int num=0)
Receive dynamic aux store variables from streaming tool.
virtual StatusCode finalize() override
Required of all Gaudi Services.
::StatusCode StatusCode
StatusCode definition for legacy code.
Default, invalid implementation of ClassID_traits.
Token & setDb(const Guid &db)
Set database name.
Gaudi::Property< int > m_makeStreamingToolClient
Make this instance a Streaming Client during first connect/write automatically.
const std::string & fileName() const
Access file name.
Placement & setFileName(const std::string &fileName)
Set file name.
const std::string & auxString() const
Access auxiliary string.
std::string Name(unsigned int mod=Reflex::SCOPED) const
virtual StatusCode disconnectOutput(const std::string &outputConnectionSpec) override
Disconnect to the output connection.
virtual void setObjPtr(void *&obj, const Token *token) override
virtual StatusCode commitOutput(const std::string &outputConnectionSpec, bool doCommit) override
Implementation of IConversionSvc: Commit pending output.
virtual const std::string toString() const
Retrieve the string representation of the token.
virtual StatusCode makeClient(int num) override
Make this a client.
Gaudi::Property< std::vector< std::string > > m_metadataContainersAug
Token & setOid(const OID_t &oid)
Set object identifier.
const std::string toString() const
Retrieve the string representation of the placement.
static const Guid & null() noexcept
NULL-Guid: static class method.
Token & fromString(const std::string_view from)
Build from the string representation of a token.
Bool_t IsFundamental() const
#define ATH_MSG_WARNING(x)
Gaudi::Property< std::string > m_metadataContainerProp
For SharedWriter: To use MetadataSvc to merge data placed in a certain container.
const OID_t & oid() const
Access object identifier.
Token & setAuxString(const std::string &auxString)
Set auxiliary string.
virtual StatusCode connectOutput(const std::string &outputConnectionSpec, const std::string &openMode) override
Implementation of IConversionSvc: Connect to the output connection specification with open mode.
virtual Token * registerForWrite(Placement *placement, const void *obj, const RootType &classDesc) override
Token & setCont(const std::string &cnt)
Set container name.
ToolHandle< IAthenaIPCTool > m_outputStreamingTool
#define ATLAS_THREAD_SAFE
Gaudi::Property< std::string > m_streamPortString
Extension to use ROOT TMemFile for event data, "?pmerge=<host>:<port>".
virtual StatusCode connectOutput(const std::string &outputConnectionSpec, const std::string &openMode) override
Implementation of IConversionSvc: Connect to the output connection specification with open mode.
char rootType(char typeidType)
This function is used internally in the code when creating primitive dynamic auxiliary branches.
Placement & fromString(const std::string &from)
Build from the string representation of a placement.
This class provides the interface between AthenaPoolCnvSvc and AuxStore classes.
static Guid guid(const TypeH &id)
Determine Guid (normalized string form) from reflection type.