1 #ifndef MHO_VectorContainer_HH__
2 #define MHO_VectorContainer_HH__
25 template<
typename XValueType >
99 uint64_t total_size = 0;
102 total_size +=
sizeof(uint64_t);
103 total_size += this->
GetSize() *
sizeof(XValueType);
114 aData.StreamInData_V0(s);
130 aData.StreamOutData_V0(s);
133 msg_error(
"containers",
"error, cannot stream out MHO_VectorContainer object with unknown version: "
146 template<
typename XStream >
void StreamOutData_V0(XStream& s)
const
148 s << static_cast< const MHO_Taggable& >(*
this);
149 uint64_t dsize = this->
GetSize();
150 s << (uint64_t)dsize;
151 auto data_ptr = this->
GetData();
152 for(
size_t i = 0; i < dsize; i++)
164 template<
typename XStream >
void StreamInData_V0(XStream& s)
167 size_t total_size[1];
170 auto data_ptr = this->
GetData();
171 for(
size_t i = 0; i < total_size[0]; i++)
177 virtual MHO_UUID DetermineTypeUUID()
const override
179 MHO_MD5HashGenerator gen;
184 return gen.GetDigestAsUUID();
196 uint64_t total_size = 0;
199 total_size +=
sizeof(uint64_t);
200 std::size_t dsize = this->GetSize();
201 auto data_ptr = this->GetData();
202 for(
size_t i = 0; i < dsize; i++)
204 total_size +=
sizeof(uint64_t);
205 total_size += data_ptr[i].size();
#define msg_error(xKEY, xCONTENT)
Definition: MHO_Message.hh:238
XValueType * GetData()
Getter for data.
Definition: MHO_NDArrayWrapper_1.hh:77
virtual void Resize(const std::size_t *dim)
Resize an externally managed array using provided dimensions.
Definition: MHO_NDArrayWrapper_1.hh:52
std::size_t GetSize() const
Getter for size.
Definition: MHO_NDArrayWrapper_1.hh:99
Class MHO_NDArrayWrapper.
Definition: MHO_NDArrayWrapper.hh:42
virtual void Copy(const MHO_NDArrayWrapper &rhs)
Definition: MHO_NDArrayWrapper.hh:301
Class MHO_Taggable.
Definition: MHO_Taggable.hh:26
MHO_Taggable()
Definition: MHO_Taggable.hh:28
virtual void CopyTags(const MHO_Taggable &rhs)
Copies tags from rhs to this instance if rhs is not empty and has valid object.
Definition: MHO_Taggable.hh:49
virtual uint64_t GetSerializedSize() const override
Getter for serialized size.
Definition: MHO_Taggable.hh:120
Definition: MHO_Meta.hh:414
MHO_VectorContainer - basis for for axis data objects in HOPS4, it is an 1-dimensional array object,...
Definition: MHO_VectorContainer.hh:27
virtual MHO_ClassVersion GetVersion() const override
Getter for version.
Definition: MHO_VectorContainer.hh:54
virtual void Copy(const MHO_VectorContainer &rhs)
Expensive copy for MHO_VectorContainer, pointers to exernally managed memory are not transferred,...
Definition: MHO_VectorContainer.hh:80
MHO_VectorContainer(const MHO_VectorContainer &obj)
Definition: MHO_VectorContainer.hh:36
virtual ~MHO_VectorContainer()
Definition: MHO_VectorContainer.hh:46
MHO_VectorContainer(std::size_t dim)
Definition: MHO_VectorContainer.hh:31
MHO_VectorContainer()
Definition: MHO_VectorContainer.hh:29
MHO_VectorContainer(std::size_t *dim)
Definition: MHO_VectorContainer.hh:33
virtual uint64_t GetSerializedSize() const override
Getter for serialized size.
Definition: MHO_VectorContainer.hh:62
friend XStream & operator>>(XStream &s, MHO_VectorContainer &aData)
Definition: MHO_VectorContainer.hh:107
MHO_VectorContainer * Clone()
Clones the current MHO_VectorContainer object.
Definition: MHO_VectorContainer.hh:44
friend XStream & operator<<(XStream &s, const MHO_VectorContainer &aData)
Definition: MHO_VectorContainer.hh:124
uint64_t ComputeSerializedSize() const
Calculates and returns the serialized size as a uint64_t.
Definition: MHO_VectorContainer.hh:97
Definition: MHO_AdhocFlagging.hh:18
uint32_t MHO_ClassVersion
Definition: MHO_ClassIdentity.hh:22
static void ClassVersionErrorMsg(const XClassType &obj, MHO_ClassVersion version)
Generates an error message for when an unknown or unsupported class version is encountered.
Definition: MHO_ClassIdentity.hh:112
static std::string ClassName()
Returns the class name as a string.
Definition: MHO_ClassIdentity.hh:51
static void SetUnknown(XStreamType &)
Setter for unknown.
Definition: MHO_FileStreamer.hh:214