DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::oks::OksData Struct Reference

the structure to pass common parameters to various read() methods of OksData and OksObject class More...

#include <object.hpp>

Collaboration diagram for dunedaq::oks::OksData:
[legend]

Classes

union  Data

Public Types

enum  Type {
  unknown_type = 0 , s8_int_type = 1 , u8_int_type = 2 , s16_int_type = 3 ,
  u16_int_type = 4 , s32_int_type = 5 , u32_int_type = 6 , s64_int_type = 7 ,
  u64_int_type = 8 , float_type = 9 , double_type = 10 , bool_type = 11 ,
  class_type = 12 , object_type = 13 , date_type = 14 , time_type = 15 ,
  string_type = 16 , list_type = 17 , uid_type = 18 , uid2_type = 19 ,
  enum_type = 20
}
typedef std::list< OksData *, boost::fast_pool_allocator< OksData * > > List

Public Member Functions

 OksData ()
 OksData (int8_t c)
 OksData (uint8_t c)
 OksData (int16_t i)
 OksData (uint16_t i)
 OksData (int32_t i)
 OksData (uint32_t i)
 OksData (int64_t i)
 OksData (uint64_t i)
 OksData (const float &f)
 OksData (const double &d)
 OksData (bool b)
 OksData (boost::gregorian::date d)
 OksData (boost::posix_time::ptime t)
 OksData (OksString *s)
 OksData (const char *s)
 OksData (const std::string &s)
 OksData (const OksString &s)
 OksData (const char *s, size_t len, const OksAttribute *a)
 OksData (const std::string &s, const OksAttribute *a)
 OksData (const OksString &s, const OksAttribute *a)
 OksData (const OksClass *c)
 OksData (List *l)
 OksData (OksObject *o)
 OksData (const OksClass *c, const char *o)
 OksData (const OksClass *c, const OksString &o)
 OksData (const std::string &c, const std::string &o)
 ~OksData ()
void Clear ()
void Clear2 ()
void Set (int8_t c)
void Set (uint8_t c)
void Set (int16_t i)
void Set (uint16_t i)
void Set (int32_t i)
void Set (uint32_t i)
void Set (int64_t i)
void Set (uint64_t i)
void Set (const float &f)
void Set (const double &d)
void Set (bool b)
void SetFast (boost::gregorian::date d)
void SetFast (boost::posix_time::ptime t)
void Set (boost::gregorian::date d)
void Set (boost::posix_time::ptime t)
void Set (OksString *s)
void Set (const char *s)
void Set (const std::string &s)
void Set (const OksString &s)
void Set (const OksClass *c)
void SetE (OksString *s, const OksAttribute *a)
void SetE (const char *s, size_t len, const OksAttribute *a)
void SetE (const std::string &s, const OksAttribute *a)
void SetE (const OksAttribute *a)
void SetE (const OksString &s, const OksAttribute *a)
void Set (List *l)
void Set (OksObject *o)
void Set (const OksClass *c, const OksString &s)
void Set (const OksClass *c, OksString *s)
void Set (const OksString &c, const OksString &s)
void Set (OksString *c, OksString *s)
void ReadFrom (const char *, Type, const OksAttribute *)
void ReadFrom (const std::string &, const OksAttribute *)
void SetNullValue (const OksAttribute *a)
void SetValue (const char *s, const OksAttribute *a)
void SetValues (const char *, const OksAttribute *a)
void ReadFrom (const OksRelationship *) noexcept
void WriteTo (OksXmlOutputStream &, bool) const
void WriteTo (OksXmlOutputStream &) const
void ConvertTo (OksData *, const OksRelationship *) const
boost::gregorian::date date () const noexcept
boost::posix_time::ptime time () const noexcept
void cvt (OksData *to, const OksAttribute *attr) const
 Convert data to new type.
std::string str (int base=0) const
std::string str (const OksKernel *) const
void check_range (const OksAttribute *a) const
 Check range of data.
void set_init_value (const OksAttribute *attr, bool skip_init)
 Set value defined by initial value of attribute.
OksDataoperator= (const OksData &d)
 OksData (const OksData &d)
bool operator== (const OksData &) const
bool operator!= (const OksData &) const
bool operator<= (const OksData &) const
bool operator>= (const OksData &) const
bool operator< (const OksData &) const
bool operator> (const OksData &) const
void * operator new (size_t)
void operator delete (void *ptr)
void sort (bool ascending=true)

Static Public Member Functions

static bool is_object (Type t)

Public Attributes

enum dunedaq::oks::OksData::Type type
union dunedaq::oks::OksData::Data data

Private Member Functions

void copy (const OksData &)
bool is_le (const OksData &) const noexcept
bool is_ge (const OksData &) const noexcept
bool is_l (const OksData &) const noexcept
bool is_g (const OksData &) const noexcept
void read (const oks::ReadFileParams &, const OksAttribute *, int32_t)
 private methods which can be used by OksObject class only
void read (const oks::ReadFileParams &, const OksAttribute *)
void read (const OksAttribute *, const OksXmlValue &)
void read (const OksAttribute *, const oks::ReadFileParams &)
void read (const oks::ReadFileParams &, const OksRelationship *, int32_t)
void read (const oks::ReadFileParams &, const OksRelationship *)
void read (const OksRelationship *, const OksXmlRelValue &)
void read (const OksRelationship *, const oks::ReadFileParams &)
 OksData (const oks::ReadFileParams &params, const OksAttribute *a, int32_t n)
 OksData (const oks::ReadFileParams &params, const OksAttribute *a)
 OksData (const OksAttribute *a, const OksXmlValue &value)
 OksData (const OksAttribute *a, const oks::ReadFileParams &params)
 OksData (const oks::ReadFileParams &params, const OksRelationship *r, int32_t n)
 OksData (const oks::ReadFileParams &params, const OksRelationship *r)
 OksData (const OksRelationship *r, const OksXmlRelValue &value)
 OksData (const OksRelationship *r, const oks::ReadFileParams &params)
void WriteTo (OksXmlOutputStream &, OksKernel *, OksAliasTable *, bool, bool) const
bool IsConsistent (const OksRelationship *r, const OksObject *o, const char *msg)
const std::string & __oid () const
const std::string & __cn () const

Friends

class OksObject
class OksKernel
std::ostream & operator<< (std::ostream &, const OksData &)

Detailed Description

the structure to pass common parameters to various read() methods of OksData and OksObject class

Struct OKS data.

The struct OksData is used to present OKS data types (the type is unknown before run-time) Members: enumeration 'type' is used to define data type in run-time union 'data' is used to represent such type

Definition at line 454 of file object.hpp.

Member Typedef Documentation

◆ List

typedef std::list<OksData *, boost::fast_pool_allocator<OksData *> > dunedaq::oks::OksData::List

Definition at line 460 of file object.hpp.

Member Enumeration Documentation

◆ Type

Enumerator
unknown_type 
s8_int_type 
u8_int_type 
s16_int_type 
u16_int_type 
s32_int_type 
u32_int_type 
s64_int_type 
u64_int_type 
float_type 
double_type 
bool_type 
class_type 
object_type 
date_type 
time_type 
string_type 
list_type 
uid_type 
uid2_type 
enum_type 

Definition at line 462 of file object.hpp.

462 {
463 unknown_type = 0,
464 s8_int_type = 1,
465 u8_int_type = 2,
466 s16_int_type = 3,
467 u16_int_type = 4,
468 s32_int_type = 5,
469 u32_int_type = 6,
470 s64_int_type = 7,
471 u64_int_type = 8,
472 float_type = 9,
473 double_type = 10,
474 bool_type = 11,
475 class_type = 12,
476 object_type = 13,
477 date_type = 14,
478 time_type = 15,
479 string_type = 16,
480 list_type = 17,
481 uid_type = 18,
482 uid2_type = 19,
483 enum_type = 20
484 } type;
enum dunedaq::oks::OksData::Type type

Constructor & Destructor Documentation

◆ OksData() [1/36]

