DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
ItemConversion Class Referenceabstract

#include <ItemConversion.hh>

Public Member Functions

virtual ~ItemConversion ()
size_t DataSize ()
std::string DataDescription ()
virtual void Convert (uint32_t src, void *dest)=0

Static Public Member Functions

static ItemConversion * FromString (std::string convstring)

Protected Member Functions

 ItemConversion ()
 ItemConversion (boost::unordered_map< std::string, std::string >)

Protected Attributes

size_t data_size
std::string data_description

Detailed Description

Definition at line 7 of file ItemConversion.hh.

Constructor & Destructor Documentation

◆ ItemConversion() [1/2]

ItemConversion::ItemConversion ( )
inlineprotected

Definition at line 11 of file ItemConversion.hh.

11{}

◆ ItemConversion() [2/2]

ItemConversion::ItemConversion ( boost::unordered_map< std::string, std::string > )
inlineprotected

Definition at line 12 of file ItemConversion.hh.

13{ }

◆ ~ItemConversion()

virtual ItemConversion::~ItemConversion ( )
inlinevirtual

Definition at line 15 of file ItemConversion.hh.

15{ }

Member Function Documentation

◆ Convert()

virtual void ItemConversion::Convert ( uint32_t src,
void * dest )
pure virtual

◆ DataDescription()

std::string ItemConversion::DataDescription ( )
inline

Definition at line 19 of file ItemConversion.hh.

19 {
20 return data_description;
21 }
std::string data_description

◆ DataSize()

size_t ItemConversion::DataSize ( )
inline

Definition at line 16 of file ItemConversion.hh.

16 {
17 return data_size;
18 }

◆ FromString()

ItemConversion * ItemConversion::FromString ( std::string convstring)
static

Definition at line 40 of file conversions.cpp.

41{
42 unordered_map<std::string, std::string> params;
43 int i = 0;
44 while (i < (int)convstring.size() && convstring[i] != ' ')
45 i++;
46 std::string fnname = std::string(convstring.c_str(), i);
47 while (i < (int)convstring.size()) {
48 while (i < (int)convstring.size() && convstring[i] == ' ')
49 i++;
50 int pair_start = i;
51 while (i < (int)convstring.size() && convstring[i] != ' ')
52 i++;
53 int pair_end = i;
54 int j = pair_start;
55 while (j < (int)convstring.size() && convstring[j] != '=')
56 j++;
57 std::string key = std::string(convstring.c_str(), pair_start, j - pair_start);
58 std::string value = std::string(convstring.c_str(), j + 1, pair_end - (j + 1));
59 params[key] = value;
60 }
61
62 // if (fnname==#name) return new itemconv::itemconv_##name(params);
63
64#define DEFINE_CONVERSION_CLASS(name, body) \
65 if (fnname == #name) { \
66 itemconv::itemconv_##name* c = new itemconv::itemconv_##name(); \
67 c->init(params); \
68 return c; \
69 }
71#undef DEFINE_CONVERSION_CLASS
72
73 return NULL;
74}

Member Data Documentation

◆ data_description

std::string ItemConversion::data_description
protected

Definition at line 10 of file ItemConversion.hh.

◆ data_size

size_t ItemConversion::data_size
protected

Definition at line 9 of file ItemConversion.hh.


The documentation for this class was generated from the following files: