ATLAS Offline Software
Loading...
Searching...
No Matches
AlgHelpers.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4#include "AlgHelpers.h"
5
6#include <stdexcept>
7
8#define CHECK_TYPE(string, target) \
9 if (string == #target) return Primitive::Type::target
10Primitive::Type getPrimitiveType(const std::string& name) {
11 CHECK_TYPE(name, PRECISION_CUSTOM);
12 CHECK_TYPE(name, CUSTOM);
13 CHECK_TYPE(name, UCHAR);
14 CHECK_TYPE(name, CHAR);
15 CHECK_TYPE(name, USHORT);
16 CHECK_TYPE(name, SHORT);
17 CHECK_TYPE(name, UINT);
18 CHECK_TYPE(name, INT);
19 CHECK_TYPE(name, ULONG);
20 CHECK_TYPE(name, LONG);
21 CHECK_TYPE(name, ULL);
22 CHECK_TYPE(name, LL);
23 CHECK_TYPE(name, HALF);
24 CHECK_TYPE(name, FLOAT);
25 CHECK_TYPE(name, DOUBLE);
26 CHECK_TYPE(name, UINT2UCHAR);
27 CHECK_TYPE(name, INT2CHAR);
28 CHECK_TYPE(name, UINT2USHORT);
29 CHECK_TYPE(name, INT2SHORT);
30 CHECK_TYPE(name, UL2ULL);
31 throw std::domain_error("unknown type " + name);
32}
33#undef CHECK_TYPE
34
35#define CHECK_FORMAT(string, target) \
36if (string == #target) return IParticleWriterConfig::ArrayFormat::target
38 CHECK_FORMAT(name, AWKWARD);
39 CHECK_FORMAT(name, FLAT);
40 CHECK_FORMAT(name, PADDED);
41 throw std::domain_error("unknown format " + name);
42}
43
44
#define CHECK_TYPE(string, target)
Definition AlgHelpers.cxx:8
Primitive::Type getPrimitiveType(const std::string &name)
IParticleWriterConfig::ArrayFormat getArrayFormat(const std::string &name)
#define CHECK_FORMAT(string, target)