dunedaq::oks::OksData::OksData ( )
inline

Definition at line 515 of file object.hpp.

515{Clear2();}

◆ OksData() [2/36]

dunedaq::oks::OksData::OksData ( int8_t c)
inline

Definition at line 516 of file object.hpp.

516{Clear2(); Set(c);}
void Set(int8_t c)
Definition object.hpp:548

◆ OksData() [3/36]

dunedaq::oks::OksData::OksData ( uint8_t c)
inline

Definition at line 517 of file object.hpp.

517{Clear2(); Set(c);}

◆ OksData() [4/36]

dunedaq::oks::OksData::OksData ( int16_t i)
inline

Definition at line 518 of file object.hpp.

518{Clear2(); Set(i);}

◆ OksData() [5/36]

dunedaq::oks::OksData::OksData ( uint16_t i)
inline

Definition at line 519 of file object.hpp.

519{Clear2(); Set(i);}

◆ OksData() [6/36]

dunedaq::oks::OksData::OksData ( int32_t i)
inline

Definition at line 520 of file object.hpp.

520{Clear2(); Set(i);}

◆ OksData() [7/36]

dunedaq::oks::OksData::OksData ( uint32_t i)
inline

Definition at line 521 of file object.hpp.

521{Clear2(); Set(i);}

◆ OksData() [8/36]

dunedaq::oks::OksData::OksData ( int64_t i)
inline

Definition at line 522 of file object.hpp.

522{Clear2(); Set(i);}

◆ OksData() [9/36]

dunedaq::oks::OksData::OksData ( uint64_t i)
inline

Definition at line 523 of file object.hpp.

523{Clear2(); Set(i);}

◆ OksData() [10/36]

dunedaq::oks::OksData::OksData ( const float & f)
inline

Definition at line 524 of file object.hpp.

524{Clear2(); Set(f);}

◆ OksData() [11/36]

dunedaq::oks::OksData::OksData ( const double & d)
inline

Definition at line 525 of file object.hpp.

525{Clear2(); Set(d);}

◆ OksData() [12/36]

dunedaq::oks::OksData::OksData ( bool b)
inline

Definition at line 526 of file object.hpp.

526{Clear2(); Set(b);}

◆ OksData() [13/36]

dunedaq::oks::OksData::OksData ( boost::gregorian::date d)
inline

Definition at line 527 of file object.hpp.

527{Clear2(); Set(d);}

◆ OksData() [14/36]

dunedaq::oks::OksData::OksData ( boost::posix_time::ptime t)
inline

Definition at line 528 of file object.hpp.

528{Clear2(); Set(t);}

◆ OksData() [15/36]

dunedaq::oks::OksData::OksData ( OksString * s)
inline

Definition at line 529 of file object.hpp.

529{Clear2(); Set(s);}

◆ OksData() [16/36]

dunedaq::oks::OksData::OksData ( const char * s)
inline

Definition at line 530 of file object.hpp.

530{Clear2(); Set(s);}

◆ OksData() [17/36]

dunedaq::oks::OksData::OksData ( const std::string & s)
inline

Definition at line 531 of file object.hpp.

531{Clear2(); Set(s);}

◆ OksData() [18/36]

dunedaq::oks::OksData::OksData ( const OksString & s)
inline

Definition at line 532 of file object.hpp.

532{Clear2(); Set(s);}

◆ OksData() [19/36]

dunedaq::oks::OksData::OksData ( const char * s,
size_t len,
const OksAttribute * a )
inline

Definition at line 533 of file object.hpp.

533{Clear2(); SetE(s,len,a);}
void SetE(OksString *s, const OksAttribute *a)

◆ OksData() [20/36]

dunedaq::oks::OksData::OksData ( const std::string & s,
const OksAttribute * a )
inline

Definition at line 534 of file object.hpp.

534{Clear2(); SetE(s,a);}

◆ OksData() [21/36]

dunedaq::oks::OksData::OksData ( const OksString & s,
const OksAttribute * a )
inline

Definition at line 535 of file object.hpp.

