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 pfile.read(
reinterpret_cast< char*
>(data_ptr), dsize *
sizeof(XValueType));
234 for(
size_t i = 0; i < dsize; i++)
241 virtual MHO_UUID DetermineTypeUUID()
const override
243 MHO_MD5HashGenerator gen;
248 return gen.GetDigestAsUUID();
266 #define DefTableContainers(TYPE) \
267 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int >; \
268 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Double >; \
269 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String = MHO_TableContainer< TYPE, MHO_AxisPack_String >; \
271 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int >; \
272 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double >; \
273 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String = MHO_TableContainer< TYPE, MHO_AxisPack_Int_String >; \
275 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int >; \
276 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double >; \
277 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String = MHO_TableContainer< TYPE, MHO_AxisPack_Double_String >; \
279 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int = MHO_TableContainer< TYPE, MHO_AxisPack_String_Int >; \
280 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double = MHO_TableContainer< TYPE, MHO_AxisPack_String_Double >; \
281 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String = MHO_TableContainer< TYPE, MHO_AxisPack_String_String >; \
283 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int >; \
284 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double >; \
285 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_String = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String >; \
287 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int >; \
288 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double = \
289 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double >; \
290 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String = \
291 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String >; \
293 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int >; \
294 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double = \
295 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double >; \
296 using MHO_TableContainer_##TYPE##_MHO_Int_AxisPack_String_String = \
297 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String >; \
299 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int >; \
300 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double = \
301 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double >; \
302 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String = \
303 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String >; \
305 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int = \
306 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int >; \
307 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double = \
308 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double >; \
309 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String = \
310 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String >; \
312 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int = \
313 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int >; \
314 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double = \
315 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double >; \
316 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String = \
317 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String >; \
319 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int >; \
320 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double = \
321 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double >; \
322 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String = \
323 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String >; \
325 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int = \
326 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int >; \
327 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double = \
328 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double >; \
329 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String = \
330 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String >; \
332 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int = \
333 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int >; \
334 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double = \
335 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double >; \
336 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String = \
337 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_String >; \
339 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int_Int = MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int_Int >; \
340 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int_Double = \
341 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int_Double >; \
342 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Int_String = \
343 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Int_String >; \
345 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double_Int = \
346 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double_Int >; \
347 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double_Double = \
348 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double_Double >; \
349 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_Double_String = \
350 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_Double_String >; \
352 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_String_Int = \
353 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String_Int >; \
354 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Int_String_Double = \
355 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String_Double >; \
356 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String = \
357 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Int_String_String >; \
359 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int_Int = \
360 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int_Int >; \
361 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int_Double = \
362 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int_Double >; \
363 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Int_String = \
364 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Int_String >; \
366 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double_Int = \
367 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double_Int >; \
368 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double_Double = \
369 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double_Double >; \
370 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_Double_String = \
371 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_Double_String >; \
373 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String_Int = \
374 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String_Int >; \
375 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String_Double = \
376 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String_Double >; \
377 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_Double_String_String = \
378 MHO_TableContainer< TYPE, MHO_AxisPack_Int_Double_String_String >; \
380 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int_Int = \
381 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int_Int >; \
382 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int_Double = \
383 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int_Double >; \
384 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Int_String = \
385 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Int_String >; \
387 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double_Int = \
388 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double_Int >; \
389 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double_Double = \
390 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double_Double >; \
391 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_Double_String = \
392 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_Double_String >; \
394 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String_Int = \
395 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String_Int >; \
396 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String_Double = \
397 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String_Double >; \
398 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Int_String_String_String = \
399 MHO_TableContainer< TYPE, MHO_AxisPack_Int_String_String_String >; \
401 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int_Int = \
402 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int_Int >; \
403 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int_Double = \
404 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int_Double >; \
405 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Int_String = \
406 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Int_String >; \
408 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double_Int = \
409 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double_Int >; \
410 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double_Double = \
411 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double_Double >; \
412 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_Double_String = \
413 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_Double_String >; \
415 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String_Int = \
416 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String_Int >; \
417 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String_Double = \
418 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String_Double >; \
419 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Int_String_String = \
420 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Int_String_String >; \
422 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int_Int = \
423 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int_Int >; \
424 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int_Double = \
425 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int_Double >; \
426 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Int_String = \
427 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Int_String >; \
429 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double_Int = \
430 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double_Int >; \
431 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double_Double = \
432 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double_Double >; \
433 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_Double_String = \
434 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_Double_String >; \
436 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String_Int = \
437 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String_Int >; \
438 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String_Double = \
439 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String_Double >; \
440 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_Double_String_String = \
441 MHO_TableContainer< TYPE, MHO_AxisPack_Double_Double_String_String >; \
443 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int_Int = \
444 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int_Int >; \
445 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int_Double = \
446 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int_Double >; \
447 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Int_String = \
448 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Int_String >; \
450 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double_Int = \
451 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double_Int >; \
452 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double_Double = \
453 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double_Double >; \
454 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_Double_String = \
455 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_Double_String >; \
457 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String_Int = \
458 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String_Int >; \
459 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String_Double = \
460 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String_Double >; \
461 using MHO_TableContainer_##TYPE##_MHO_AxisPack_Double_String_String_String = \
462 MHO_TableContainer< TYPE, MHO_AxisPack_Double_String_String_String >; \
464 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int_Int = \
465 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int_Int >; \
466 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int_Double = \
467 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int_Double >; \
468 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Int_String = \
469 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Int_String >; \
471 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double_Int = \
472 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double_Int >; \
473 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double_Double = \
474 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double_Double >; \
475 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_Double_String = \
476 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_Double_String >; \
478 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String_Int = \
479 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String_Int >; \
480 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String_Double = \
481 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String_Double >; \
482 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Int_String_String = \
483 MHO_TableContainer< TYPE, MHO_AxisPack_String_Int_String_String >; \
485 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int_Int = \
486 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int_Int >; \
487 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int_Double = \
488 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int_Double >; \
489 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Int_String = \
490 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Int_String >; \
492 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double_Int = \
493 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double_Int >; \
494 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double_Double = \
495 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double_Double >; \
496 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_Double_String = \
497 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_Double_String >; \
499 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String_Int = \
500 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String_Int >; \
501 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String_Double = \
502 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String_Double >; \
503 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_Double_String_String = \
504 MHO_TableContainer< TYPE, MHO_AxisPack_String_Double_String_String >; \
506 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int_Int = \
507 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int_Int >; \
508 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int_Double = \
509 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int_Double >; \
510 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Int_String = \
511 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Int_String >; \
513 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double_Int = \
514 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double_Int >; \
515 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double_Double = \
516 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double_Double >; \
517 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_Double_String = \
518 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_Double_String >; \
520 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String_Int = \
521 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_String_Int >; \
522 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String_Double = \
523 MHO_TableContainer< TYPE, MHO_AxisPack_String_String_String_Double >; \
524 using MHO_TableContainer_##TYPE##_MHO_AxisPack_String_String_String_String = \
525 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:264
double Double
Definition: MHO_AxisPack.hh:217
std::complex< double > ComplexD
Definition: MHO_TableContainer.hh:263
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