@@ -50,12 +50,12 @@ class MonitorObject : public TObject
5050 // / Destructor
5151 ~MonitorObject () override ;
5252
53- // / Copy constructor
54- MonitorObject (const MonitorObject& other) = default ;
53+ // // / Copy constructor
54+ MonitorObject (const MonitorObject& other);
5555 // / Move constructor
5656 MonitorObject (MonitorObject&& other) /* noexcept*/ = default ;
5757 // / Copy assignment operator
58- MonitorObject& operator =(const MonitorObject& other) = default ;
58+ MonitorObject& operator =(const MonitorObject& other);
5959 // / Move assignment operator
6060 MonitorObject& operator =(MonitorObject&& other) /* noexcept*/ = default ;
6161
@@ -69,19 +69,19 @@ class MonitorObject : public TObject
6969
7070 // / \brief Return joined task name and name of the encapsulated object (if any).
7171 // / @return The name as "{getTaskName()}/{getName())}.
72- const std::string getFullName () const { return getTaskName () + " / " + getName (); }
72+ std::string getFullName () const ;
7373
74- TObject* getObject () const { return mObject ; }
75- void setObject (TObject* object) { mObject = object; }
74+ TObject* getObject () const ;
75+ void setObject (TObject* object);
7676
77- bool isIsOwner () const { return mIsOwner ; }
78- void setIsOwner (bool isOwner) { mIsOwner = isOwner; }
77+ bool isIsOwner () const ;
78+ void setIsOwner (bool isOwner);
7979
80- const std::string& getTaskName () const { return mTaskName ; }
81- void setTaskName (const std::string& taskName) { mTaskName = taskName; }
80+ const std::string& getTaskName () const ;
81+ void setTaskName (const std::string& taskName);
8282
83- const std::string& getDetectorName () const { return mDetectorName ; }
84- void setDetectorName (const std::string& detectorName) { mDetectorName = detectorName; }
83+ const std::string& getDetectorName () const ;
84+ void setDetectorName (const std::string& detectorName);
8585
8686 const std::string& getTaskClass () const ;
8787 void setTaskClass (const std::string& taskClass);
@@ -117,6 +117,8 @@ class MonitorObject : public TObject
117117 void Draw (Option_t* option) override ;
118118 TObject* DrawClone (Option_t* option) const override ;
119119
120+ void Copy (TObject& object) const override ;
121+
120122 // / \brief Build the path to this object.
121123 // / Build the path to this object as it will appear in the GUI.
122124 // / \return A string containing the path.
@@ -126,7 +128,7 @@ class MonitorObject : public TObject
126128 void setDescription (const std::string& description);
127129
128130 private:
129- TObject* mObject ;
131+ std::unique_ptr< TObject> mObject ;
130132 std::string mTaskName ;
131133 std::string mTaskClass ;
132134 std::string mDetectorName ;
@@ -141,7 +143,10 @@ class MonitorObject : public TObject
141143 // tells Merger to create an object with data from the last cycle only on the side of the complete object
142144 bool mCreateMovingWindow = false ;
143145
144- ClassDefOverride (MonitorObject, 12 );
146+ void releaseObject ();
147+ void cloneAndSetObject (const MonitorObject&);
148+
149+ ClassDefOverride (MonitorObject, 13 );
145150};
146151
147152} // namespace o2::quality_control::core
0 commit comments