535{Clear2(); SetE(s,a);}

◆ OksData() [22/36]

dunedaq::oks::OksData::OksData ( const OksClass * c)
inline

Definition at line 536 of file object.hpp.

536{Clear2(); Set(c);}

◆ OksData() [23/36]

dunedaq::oks::OksData::OksData ( List * l)
inline

Definition at line 537 of file object.hpp.

537{Clear2(); Set(l);}

◆ OksData() [24/36]

dunedaq::oks::OksData::OksData ( OksObject * o)
inline

Definition at line 538 of file object.hpp.

538{Clear2(); Set(o);}

◆ OksData() [25/36]

dunedaq::oks::OksData::OksData ( const OksClass * c,
const char * o )
inline

Definition at line 539 of file object.hpp.

539{Clear(); Set(c, o);}

◆ OksData() [26/36]

dunedaq::oks::OksData::OksData ( const OksClass * c,
const OksString & o )
inline

Definition at line 540 of file object.hpp.

540{Clear(); Set(c, o);}

◆ OksData() [27/36]

dunedaq::oks::OksData::OksData ( const std::string & c,
const std::string & o )
inline

Definition at line 541 of file object.hpp.

541{Clear2(); Set(c, o);}

◆ ~OksData()

dunedaq::oks::OksData::~OksData ( )
inline

Definition at line 543 of file object.hpp.

543{Clear();}

◆ OksData() [28/36]

dunedaq::oks::OksData::OksData ( const OksData & d)
inline

Definition at line 687 of file object.hpp.

688 {
689 if(&d != this) {
690 copy(d);
691 }
692 }
void copy(const OksData &)

◆ OksData() [29/36]

dunedaq::oks::OksData::OksData ( const oks::ReadFileParams & params,
const OksAttribute * a,
int32_t n )
inlineprivate

Definition at line 732 of file object.hpp.

732{Clear2(); read(params, a, n);}
void read(const oks::ReadFileParams &, const OksAttribute *, int32_t)
private methods which can be used by OksObject class only

◆ OksData() [30/36]

dunedaq::oks::OksData::OksData ( const oks::ReadFileParams & params,
const OksAttribute * a )
inlineprivate

Definition at line 733 of file object.hpp.

733{Clear2(); read(params, a);}

◆ OksData() [31/36]

dunedaq::oks::OksData::OksData ( const OksAttribute * a,
const OksXmlValue & value )
inlineprivate

Definition at line 734 of file object.hpp.

734{Clear2(); read(a, value);}

◆ OksData() [32/36]

dunedaq::oks::OksData::OksData ( const OksAttribute * a,
const oks::ReadFileParams & params )
inlineprivate

Definition at line 735 of file object.hpp.

735{Clear2(); read(a, params);}

◆ OksData() [33/36]

dunedaq::oks::OksData::OksData ( const oks::ReadFileParams & params,
const OksRelationship * r,
int32_t n )
inlineprivate

Definition at line 737 of file object.hpp.

737{Clear2(); read(params, r, n);}

◆ OksData() [34/36]

dunedaq::oks::OksData::OksData ( const oks::ReadFileParams & params,
const OksRelationship * r )
inlineprivate

Definition at line 738 of file object.hpp.

738{Clear2(); read(params, r);}

◆ OksData() [35/36]

dunedaq::oks::OksData::OksData ( const OksRelationship * r,
const OksXmlRelValue & value )
inlineprivate

Definition at line 739 of file object.hpp.

739{Clear2(); read(r, value);}

◆ OksData() [36/36]

dunedaq::oks::OksData::OksData ( const OksRelationship * r,
const oks::ReadFileParams & params )
inlineprivate

Definition at line 740 of file object.hpp.

740{Clear2(); read(r, params);}

Member Function Documentation

◆ __cn()

const std::string & dunedaq::oks::OksData::__cn ( ) const
private

◆ __oid()

const std::string & dunedaq::oks::OksData::__oid ( ) const
private

◆ check_range()

void dunedaq::oks::OksData::check_range ( const OksAttribute * a) const

