1 #ifndef MHO_SerializableObjectFactory_HH__
2 #define MHO_SerializableObjectFactory_HH__
55 const std::string& shortname =
"")
66 template<
typename XClassType >
81 XClassType* obj =
new XClassType();
94 XClassType* obj =
nullptr;
98 obj =
new XClassType();
99 bool ok = inter.
Read(*obj, read_key);
106 msg_debug(
"file",
"failed to build object from file." << eom);
113 msg_debug(
"file",
"failed to build object from file, interface not open." << eom);
128 const std::string& shortname =
"")
131 const XClassType* obj =
dynamic_cast< const XClassType*
>(object);
137 ok = inter.
Write(*obj, shortname);
142 msg_debug(
"file",
"failed to write object to file." << eom);
#define msg_debug(xKEY, xCONTENT)
Definition: MHO_Message.hh:297
Class MHO_BinaryFileInterface.
Definition: MHO_BinaryFileInterface.hh:27
bool Read(XReadType &obj, MHO_FileKey &obj_key)
Reads the object (XReadType) specified by the object file key from the file.
Definition: MHO_BinaryFileInterface.hh:401
bool Write(const XWriteType &obj, const std::string &shortname="")
Writes an object (must inherit from MHO_Serializable) to a file (with optional shortname string)....
Definition: MHO_BinaryFileInterface.hh:346
bool IsOpenForWrite()
Checks if both object and key streamers are open for writing when fCollectKeys is true,...
Definition: MHO_BinaryFileInterface.hh:38
bool IsOpenForRead()
Checks if the object streamer is open for reading.
Definition: MHO_BinaryFileInterface.hh:55
Class MHO_FileKey the version-0 size of the file key is (512 bits / 64 bytes), and all of the version...
Definition: MHO_FileKey.hh:57
Class MHO_SerializableObjectFactorySpecific.
Definition: MHO_SerializableObjectFactory.hh:68
virtual MHO_Serializable * BuildFromFileInterface(MHO_BinaryFileInterface &inter)
Builds an MHO_Serializable object from a file interface, which points to the underlying XClassType ob...
Definition: MHO_SerializableObjectFactory.hh:92
virtual ~MHO_SerializableObjectFactorySpecific()
Definition: MHO_SerializableObjectFactory.hh:71
virtual bool WriteToFileInterface(MHO_BinaryFileInterface &inter, const MHO_Serializable *object, const std::string &shortname="")
Writes an object to a binary file interface using its short name, with full knowledge of the underlyi...
Definition: MHO_SerializableObjectFactory.hh:127
virtual MHO_Serializable * Build()
Virtual function to build and return an instance of an MHO_Serializable which points to the underlyin...
Definition: MHO_SerializableObjectFactory.hh:79
MHO_SerializableObjectFactorySpecific()
Definition: MHO_SerializableObjectFactory.hh:70
Class MHO_SerializableObjectFactory.
Definition: MHO_SerializableObjectFactory.hh:23
virtual MHO_Serializable * BuildFromFileInterface(MHO_BinaryFileInterface &)
Builds an MHO_Serializable object from a given MHO_BinaryFileInterface.
Definition: MHO_SerializableObjectFactory.hh:43
MHO_SerializableObjectFactory()
Definition: MHO_SerializableObjectFactory.hh:25
virtual MHO_Serializable * Build()
Virtual function to build and return an instance of a MHO_Serializable object.
Definition: MHO_SerializableObjectFactory.hh:34
virtual ~MHO_SerializableObjectFactory()
Definition: MHO_SerializableObjectFactory.hh:26
virtual bool WriteToFileInterface(MHO_BinaryFileInterface &, const MHO_Serializable *, const std::string &shortname="")
Writes an object to a binary file interface using a short name.
Definition: MHO_SerializableObjectFactory.hh:54
Class MHO_Serializable.
Definition: MHO_Serializable.hh:26
Definition: MHO_ChannelLabeler.hh:17