1 #ifndef MHO_VectorContainer_HH__
2 #define MHO_VectorContainer_HH__
26 template<
typename XValueType >
101 uint64_t total_size = 0;
104 total_size +=
sizeof(uint64_t);
105 total_size += this->
GetSize() *
sizeof(XValueType);
116 aData.StreamInData_V0(s);
132 aData.StreamOutData_V0(s);
135 msg_error(
"containers",
"error, cannot stream out MHO_VectorContainer object with unknown version: "
148 template<
typename XStream >
void StreamOutData_V0(XStream& s)
const
150 s << static_cast< const MHO_Taggable& >(*
this);
151 uint64_t dsize = this->
GetSize();
152 s << (uint64_t)dsize;
153 auto data_ptr = this->
GetData();
154 for(
size_t i = 0; i < dsize; i++)
166 template<
typename XStream >
void StreamInData_V0(XStream& s)
169 size_t total_size[1];
172 auto data_ptr = this->
GetData();
173 for(
size_t i = 0; i < total_size[0]; i++)
179 virtual MHO_UUID DetermineTypeUUID()
const override
181 MHO_MD5HashGenerator gen;
186 return gen.GetDigestAsUUID();
199 uint64_t total_size = 0;
202 total_size +=
sizeof(uint64_t);
203 std::size_t dsize = this->GetSize();
204 auto data_ptr = this->GetData();
205 for(
size_t i = 0; i < dsize; i++)
207 total_size +=
sizeof(uint64_t);
208 total_size += data_ptr[i].size();
#define msg_error(xKEY, xCONTENT)
Definition: MHO_Message.hh:244
XValueType * GetData()
Getter for data.
Definition: MHO_NDArrayWrapper_1.hh:85
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:107
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:384
MHO_VectorContainer - basis for for axis data objects in HOPS4, it is an 1-dimensional array object,...
Definition: MHO_VectorContainer.hh:28
virtual MHO_ClassVersion GetVersion() const override
Getter for version.
Definition: MHO_VectorContainer.hh:55
virtual void Copy(const MHO_VectorContainer &rhs)
Expensive copy for MHO_VectorContainer, pointers to exernally managed memory are not transferred,...
Definition: MHO_VectorContainer.hh:82
MHO_VectorContainer(const MHO_VectorContainer &obj)
Definition: MHO_VectorContainer.hh:37
virtual ~MHO_VectorContainer()
Definition: MHO_VectorContainer.hh:47
MHO_VectorContainer(std::size_t dim)
Definition: MHO_VectorContainer.hh:32
MHO_VectorContainer()
Definition: MHO_VectorContainer.hh:30
MHO_VectorContainer(std::size_t *dim)
Definition: MHO_VectorContainer.hh:34
virtual uint64_t GetSerializedSize() const override
Getter for serialized size.
Definition: MHO_VectorContainer.hh:63
friend XStream & operator>>(XStream &s, MHO_VectorContainer &aData)
Definition: MHO_VectorContainer.hh:109
MHO_VectorContainer * Clone()
Clones the current MHO_VectorContainer object.
Definition: MHO_VectorContainer.hh:45
friend XStream & operator<<(XStream &s, const MHO_VectorContainer &aData)
Definition: MHO_VectorContainer.hh:126
uint64_t ComputeSerializedSize() const
Calculates and returns the serialized size as a uint64_t.
Definition: MHO_VectorContainer.hh:99
Definition: MHO_ChannelLabeler.hh:17
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:99
static std::string ClassName()
Returns the class name as a string.
Definition: MHO_ClassIdentity.hh:36
static void SetUnknown(XStreamType &)
Setter for unknown.
Definition: MHO_FileStreamer.hh:215