Check range of data.

The method checks that the data matches to the range. If the data is out of range, the oks::AttributeRangeError exception is thrown. If definition of range is bad, then the oks::AttributeReadError exception is thrown.

Parameters
aattribute defining the range (UML syntax, e.g. "A,B,C" or "1..10" or "*..99")
Exceptions
oks::AttributeRangeErroror oks::AttributeReadError is thrown in case of problems.

◆ Clear()

void dunedaq::oks::OksData::Clear ( )

◆ Clear2()

void dunedaq::oks::OksData::Clear2 ( )
inline

Definition at line 546 of file object.hpp.

◆ ConvertTo()

void dunedaq::oks::OksData::ConvertTo ( OksData * ,
const OksRelationship *  ) const

◆ copy()

void dunedaq::oks::OksData::copy ( const OksData & )
private

◆ cvt()

void dunedaq::oks::OksData::cvt ( OksData * to,
const OksAttribute * attr ) const

Convert data to new type.

The method converts this data to the new data using type defined by attribute parameter. A single-value can be converted to multi-value conta4ining this single item. A multi-value can be converted to single-value using first item from the multi-value.

If data cannot be converted, then the oks::AttributeReadError exception is thrown.

Parameters
toout parameter (new data containing converted value)
attrpointer to OKS kernel (required to read class_type values)
Exceptions
oks::AttributeReadErroris thrown in case of problems.

◆ date()

boost::gregorian::date dunedaq::oks::OksData::date ( ) const
noexcept

◆ is_g()

bool dunedaq::oks::OksData::is_g ( const OksData & ) const
privatenoexcept

◆ is_ge()

bool dunedaq::oks::OksData::is_ge ( const OksData & ) const
privatenoexcept

◆ is_l()

bool dunedaq::oks::OksData::is_l ( const OksData & ) const
privatenoexcept

◆ is_le()

bool dunedaq::oks::OksData::is_le ( const OksData & ) const
privatenoexcept

◆ is_object()

bool dunedaq::oks::OksData::is_object ( Type t)
inlinestatic

Definition at line 706 of file object.hpp.

707 {
708 return (t == object_type || t == uid_type || t == uid2_type);
709 }

◆ IsConsistent()

bool dunedaq::oks::OksData::IsConsistent ( const OksRelationship * r,
const OksObject * o,
const char * msg )
private

◆ operator delete()

void dunedaq::oks::OksData::operator delete ( void * ptr)
inline

Definition at line 702 of file object.hpp.

702{boost::fast_pool_allocator<OksData>::deallocate(reinterpret_cast<OksData*>(ptr));}

◆ operator new()

void * dunedaq::oks::OksData::operator new ( size_t )
inline

Definition at line 701 of file object.hpp.

701{return boost::fast_pool_allocator<OksData>::allocate();}

◆ operator!=()

bool dunedaq::oks::OksData::operator!= ( const OksData & ) const

◆ operator<()

bool dunedaq::oks::OksData::operator< ( const OksData & ) const

◆ operator<=()

bool dunedaq::oks::OksData::operator<= ( const OksData & ) const

◆ operator=()

OksData & dunedaq::oks::OksData::operator= ( const OksData & d)
inline

Definition at line 677 of file object.hpp.

678 {
679 if(&d != this) {
680 Clear();
681 copy(d);
682 }
683
684 return *this;
685 }

◆ operator==()

bool dunedaq::oks::OksData::operator== ( const OksData & ) const

◆ operator>()

bool dunedaq::oks::OksData::operator> ( const OksData & ) const

◆ operator>=()

bool dunedaq::oks::OksData::operator>= ( const OksData & ) const

◆ read() [1/8]

void dunedaq::oks::OksData::read ( const oks::ReadFileParams & ,
const OksAttribute *  )
private

◆ read() [2/8]

void dunedaq::oks::OksData::read ( const oks::ReadFileParams & ,
const OksAttribute * ,
int32_t  )
private

private methods which can be used by OksObject class only

◆ read() [3/8]

