10#ifndef OKS_ATTRIBUTE_H
11#define OKS_ATTRIBUTE_H
19#include <boost/regex.hpp>
25class OksXmlOutputStream;
26class OksXmlInputStream;
154 OksAttribute(
const std::string& name,
const std::string& type,
bool is_mv,
const std::string&
range,
const std::string& init_v,
const std::string& description,
bool no_null,
Format format =
Dec,
OksClass * p =
nullptr);
228 set_type(const
std::
string& type,
bool skip_init = false);
410 std::list<std::string>
553 return &(*p_enumerators)[idx];
667 p_data_type = get_data_type(t, len);
OksData::Type p_data_type
static const char * uid_type
static const char * s8_int_type
void set_range(const std::string &range)
Set attribute range.
static const char * u32_int_type
static const char * u8_int_type
static const char * time_type
static const char * s64_int_type
bool get_is_multi_values() const noexcept
static const char format_xml_attr[]
void set_type(const std::string &type, bool skip_init=false)
Set attribute type.
static const char description_xml_attr[]
static const char * bool_type
friend std::ostream & operator<<(std::ostream &, const OksAttribute &)
equality operator
static const char name_xml_attr[]
void __set_data_type(const char *t, size_t len) noexcept
const std::string & get_type() const noexcept
Get attribute string type.
static const char ordered_xml_attr[]
const std::string & get_range() const noexcept
Get attribute range.
void set_is_multi_values(bool multi_values)
Set attribute is a single-value or multi-value.
void set_format(Format format)
Set attribute format.
int get_enum_index(const std::string &s) const noexcept
See get_enum_index(const char *, size_t);.
const std::string & get_name() const noexcept
out stream operator
static const char * class_type
static const char * string_type
void save(OksXmlOutputStream &) const
static const char * enum_type
static const char * s32_int_type
static const char mv_implement_xml_attr[]
static const char init_value_xml_attr[]
static bool find_token(const char *token, const char *range) noexcept
Finds token in given range.
static const char * format2str(Format) noexcept
OksAttribute(const std::string &name, OksClass *p=nullptr)
OKS attribute simple constructor.
static const char attribute_xml_tag[]
static const char * s16_int_type
OksData p_empty_init_data
OksData::Type get_data_type() const noexcept
static const char * u64_int_type
OksAttribute(OksData::Type t, const OksClass *c) noexcept
static const char * double_type
std::vector< std::string > * p_enumerators
bool operator==(const class OksAttribute &) const
const std::string * get_enum_string(uint16_t idx) const noexcept
Returns enumeration string by value.
const std::string & get_init_value() const noexcept
const std::string * get_enum_value(const std::string &s) const
See get_enum_value(const char *, size_t).
const std::string * get_enum_value(const char *s, size_t length) const
Returns pointer on internal enumerator data equal to given string, if such string is defined in attri...
void set_is_no_null(bool no_null)
Set attribute is-no-null property.
static const char is_multi_value_xml_attr[]
bool is_number() const noexcept
static const char * u16_int_type
std::list< std::string > get_init_values() const
Return list of initial values for mv-attribute.
int get_enum_index(const char *s, size_t length) const noexcept
Finds index of given string in attribute's range.
const std::string & get_description() const noexcept
static const char * date_type
static const char is_not_null_xml_attr[]
static const char * float_type
static Format str2format(const char *) noexcept
void set_description(const std::string &description)
Set attribute description.
void set_init_value(const std::string &init_value)
Set attribute initialisation value.
static const char type_xml_attr[]
static const char range_xml_attr[]
bool is_integer() const noexcept
bool get_is_no_null() const noexcept
void set_name(const std::string &name)
Set attribute name.
std::string p_description
Format get_format() const noexcept
Get attribute format.
Provides interface to the OKS kernel.
OksObject describes instance of OksClass.
std::list< std::pair< OksData, OksData > > m_interval
OksRange(const std::string &range, OksAttribute *a)
std::list< OksData > m_less
std::list< OksData > m_great
std::list< boost::regex > m_like
std::list< OksData > m_equal
void reset(const std::string &range, OksAttribute *a)
DAC value out of range
Message.
the structure to pass common parameters to various read() methods of OksData and OksObject class
union dunedaq::oks::OksData::Data data
void SetE(OksString *s, const OksAttribute *a)
void SetValue(const char *s, const OksAttribute *a)
void set_init_value(const OksAttribute *attr, bool skip_init)
Set value defined by initial value of attribute.
void ReadFrom(const char *, Type, const OksAttribute *)
const std::string * ENUMERATION