20
20
#define K4FWCORE_DATAHANDLE_H
21
21
22
22
#include " k4FWCore/DataWrapper.h"
23
- #include " k4FWCore/PodioDataSvc.h"
24
-
25
- #include " GaudiKernel/DataObjectHandle.h"
26
23
27
24
#include < GaudiKernel/AnyDataWrapper.h>
25
+ #include < GaudiKernel/DataObjectHandle.h>
26
+ #include < GaudiKernel/ServiceHandle.h>
27
+
28
+ #include < memory>
28
29
#include < stdexcept>
30
+ #include < string>
29
31
#include < type_traits>
30
32
31
33
/* *
@@ -39,12 +41,13 @@ class DataHandle : public DataObjectHandle<DataWrapper<T>> {
39
41
friend class AlgTool ;
40
42
41
43
public:
42
- DataHandle ();
44
+ DataHandle () = delete ;
45
+ DataHandle (const DataHandle&) = delete ;
46
+ DataHandle& operator =(const DataHandle&) = delete ;
47
+ DataHandle (DataHandle&&) = default ;
48
+ DataHandle& operator =(DataHandle&&) = default ;
43
49
~DataHandle () override ;
44
50
45
- // / Initialises mother class
46
- DataHandle (DataObjID& descriptor, Gaudi::DataHandle::Mode a, IDataHandleHolder* fatherAlg);
47
-
48
51
DataHandle (const std::string& k, Gaudi::DataHandle::Mode a, IDataHandleHolder* fatherAlg);
49
52
50
53
// / Retrieve object from transient data store
@@ -64,7 +67,7 @@ class DataHandle : public DataObjectHandle<DataWrapper<T>> {
64
67
65
68
private:
66
69
ServiceHandle<IDataProviderSvc> m_eds;
67
- T* m_dataPtr;
70
+ T* m_dataPtr{ nullptr } ;
68
71
};
69
72
70
73
template <typename T>
@@ -75,22 +78,12 @@ DataHandle<T>::~DataHandle() {
75
78
}
76
79
}
77
80
78
- // ---------------------------------------------------------------------------
79
- template <typename T>
80
- DataHandle<T>::DataHandle(DataObjID& descriptor, Gaudi::DataHandle::Mode a, IDataHandleHolder* fatherAlg)
81
- : DataObjectHandle<DataWrapper<T>>(descriptor, a, fatherAlg), m_eds(" EventDataSvc" , " DataHandle" ) {}
82
-
83
81
template <typename T>
84
82
DataHandle<T>::DataHandle(const std::string& descriptor, Gaudi::DataHandle::Mode a, IDataHandleHolder* fatherAlg)
85
83
: DataObjectHandle<DataWrapper<T>>(descriptor, a, fatherAlg), m_eds(" EventDataSvc" , " DataHandle" ) {
86
84
if (a == Gaudi::DataHandle::Writer) {
87
- m_eds.retrieve ().ignore ();
88
- m_dataPtr = nullptr ;
89
- auto * podio_data_service = dynamic_cast <PodioDataSvc*>(m_eds.get ());
90
- if (nullptr != podio_data_service) {
91
- if constexpr (std::is_integral_v<T> || std::is_floating_point_v<T>) {
92
- m_dataPtr = new T ();
93
- }
85
+ if constexpr (std::is_integral_v<T> || std::is_floating_point_v<T>) {
86
+ m_dataPtr = new T ();
94
87
}
95
88
}
96
89
}
0 commit comments