void dunedaq::oks::OksData::read ( const oks::ReadFileParams & ,
const OksRelationship *  )
private

◆ read() [4/8]

void dunedaq::oks::OksData::read ( const oks::ReadFileParams & ,
const OksRelationship * ,
int32_t  )
private

◆ read() [5/8]

void dunedaq::oks::OksData::read ( const OksAttribute * ,
const oks::ReadFileParams &  )
private

◆ read() [6/8]

void dunedaq::oks::OksData::read ( const OksAttribute * ,
const OksXmlValue &  )
private

◆ read() [7/8]

void dunedaq::oks::OksData::read ( const OksRelationship * ,
const oks::ReadFileParams &  )
private

◆ read() [8/8]

void dunedaq::oks::OksData::read ( const OksRelationship * ,
const OksXmlRelValue &  )
private

◆ ReadFrom() [1/3]

void dunedaq::oks::OksData::ReadFrom ( const char * s,
Type t,
const OksAttribute * a )
inline

Read from string using non multi-value type

Exceptions
oks::AttributeReadErroris thrown in case of problems.

Definition at line 752 of file object.hpp.

753{
754 Clear();
755 type = t;
756 SetValue(s, a);
757}
void SetValue(const char *s, const OksAttribute *a)

◆ ReadFrom() [2/3]

void dunedaq::oks::OksData::ReadFrom ( const OksRelationship * )
noexcept

Create emtpy list or empty uid2

◆ ReadFrom() [3/3]

void dunedaq::oks::OksData::ReadFrom ( const std::string & s,
const OksAttribute * a )
inline

Read from string using non multi-value type

Exceptions
oks::AttributeReadErroris thrown in case of problems.

Definition at line 710 of file attribute.hpp.

711{
713 data.STRING = new OksString(s);
714 else if (type == OksData::enum_type)
715 data.ENUMERATION = a->get_enum_value(s);
716 else
717 SetValue(s.c_str(), a);
718}
union dunedaq::oks::OksData::Data data

◆ Set() [1/24]

void dunedaq::oks::OksData::Set ( bool b)
inline

Definition at line 558 of file object.hpp.

558{Clear(); type = bool_type; data.BOOL = b;}

◆ Set() [2/24]

void dunedaq::oks::OksData::Set ( boost::gregorian::date d)
inline

Definition at line 561 of file object.hpp.

561{Clear(); type = date_type; SetFast(d);}
void SetFast(boost::gregorian::date d)

◆ Set() [3/24]

void dunedaq::oks::OksData::Set ( boost::posix_time::ptime t)
inline

Definition at line 562 of file object.hpp.

562{Clear(); type = time_type; SetFast(t);}

◆ Set() [4/24]

void dunedaq::oks::OksData::Set ( const char * s)
inline

Definition at line 564 of file object.hpp.

564{Clear(); type = string_type; data.STRING = new OksString(s);}

◆ Set() [5/24]

void dunedaq::oks::OksData::Set ( const double & d)
inline

Definition at line 557 of file object.hpp.

◆ Set() [6/24]

void dunedaq::oks::OksData::Set ( const float & f)
inline

Definition at line 556 of file object.hpp.

◆ Set() [7/24]

void dunedaq::oks::OksData::Set ( const OksClass * c)
inline

Definition at line 567 of file object.hpp.

◆ Set() [8/24]

void dunedaq::oks::OksData::Set ( const OksClass * c,
const OksString & s )
inline

Definition at line 575 of file object.hpp.

575{Clear(); type = uid_type; data.UID.class_id = c; data.UID.object_id = new OksString(s);}

◆ Set() [9/24]

void dunedaq::oks::OksData::Set ( const OksClass * c,
OksString * s )
inline

Definition at line 576 of file object.hpp.

576{Clear(); type = uid_type; data.UID.class_id = c; data.UID.object_id = s;}

◆ Set() [10/24]

void dunedaq::oks::OksData::Set ( const OksString & c,
const OksString & s )
inline

Definition at line 577 of file object.hpp.

