1 #ifndef MHO_TableContainer_HH__
2 #define MHO_TableContainer_HH__
31 template<
typename XValueType,
typename XAxisPackType >
79 uint64_t total_size = 0;
81 total_size += XAxisPackType::NAXES::value *
sizeof(uint64_t);
82 total_size += XAxisPackType::GetSerializedSize();
84 total_size += (this->
GetSize()) *
sizeof(XValueType);
89 using XAxisPackType::resize_axis_pack;
97 virtual void Resize(
const std::size_t* dim)
override
100 resize_axis_pack(dim);
158 aData.StreamInData_V0(s);
174 aData.StreamOutData_V0(s);
177 msg_error(
"containers",
"error, cannot stream out MHO_TableContainer object with unknown version: "
184 template<
typename XStream >
void StreamOutData_V0(XStream& s)
const
187 s << static_cast< const MHO_Taggable& >(*
this);
189 for(
size_t i = 0; i < XAxisPackType::NAXES::value; i++)
191 s << (uint64_t)dims[i];
194 s << static_cast< const XAxisPackType& >(*
this);
197 std::size_t dsize = this->
GetSize();
198 auto data_ptr = this->
GetData();
199 for(
size_t i = 0; i < dsize; i++)
205 template<
typename XStream >
void StreamInData_V0(XStream& s)
211 std::size_t dims[XAxisPackType::NAXES::value];
212 for(
size_t i = 0; i < XAxisPackType::NAXES::value; i++)
224 auto fs_ptr =
dynamic_cast< MHO_FileStreamer*
>(&s);
225 std::size_t dsize = this->
GetSize();
226 auto data_ptr = this->
GetData();
227 if(fs_ptr !=
nullptr)
229 std::fstream& pfile = fs_ptr->GetStream();
230 pfile.read(
reinterpret_cast< char*
>(data_ptr), dsize *
sizeof(XValueType));
235 for(
size_t i = 0; i < dsize; i++)
242 virtual MHO_UUID DetermineTypeUUID()
const override
244 MHO_MD5HashGenerator gen;
249 return gen.GetDigestAsUUID();
267 #define DefTableContainers(TYPE) \
268 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int >; \
269 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Double >; \
270 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String = MHO_TableContainer< TYPE, MHO_AxisPack_String >; \
272 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int >; \
273 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double >; \
274 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String = MHO_TableContainer< TYPE, MHO_AxisPack_Int_String >; \
276 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int >; \
277 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double >; \
278 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String = MHO_TableContainer< TYPE, MHO_AxisPack_Double_String >; \
280 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int = MHO_TableContainer< TYPE, MHO_AxisPack_String_Int >; \
281 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double = MHO_TableContainer< TYPE, MHO_AxisPack_String_Double >; \
282 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String = MHO_TableContainer< TYPE, MHO_AxisPack_String_String >; \
284 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int >; \
285 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double >; \
286 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_String = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String >; \
288 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int >; \
289 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double = \
290 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double >; \
291 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String = \
292 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String >; \
294 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int >; \
295 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double = \
296 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double >; \
297 using MHO_TableContainer_##TYPE##_MHO_Int_AxisPack_String_String = \
298 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String >; \
300 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int >; \
301 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double = \
302 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double >; \
303 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String = \
304 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String >; \
306 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int = \
307 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int >; \
308 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double = \
309 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double >; \
310 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String = \
311 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String >; \
313 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int = \
314 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int >; \
315 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double = \
316 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double >; \
317 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String = \
318 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String >; \
320 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int >; \
321 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double = \
322 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double >; \
323 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String = \
324 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String >; \
326 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int = \
327 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int >; \
328 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double = \
329 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double >; \
330 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String = \
331 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String >; \
333 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int = \
334 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int >; \
335 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double = \
336 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double >; \
337 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String = \
338 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_String >; \
340 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int_Int >; \
341 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int_Double = \
342 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int_Double >; \
343 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int_String = \
344 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int_String >; \
346 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double_Int = \
347 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double_Int >; \
348 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double_Double = \
349 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double_Double >; \
350 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double_String = \
351 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double_String >; \
353 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_String_Int = \
354 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String_Int >; \
355 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_String_Double = \
356 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String_Double >; \
357 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String = \
358 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String_String >; \
360 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int_Int = \
361 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int_Int >; \
362 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int_Double = \
363 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int_Double >; \
364 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int_String = \
365 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int_String >; \
367 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double_Int = \
368 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double_Int >; \
369 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double_Double = \
370 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double_Double >; \
371 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double_String = \
372 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double_String >; \
374 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String_Int = \
375 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String_Int >; \
376 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String_Double = \
377 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String_Double >; \
378 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String_String = \
379 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String_String >; \
381 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int_Int = \
382 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int_Int >; \
383 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int_Double = \
384 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int_Double >; \
385 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int_String = \
386 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int_String >; \
388 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double_Int = \
389 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double_Int >; \
390 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double_Double = \
391 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double_Double >; \
392 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double_String = \
393 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double_String >; \
395 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String_Int = \
396 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String_Int >; \
397 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String_Double = \
398 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String_Double >; \
399 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String_String = \
400 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String_String >; \
402 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int_Int = \
403 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int_Int >; \
404 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int_Double = \
405 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int_Double >; \
406 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int_String = \
407 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int_String >; \
409 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double_Int = \
410 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double_Int >; \
411 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double_Double = \
412 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double_Double >; \
413 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double_String = \
414 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double_String >; \
416 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String_Int = \
417 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String_Int >; \
418 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String_Double = \
419 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String_Double >; \
420 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String_String = \
421 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String_String >; \
423 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int_Int = \
424 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int_Int >; \
425 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int_Double = \
426 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int_Double >; \
427 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int_String = \
428 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int_String >; \
430 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double_Int = \
431 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double_Int >; \
432 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double_Double = \
433 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double_Double >; \
434 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double_String = \
435 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double_String >; \
437 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String_Int = \
438 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String_Int >; \
439 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String_Double = \
440 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String_Double >; \
441 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String_String = \
442 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String_String >; \
444 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int_Int = \
445 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int_Int >; \
446 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int_Double = \
447 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int_Double >; \
448 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int_String = \
449 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int_String >; \
451 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double_Int = \
452 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double_Int >; \
453 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double_Double = \
454 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double_Double >; \
455 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double_String = \
456 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double_String >; \
458 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String_Int = \
459 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String_Int >; \
460 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String_Double = \
461 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String_Double >; \
462 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String_String = \
463 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String_String >; \
465 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int_Int = \
466 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int_Int >; \
467 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int_Double = \
468 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int_Double >; \
469 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int_String = \
470 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int_String >; \
472 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double_Int = \
473 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double_Int >; \
474 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double_Double = \
475 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double_Double >; \
476 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double_String = \
477 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double_String >; \
479 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String_Int = \
480 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String_Int >; \
481 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String_Double = \
482 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String_Double >; \
483 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String_String = \
484 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String_String >; \
486 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int_Int = \
487 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int_Int >; \
488 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int_Double = \
489 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int_Double >; \
490 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int_String = \
491 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int_String >; \
493 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double_Int = \
494 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double_Int >; \
495 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double_Double = \
496 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double_Double >; \
497 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double_String = \
498 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double_String >; \
500 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String_Int = \
501 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String_Int >; \
502 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String_Double = \
503 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String_Double >; \
504 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String_String = \
505 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String_String >; \
507 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int_Int = \
508 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int_Int >; \
509 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int_Double = \
510 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int_Double >; \
511 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int_String = \
512 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int_String >; \
514 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double_Int = \
515 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double_Int >; \
516 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double_Double = \
517 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double_Double >; \
518 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double_String = \
519 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double_String >; \
521 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String_Int = \
522 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_String_Int >; \
523 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String_Double = \
524 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_String_Double >; \
525 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String_String = \
526 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_String_String >;
#define msg_error(xKEY, xCONTENT)
Definition: MHO_Message.hh:244
Class MHO_NDArrayWrapper.
Definition: MHO_NDArrayWrapper.hh:42
std::size_t GetSize() const
get the total size of the array
Definition: MHO_NDArrayWrapper.hh:119
XValueType * GetData()
access to underlying data pointer (unsafe)
Definition: MHO_NDArrayWrapper.hh:262
const std::size_t * GetDimensions() const
get the dimensions/shape of the array
Definition: MHO_NDArrayWrapper.hh:126
virtual void Resize(const std::size_t *dim)
Destroys contents and resizes using passed dimensions.
Definition: MHO_NDArrayWrapper.hh:83
index_type GetDimensionArray() const
Getter for dimension array.
Definition: MHO_NDArrayWrapper.hh:146
virtual void Copy(const MHO_NDArrayWrapper &rhs)
Definition: MHO_NDArrayWrapper.hh:301
Definition: MHO_Meta.hh:381
Class MHO_TableContainer.
Definition: MHO_TableContainer.hh:36
MHO_TableContainer(const MHO_TableContainer &obj)
Definition: MHO_TableContainer.hh:44
MHO_TableContainer(const std::size_t *dim)
Definition: MHO_TableContainer.hh:40
virtual void Resize(const std::size_t *dim) override
Resize the multidimensional array and axes according to given dimensions.
Definition: MHO_TableContainer.hh:97
virtual ~MHO_TableContainer()
Definition: MHO_TableContainer.hh:61
MHO_TableContainer()
Definition: MHO_TableContainer.hh:38
virtual MHO_ClassVersion GetVersion() const override
Getter for the class version.
Definition: MHO_TableContainer.hh:69
XAxisPackType * GetAxisPack()
access to axis pack type alone
Definition: MHO_TableContainer.hh:108
friend XStream & operator<<(XStream &s, const MHO_TableContainer &aData)
Definition: MHO_TableContainer.hh:168
MHO_TableContainer * Clone()
Clones entire table including contents and axes.
Definition: MHO_TableContainer.hh:52
MHO_TableContainer * CloneEmpty()
Clones table container shape with empty contents and axes.
Definition: MHO_TableContainer.hh:59
virtual void Copy(const MHO_TableContainer &rhs)
Definition: MHO_TableContainer.hh:136
friend XStream & operator>>(XStream &s, MHO_TableContainer &aData)
Definition: MHO_TableContainer.hh:150
virtual uint64_t GetSerializedSize() const override
Getter for serialized size.
Definition: MHO_TableContainer.hh:77
const XAxisPackType * GetAxisPack() const
Getter for axis pack.
Definition: MHO_TableContainer.hh:115
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_ChannelLabeler.hh:17
int Int
Definition: MHO_AxisPack.hh:219
uint32_t MHO_ClassVersion
Definition: MHO_ClassIdentity.hh:22
std::complex< float > ComplexF
Definition: MHO_TableContainer.hh:265
double Double
Definition: MHO_AxisPack.hh:220
std::complex< double > ComplexD
Definition: MHO_TableContainer.hh:264
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