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);
88 using XAxisPackType::resize_axis_pack;
96 virtual void Resize(
const std::size_t* dim)
override
99 resize_axis_pack(dim);
157 aData.StreamInData_V0(s);
173 aData.StreamOutData_V0(s);
176 msg_error(
"containers",
"error, cannot stream out MHO_TableContainer object with unknown version: "
183 template<
typename XStream >
void StreamOutData_V0(XStream& s)
const
186 s << static_cast< const MHO_Taggable& >(*
this);
188 for(
size_t i = 0; i < XAxisPackType::NAXES::value; i++)
190 s << (uint64_t)dims[i];
193 s << static_cast< const XAxisPackType& >(*
this);
196 std::size_t dsize = this->
GetSize();
197 auto data_ptr = this->
GetData();
198 for(
size_t i = 0; i < dsize; i++)
204 template<
typename XStream >
void StreamInData_V0(XStream& s)
210 std::size_t dims[XAxisPackType::NAXES::value];
211 for(
size_t i = 0; i < XAxisPackType::NAXES::value; i++)
223 auto fs_ptr =
dynamic_cast< MHO_FileStreamer*
>(&s);
224 std::size_t dsize = this->
GetSize();
225 auto data_ptr = this->
GetData();
226 if(fs_ptr !=
nullptr)
228 std::fstream& pfile = fs_ptr->GetStream();
229 std::size_t nbytes = dsize *
sizeof(XValueType);
230 pfile.read(
reinterpret_cast< char*
>(data_ptr), nbytes);
232 if(
static_cast< std::size_t
>(pfile.gcount()) != nbytes)
234 msg_error(
"containers",
"error reading MHO_TableContainer data block, expected "
235 << nbytes <<
" bytes but read " << pfile.gcount()
236 <<
"; file may be truncated or corrupt." << eom);
242 for(
size_t i = 0; i < dsize; i++)
249 virtual MHO_UUID DetermineTypeUUID()
const override
251 MHO_MD5HashGenerator gen;
256 return gen.GetDigestAsUUID();
274 #define DefTableContainers(TYPE) \
275 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int >; \
276 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Double >; \
277 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String = MHO_TableContainer< TYPE, MHO_AxisPack_String >; \
279 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int >; \
280 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double >; \
281 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String = MHO_TableContainer< TYPE, MHO_AxisPack_Int_String >; \
283 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int >; \
284 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double >; \
285 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String = MHO_TableContainer< TYPE, MHO_AxisPack_Double_String >; \
287 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int = MHO_TableContainer< TYPE, MHO_AxisPack_String_Int >; \
288 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double = MHO_TableContainer< TYPE, MHO_AxisPack_String_Double >; \
289 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String = MHO_TableContainer< TYPE, MHO_AxisPack_String_String >; \
291 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int >; \
292 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double >; \
293 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_String = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String >; \
295 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int >; \
296 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double = \
297 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double >; \
298 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String = \
299 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String >; \
301 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int >; \
302 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double = \
303 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double >; \
304 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String = \
305 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String >; \
307 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int >; \
308 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double = \
309 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double >; \
310 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String = \
311 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String >; \
313 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int = \
314 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int >; \
315 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double = \
316 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double >; \
317 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String = \
318 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String >; \
320 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int = \
321 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int >; \
322 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double = \
323 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double >; \
324 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String = \
325 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String >; \
327 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int >; \
328 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double = \
329 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double >; \
330 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String = \
331 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String >; \
333 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int = \
334 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int >; \
335 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double = \
336 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double >; \
337 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String = \
338 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String >; \
340 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int = \
341 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int >; \
342 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double = \
343 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double >; \
344 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String = \
345 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_String >; \
347 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int_Int >; \
348 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int_Double = \
349 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int_Double >; \
350 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int_String = \
351 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int_String >; \
353 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double_Int = \
354 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double_Int >; \
355 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double_Double = \
356 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double_Double >; \
357 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double_String = \
358 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double_String >; \
360 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_String_Int = \
361 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String_Int >; \
362 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_String_Double = \
363 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String_Double >; \
364 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_String_String = \
365 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String_String >; \
367 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int_Int = \
368 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int_Int >; \
369 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int_Double = \
370 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int_Double >; \
371 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int_String = \
372 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int_String >; \
374 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double_Int = \
375 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double_Int >; \
376 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double_Double = \
377 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double_Double >; \
378 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double_String = \
379 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double_String >; \
381 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String_Int = \
382 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String_Int >; \
383 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String_Double = \
384 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String_Double >; \
385 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String_String = \
386 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String_String >; \
388 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int_Int = \
389 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int_Int >; \
390 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int_Double = \
391 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int_Double >; \
392 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int_String = \
393 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int_String >; \
395 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double_Int = \
396 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double_Int >; \
397 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double_Double = \
398 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double_Double >; \
399 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double_String = \
400 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double_String >; \
402 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String_Int = \
403 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String_Int >; \
404 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String_Double = \
405 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String_Double >; \
406 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String_String = \
407 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String_String >; \
409 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int_Int = \
410 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int_Int >; \
411 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int_Double = \
412 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int_Double >; \
413 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int_String = \
414 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int_String >; \
416 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double_Int = \
417 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double_Int >; \
418 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double_Double = \
419 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double_Double >; \
420 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double_String = \
421 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double_String >; \
423 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String_Int = \
424 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String_Int >; \
425 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String_Double = \
426 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String_Double >; \
427 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String_String = \
428 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String_String >; \
430 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int_Int = \
431 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int_Int >; \
432 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int_Double = \
433 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int_Double >; \
434 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int_String = \
435 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int_String >; \
437 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double_Int = \
438 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double_Int >; \
439 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double_Double = \
440 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double_Double >; \
441 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double_String = \
442 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double_String >; \
444 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String_Int = \
445 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String_Int >; \
446 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String_Double = \
447 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String_Double >; \
448 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String_String = \
449 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String_String >; \
451 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int_Int = \
452 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int_Int >; \
453 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int_Double = \
454 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int_Double >; \
455 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int_String = \
456 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int_String >; \
458 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double_Int = \
459 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double_Int >; \
460 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double_Double = \
461 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double_Double >; \
462 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double_String = \
463 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double_String >; \
465 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String_Int = \
466 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String_Int >; \
467 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String_Double = \
468 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String_Double >; \
469 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String_String = \
470 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String_String >; \
472 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int_Int = \
473 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int_Int >; \
474 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int_Double = \
475 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int_Double >; \
476 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int_String = \
477 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int_String >; \
479 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double_Int = \
480 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double_Int >; \
481 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double_Double = \
482 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double_Double >; \
483 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double_String = \
484 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double_String >; \
486 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String_Int = \
487 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String_Int >; \
488 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String_Double = \
489 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String_Double >; \
490 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String_String = \
491 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String_String >; \
493 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int_Int = \
494 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int_Int >; \
495 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int_Double = \
496 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int_Double >; \
497 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int_String = \
498 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int_String >; \
500 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double_Int = \
501 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double_Int >; \
502 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double_Double = \
503 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double_Double >; \
504 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double_String = \
505 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double_String >; \
507 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String_Int = \
508 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String_Int >; \
509 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String_Double = \
510 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String_Double >; \
511 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String_String = \
512 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String_String >; \
514 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int_Int = \
515 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int_Int >; \
516 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int_Double = \
517 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int_Double >; \
518 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int_String = \
519 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int_String >; \
521 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double_Int = \
522 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double_Int >; \
523 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double_Double = \
524 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double_Double >; \
525 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double_String = \
526 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double_String >; \
528 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String_Int = \
529 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_String_Int >; \
530 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String_Double = \
531 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_String_Double >; \
532 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String_String = \
533 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_String_String >;
#define msg_error(xKEY, xCONTENT)
Definition: MHO_Message.hh:238
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:411
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:96
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:107
friend XStream & operator<<(XStream &s, const MHO_TableContainer &aData)
Definition: MHO_TableContainer.hh:167
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:135
friend XStream & operator>>(XStream &s, MHO_TableContainer &aData)
Definition: MHO_TableContainer.hh:149
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:114
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_AdhocFlagging.hh:18
int Int
Definition: MHO_AxisPack.hh:216
uint32_t MHO_ClassVersion
Definition: MHO_ClassIdentity.hh:22
std::complex< float > ComplexF
Definition: MHO_TableContainer.hh:272
double Double
Definition: MHO_AxisPack.hh:217
std::complex< double > ComplexD
Definition: MHO_TableContainer.hh:271
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