577{Clear(); type = uid2_type; data.UID2.class_id = new OksString(c); data.UID2.object_id = new OksString(s);}

◆ Set() [11/24]

void dunedaq::oks::OksData::Set ( const OksString & s)
inline

Definition at line 566 of file object.hpp.

566{Clear(); type = string_type; data.STRING = new OksString(s);}

◆ Set() [12/24]

void dunedaq::oks::OksData::Set ( const std::string & s)
inline

Definition at line 565 of file object.hpp.

565{Clear(); type = string_type; data.STRING = new OksString(s);}

◆ Set() [13/24]

void dunedaq::oks::OksData::Set ( int16_t i)
inline

Definition at line 550 of file object.hpp.

550{Clear(); type = s16_int_type; data.S16_INT = i;}

◆ Set() [14/24]

void dunedaq::oks::OksData::Set ( int32_t i)
inline

Definition at line 552 of file object.hpp.

552{Clear(); type = s32_int_type; data.S32_INT = i;}

◆ Set() [15/24]

void dunedaq::oks::OksData::Set ( int64_t i)
inline

Definition at line 554 of file object.hpp.

554{Clear(); type = s64_int_type; data.S64_INT = i;}

◆ Set() [16/24]

void dunedaq::oks::OksData::Set ( int8_t c)
inline

Definition at line 548 of file object.hpp.

548{Clear(); type = s8_int_type; data.S8_INT = c;}

◆ Set() [17/24]

void dunedaq::oks::OksData::Set ( List * l)
inline

Definition at line 573 of file object.hpp.

◆ Set() [18/24]

void dunedaq::oks::OksData::Set ( OksObject * o)
inline

Definition at line 574 of file object.hpp.

574{Clear(); type = object_type; data.OBJECT = o;}

◆ Set() [19/24]

void dunedaq::oks::OksData::Set ( OksString * c,
OksString * s )
inline

Definition at line 578 of file object.hpp.

578{Clear(); type = uid2_type; data.UID2.class_id = c; data.UID2.object_id = s;}

◆ Set() [20/24]

void dunedaq::oks::OksData::Set ( OksString * s)
inline

Definition at line 563 of file object.hpp.

563{Clear(); type = string_type; data.STRING = s;}

◆ Set() [21/24]

void dunedaq::oks::OksData::Set ( uint16_t i)
inline

Definition at line 551 of file object.hpp.

551{Clear(); type = u16_int_type; data.U16_INT = i;}

◆ Set() [22/24]

void dunedaq::oks::OksData::Set ( uint32_t i)
inline

Definition at line 553 of file object.hpp.

553{Clear(); type = u32_int_type; data.U32_INT = i;}

◆ Set() [23/24]

void dunedaq::oks::OksData::Set ( uint64_t i)
inline

Definition at line 555 of file object.hpp.

555{Clear(); type = u64_int_type; data.U64_INT = i;}

◆ Set() [24/24]

void dunedaq::oks::OksData::Set ( uint8_t c)
inline

Definition at line 549 of file object.hpp.

549{Clear(); type = u8_int_type; data.U8_INT = c;}

◆ set_init_value()

void dunedaq::oks::OksData::set_init_value ( const OksAttribute * attr,
bool skip_init )

Set value defined by initial value of attribute.

The method checks that the data matches to the range. If the data is out of range, the oks::AttributeRangeError exception is thrown. If definition of range is bad, then the oks::AttributeReadError exception is thrown.

Parameters
attrthe attribute
kernelpointer to OKS kernel (required to read class_type values)
skip_initonly required by OksObject::init2() method for optimization
Exceptions
oks::AttributeReadErroris thrown in case of problems.

Definition at line 247 of file object.cpp.

