Go to the documentation of this file.
22 #ifndef __IOobject_hpp__
23 #define __IOobject_hpp__
59 template<
typename dataType>
69 template<
typename... Args,
70 typename = std::enable_if_t<!std::is_constructible<
object_t, Args&&...>::value>>
73 data_(std::forward<Args>(args)...)
85 return makeUnique<object_t>(*
this);
90 return data_.typeName();
95 return data_.read(is);
100 return data_.write(os);
140 template<
typename T,
typename... Args>
144 template<
typename T,
typename... Args>
166 bool read(
bool rdHdr =
true);
184 #endif //__IOobject_hpp__
virtual bool read_object_t(iIstream &is)=0
object_t(const dataType &data)
virtual uniquePtr< iObject > clone() const =0
object_t(Args &&... args)
IOobject(const objectFile &objf, const repository *owner, uniquePtr< iObject > &&obj)
virtual word typeName() const =0
virtual uniquePtr< iObject > clone() const
bool isObjectValid() const
uniquePtr< iObject > object_
static auto make_object_t(Args &&... args)
virtual bool read_object_t(iIstream &is)
virtual bool write_object_t(iOstream &os) const
bool read(bool rdHdr=true)
virtual word typeName() const
static auto make(const objectFile &objf, Args &&... args)
virtual ~iObject()=default
virtual bool write_object_t(iOstream &os) const =0