ATLAS Offline Software
IH5GroupSvc.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 #ifndef I_H5_FILE_SVC_H
5 #define I_H5_FILE_SVC_H
6 
7 #include "GaudiKernel/IService.h"
8 
9 // This service gives access to an H5::Group, so that subgroups within
10 // the same file can be created by mulitple clients.
11 //
12 // Note that this inherits all the normal IO related issues to the
13 // client: if multiple clients try to create the same dataset,
14 // especially from different threads, there's no garentee that things
15 // will work out well!
16 //
17 
18 namespace H5 {
19  class Group;
20 }
21 
22 class IH5GroupSvc : virtual public IService
23 {
24 public:
25  virtual ~IH5GroupSvc() {};
26  static const InterfaceID& interfaceID();
27  virtual H5::Group* group() = 0;
28 };
29 
30 inline const InterfaceID& IH5GroupSvc::interfaceID() {
31  static const InterfaceID id("IH5GroupSvc", 1, 0);
32  return id;
33 }
34 
35 #endif
IH5GroupSvc
Definition: IH5GroupSvc.h:23
TrigDefs::Group
Group
Properties of a chain group.
Definition: GroupProperties.h:13
IH5GroupSvc::interfaceID
static const InterfaceID & interfaceID()
Definition: IH5GroupSvc.h:30
H5
HDF5 Traits.
Definition: AthenaHDFStreamTool.h:22
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
IH5GroupSvc::group
virtual H5::Group * group()=0
IH5GroupSvc::~IH5GroupSvc
virtual ~IH5GroupSvc()
Definition: IH5GroupSvc.h:25