248{
249 bool si = (a->get_init_value().empty() || skip_init);
250
251 if(a->get_is_multi_values() == false) {
252 type = a->get_data_type();
253 if(si) {
254 SetNullValue(a);
255 }
256 else {
258 data.STRING = new OksString(a->get_init_value());
259 }
260 else if(type == OksData::enum_type) {
261 data.ENUMERATION = a->get_enum_value(a->get_init_value());
262 }
263 else {
264 SetValue(a->get_init_value().c_str(), a);
265 }
266 }
267 }
268 else {
269 if(si) {
270 SetValues("", a);
271 }
272 else {
273 SetValues(a->get_init_value().c_str(), a);
274 }
275 }
276}
void SetNullValue(const OksAttribute *a)
void SetValues(const char *, const OksAttribute *a)

◆ SetE() [1/5]

void dunedaq::oks::OksData::SetE ( const char * s,
size_t len,
const OksAttribute * a )
inline

Definition at line 676 of file attribute.hpp.

677{
678 Clear();
679 type = enum_type;
680 data.ENUMERATION = a->get_enum_value(s, len);
681}

◆ SetE() [2/5]

void dunedaq::oks::OksData::SetE ( const OksAttribute * a)
inline

Definition at line 692 of file attribute.hpp.

693{
694 Clear();
695 type = enum_type;
696 data.ENUMERATION = &((*(a->p_enumerators))[0]);
697}

◆ SetE() [3/5]

void dunedaq::oks::OksData::SetE ( const OksString & s,
const OksAttribute * a )
inline

Definition at line 700 of file attribute.hpp.

701{
702 Clear();
703 type = enum_type;
704 data.ENUMERATION = a->get_enum_value(s);
705}

◆ SetE() [4/5]

void dunedaq::oks::OksData::SetE ( const std::string & s,
const OksAttribute * a )
inline

Definition at line 684 of file attribute.hpp.

685{
686 Clear();
687 type = enum_type;
688 data.ENUMERATION = a->get_enum_value(s);
689}

◆ SetE() [5/5]

void dunedaq::oks::OksData::SetE ( OksString * s,
const OksAttribute * a )
inline

◆ SetFast() [1/2]

void dunedaq::oks::OksData::SetFast ( boost::gregorian::date d)

◆ SetFast() [2/2]

void dunedaq::oks::OksData::SetFast ( boost::posix_time::ptime t)

◆ SetNullValue()

void dunedaq::oks::OksData::SetNullValue ( const OksAttribute * a)

Read from null string (single-value)

Exceptions
oks::AttributeReadErroris thrown in case of problems.

◆ SetValue()

void dunedaq::oks::OksData::SetValue ( const char * s,
const OksAttribute * a )

Read from string (single-value)

Exceptions
oks::AttributeReadErroris thrown in case of problems.

◆ SetValues()

void dunedaq::oks::OksData::SetValues ( const char * ,
const OksAttribute * a )

Read from string (any type)

Exceptions
oks::AttributeReadErroris thrown in case of problems.

◆ sort()

void dunedaq::oks::OksData::sort ( bool ascending = true)

◆ str() [1/2]

std::string dunedaq::oks::OksData::str ( const OksKernel * ) const

◆ str() [2/2]

std::string dunedaq::oks::OksData::str ( int base = 0) const

◆ time()

boost::posix_time::ptime dunedaq::oks::OksData::time ( ) const
noexcept

◆ WriteTo() [1/3]

void dunedaq::oks::OksData::WriteTo ( OksXmlOutputStream & ) const

◆ WriteTo() [2/3]

void dunedaq::oks::OksData::WriteTo ( OksXmlOutputStream & ,
bool  ) const

◆ WriteTo() [3/3]

void dunedaq::oks::OksData::WriteTo ( OksXmlOutputStream & ,
OksKernel * ,
OksAliasTable * ,
bool ,
bool  ) const
private

◆ OksKernel

friend class OksKernel
friend

Definition at line 456 of file object.hpp.

◆ OksObject

friend class OksObject
friend

Definition at line 455 of file object.hpp.

◆ operator<<

std::ostream & operator<< ( std::ostream & ,
const OksData &  )
friend

Member Data Documentation

◆ data

union dunedaq::oks::OksData::Data dunedaq::oks::OksData::data

◆ type

enum dunedaq::oks::OksData::Type dunedaq::oks::OksData::type

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