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

#include <relationship.hpp>

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

Public Types

enum  CardinalityConstraint { Zero , One , Many }

Public Member Functions

 OksRelationship (const std::string &name, OksClass *p=nullptr)
 OKS relationship simple constructor.
 OksRelationship (const std::string &name, const std::string &type, CardinalityConstraint low_cc, CardinalityConstraint high_cc, bool composite, bool exclusive, bool dependent, const std::string &description, OksClass *p=nullptr)
 OKS relationship complete constructor.
bool operator== (const class OksRelationship &) const
const std::string & get_name () const noexcept
void set_name (const std::string &)
 Set relationship name.
OksClass * get_class_type () const noexcept
const std::string & get_type () const noexcept
void set_type (const std::string &type)
 Set relationship type.
const std::string & get_description () const noexcept
void set_description (const std::string &description)
 Set relationship description.
CardinalityConstraint get_low_cardinality_constraint () const noexcept
 Get relationship low cardinality constraint.
void set_low_cardinality_constraint (CardinalityConstraint cc)
 Set relationship low cardinality constraint.
CardinalityConstraint get_high_cardinality_constraint () const noexcept
 Get relationship high cardinality constraint.
void set_high_cardinality_constraint (CardinalityConstraint)
 Set relationship high cardinality constraint.
bool get_is_composite () const noexcept
void set_is_composite (bool composite)
 Set the composite relationship property.
bool get_is_exclusive () const noexcept
void set_is_exclusive (bool exclusive)
 Set the composite relationship exclusive property.
bool get_is_dependent () const noexcept
void set_is_dependent (bool dependent)
 Set the composite relationship dependent property.

Static Public Member Functions

static CardinalityConstraint str2card (const char *) noexcept
static const char * card2str (CardinalityConstraint) noexcept

Private Member Functions

 OksRelationship (OksXmlInputStream &, OksClass *)
void save (OksXmlOutputStream &) const
 private constructor from XML stream

Private Attributes

std::string p_name
std::string p_rclass
CardinalityConstraint p_low_cc
CardinalityConstraint p_high_cc
bool p_composite
bool p_exclusive
bool p_dependent
std::string p_description
OksClass * p_class
OksClass * p_class_type
bool p_ordered

Static Private Attributes

static const char relationship_xml_tag [] = "relationship"
 private method to save in XML stream
static const char name_xml_attr [] = "name"
static const char description_xml_attr [] = "description"
static const char class_type_xml_attr [] = "class-type"
static const char low_cc_xml_attr [] = "low-cc"
static const char high_cc_xml_attr [] = "high-cc"
static const char is_composite_xml_attr [] = "is-composite"
static const char is_exclusive_xml_attr [] = "is-exclusive"
static const char is_dependent_xml_attr [] = "is-dependent"
static const char mv_implement_xml_attr []
static const char ordered_xml_attr [] = "ordered"

Friends

class OksKernel
class OksClass
struct OksData
class OksObject
std::ostream & operator<< (std::ostream &s, const OksRelationship &r)

Detailed Description

  @ingroup oks

\brief OKS relationship class.

    The class implements OKS relationship that is a part of an OKS class.

    A relationship has name, class type and description.
    A relationship is [zero|one]-to-one or [zero|one]-to-many.

  There are two basic types of OKS relationships:
  - \b weak or \b general reference (relationship): default reference between two objects, it carries no special

semantic;

Definition at line 99 of file relationship.hpp.

Member Enumeration Documentation

◆ CardinalityConstraint

Valid cardinality constraint types

Enumerator
Zero 
One 
Many 

Definition at line 111 of file relationship.hpp.

112 {
113 Zero,
114 One,
115 Many
116 };

Constructor & Destructor Documentation

◆ OksRelationship() [1/3]

dunedaq::oks::OksRelationship::OksRelationship ( const std::string & name,
OksClass * p = nullptr )

OKS relationship simple constructor.

Create new OKS relationship providing name.

The parameter is:

Parameters
namename of the attribute
pcontaining parent class
Exceptions
oks::exceptionis thrown in case of problems.

Definition at line 42 of file relationship.cpp.

43 : p_name(nm)
44 , p_low_cc(Zero)
46 , p_composite(false)
47 , p_exclusive(false)
48 , p_dependent(false)
49 , p_class(p)
50 , p_class_type(nullptr)
51 , p_ordered(false)
52{
53 oks::validate_not_empty(p_name, "relationship name");
54}
CardinalityConstraint p_high_cc
CardinalityConstraint p_low_cc
void validate_not_empty(const std::string &value, const char *name)

◆ OksRelationship() [2/3]

dunedaq::oks::OksRelationship::OksRelationship ( const std::string & name,
const std::string & type,
CardinalityConstraint low_cc,
CardinalityConstraint high_cc,
bool composite,
bool exclusive,
bool dependent,
const std::string & description,
OksClass * p = nullptr )

OKS relationship complete constructor.

Create new OKS relationship providing all properties.

The parameters are:

Parameters
namename of the attribute (max 128 bytes, see #s_max_name_length variable)
typeclass type of relationship (i.e. name of existing OKS class)
low_cclowest possible number of objects linked via this relationship ("zero" or "one")
high_cchighest possible number of objects linked via this relationship ("one" or "many")
compositeif true, set strong dependency on children objects
exclusiveif true, guaranty unique reference on children objects via such relationship by any object
dependentif true, existence of children objects depends on existence of parent
descriptiondescription of the method (max 2000 bytes, see #s_max_description_length variable)
pcontaining parent class
Exceptions
oks::exceptionis thrown in case of problems.

Definition at line 56 of file relationship.cpp.

65 : p_name(nm)
66 , p_rclass(rc)
67 , p_low_cc(l_cc)
68 , p_high_cc(h_cc)
69 , p_composite(cm)
70 , p_exclusive(excl)
71 , p_dependent(dp)
72 , p_description(desc)
73 , p_class(p)
74 , p_class_type(nullptr)
75 , p_ordered(false)
76{
77 oks::validate_not_empty(p_name, "relationship name");
78 oks::validate_not_empty(p_rclass, "relationship class");
79}

◆ OksRelationship() [3/3]

dunedaq::oks::OksRelationship::OksRelationship ( OksXmlInputStream & s,
OksClass * parent )
private

To be used by OksClass only

Definition at line 147 of file relationship.cpp.

148 : p_low_cc(Zero)
149 , p_high_cc(Many)
150 , p_composite(false)
151 , p_exclusive(false)
152 , p_dependent(false)
153 , p_class(parent)
154 , p_class_type(nullptr)
155 , p_ordered(false)
156{
157 try {
158 while (true) {
159 OksXmlAttribute attr(s);
160
161 // check for close of tag
162
163 if (oks::cmp_str1(attr.name(), "/")) {
164 break;
165 }
166
167 // check for known oks-relationship' attributes
168
169 else if (oks::cmp_str4(attr.name(), name_xml_attr))
170 p_name.assign(attr.value(), attr.value_len());
171 else if (oks::cmp_str11(attr.name(), description_xml_attr))
172 p_description.assign(attr.value(), attr.value_len());
173 else if (oks::cmp_str10(attr.name(), class_type_xml_attr))
174 p_rclass.assign(attr.value(), attr.value_len());
175 else if (oks::cmp_str6(attr.name(), low_cc_xml_attr))
176 p_low_cc = str2card(attr.value());
177 else if (oks::cmp_str7(attr.name(), high_cc_xml_attr))
178 p_high_cc = str2card(attr.value());
179 else if (oks::cmp_str12(attr.name(), is_composite_xml_attr))
180 p_composite = oks::xml::str2bool(attr.value());
181 else if (oks::cmp_str12(attr.name(), is_exclusive_xml_attr))
182 p_exclusive = oks::xml::str2bool(attr.value());
183 else if (oks::cmp_str12(attr.name(), is_dependent_xml_attr))
184 p_dependent = oks::xml::str2bool(attr.value());
185 else if (oks::cmp_str7(attr.name(), ordered_xml_attr))
186 p_ordered = oks::xml::str2bool(attr.value());
187 else if (!strcmp(attr.name(), "multi-value-implementation")) {
188 s.error_msg("OksRelationship::OksRelationship(OksXmlInputStream&)")
189 << "Obsolete oks-relationship\'s attribute \'" << attr.name() << "\'\n";
190 } else {
191 s.throw_unexpected_attribute(attr.name());
192 }
193 }
194 } catch (oks::exception& e) {
195 throw oks::FailedRead("xml attribute", e);
196 } catch (std::exception& e) {
197 throw oks::FailedRead("xml attribute", e.what());
198 }
199
200 // check validity of read values
201
202 try {
203 oks::validate_not_empty(p_name, "relationship name");
204 oks::validate_not_empty(p_rclass, "relationship class");
205 } catch (std::exception& ex) {
206 throw oks::FailedRead("oks relationship", oks::BadFileData(ex.what(), s.get_line_no(), s.get_line_pos()));
207 }
208}
static const char class_type_xml_attr[]
static const char ordered_xml_attr[]
static const char low_cc_xml_attr[]
static const char description_xml_attr[]
static const char is_composite_xml_attr[]
static const char is_exclusive_xml_attr[]
static const char name_xml_attr[]
static const char high_cc_xml_attr[]
static const char is_dependent_xml_attr[]
static CardinalityConstraint str2card(const char *) noexcept
bool str2bool(const char *s) noexcept
Definition xml.hpp:36
bool cmp_str1(const char *s1, const char s2[2])
Definition cstring.hpp:15
bool cmp_str4(const char *s1, const char s2[5])
Definition cstring.hpp:45
bool cmp_str6(const char *s1, const char s2[7])
Definition cstring.hpp:69
bool cmp_str10(const char *s1, const char s2[11])
Definition cstring.hpp:111
bool cmp_str11(const char *s1, const char s2[12])
Definition cstring.hpp:117
bool cmp_str12(const char *s1, const char s2[13])
Definition cstring.hpp:123
bool cmp_str7(const char *s1, const char s2[8])
Definition cstring.hpp:81

Member Function Documentation

◆ card2str()

const char * dunedaq::oks::OksRelationship::card2str ( CardinalityConstraint cc)
staticnoexcept

Helper method to convert cardinality constraint to string

Definition at line 37 of file relationship.cpp.

38{
39 return (cc == Zero ? "zero" : cc == One ? "one" : "many");
40}

◆ get_class_type()

OksClass * dunedaq::oks::OksRelationship::get_class_type ( ) const
inlinenoexcept

Get relationship type (pointer on OKS class).

Definition at line 185 of file relationship.hpp.

185{ return p_class_type; }

◆ get_description()

const std::string & dunedaq::oks::OksRelationship::get_description ( ) const
inlinenoexcept

Return description of relationship

Definition at line 207 of file relationship.hpp.

207{ return p_description; }

◆ get_high_cardinality_constraint()

CardinalityConstraint dunedaq::oks::OksRelationship::get_high_cardinality_constraint ( ) const
inlinenoexcept

Get relationship high cardinality constraint.

See set_high_cardinality_constraint() for more information.

Returns
the relationship high cardinality constraint

Definition at line 251 of file relationship.hpp.

251{ return p_high_cc; }

◆ get_is_composite()

bool dunedaq::oks::OksRelationship::get_is_composite ( ) const
inlinenoexcept

Returns the true, if relationship is composite and false, if not.

Definition at line 269 of file relationship.hpp.

269{ return p_composite; }

◆ get_is_dependent()

bool dunedaq::oks::OksRelationship::get_is_dependent ( ) const
inlinenoexcept

Returns the true, if relationship is dependent and false, if not.

Definition at line 316 of file relationship.hpp.

316{ return p_dependent; }

◆ get_is_exclusive()

bool dunedaq::oks::OksRelationship::get_is_exclusive ( ) const
inlinenoexcept

Returns the true, if relationship is exclusive and false, if not.

Definition at line 299 of file relationship.hpp.

299{ return p_exclusive; }

◆ get_low_cardinality_constraint()

CardinalityConstraint dunedaq::oks::OksRelationship::get_low_cardinality_constraint ( ) const
inlinenoexcept

Get relationship low cardinality constraint.

See set_low_cardinality_constraint() for more information.

Returns
the relationship low cardinality constraint

Definition at line 227 of file relationship.hpp.

227{ return p_low_cc; }

◆ get_name()

const std::string & dunedaq::oks::OksRelationship::get_name ( ) const
inlinenoexcept

Methods to access relationship properties.

Definition at line 169 of file relationship.hpp.

169{ return p_name; }

◆ get_type()

const std::string & dunedaq::oks::OksRelationship::get_type ( ) const
inlinenoexcept

Get relationship type (string).

Definition at line 189 of file relationship.hpp.

189{ return p_rclass; }

◆ operator==()

bool dunedaq::oks::OksRelationship::operator== ( const class OksRelationship & r) const

Definition at line 82 of file relationship.cpp.

83{
84 return ((this == &r) ||
85 ((p_name == r.p_name) && (p_rclass == r.p_rclass) && (p_low_cc == r.p_low_cc) && (p_high_cc == r.p_high_cc) &&
86 (p_composite == r.p_composite) && (p_exclusive == r.p_exclusive) && (p_dependent == r.p_dependent) &&
87 (p_description == r.p_description) && (p_ordered == r.p_ordered)));
88}

◆ save()

void dunedaq::oks::OksRelationship::save ( OksXmlOutputStream & s) const
private

private constructor from XML stream

Definition at line 123 of file relationship.cpp.

124{
125 s.put(" ");
126
127 s.put_start_tag(relationship_xml_tag, sizeof(relationship_xml_tag) - 1);
128
129 s.put_attribute(name_xml_attr, sizeof(name_xml_attr) - 1, p_name.c_str());
130
131 if (!p_description.empty())
132 s.put_attribute(description_xml_attr, sizeof(description_xml_attr) - 1, p_description.c_str());
133
134 s.put_attribute(class_type_xml_attr, sizeof(class_type_xml_attr) - 1, p_rclass.c_str());
135 s.put_attribute(low_cc_xml_attr, sizeof(low_cc_xml_attr) - 1, card2str(p_low_cc));
136 s.put_attribute(high_cc_xml_attr, sizeof(high_cc_xml_attr) - 1, card2str(p_high_cc));
140
141 if (p_ordered)
142 s.put_attribute(ordered_xml_attr, sizeof(ordered_xml_attr) - 1, oks::xml::bool2str(p_ordered));
143
144 s.put_end_tag();
145}
static const char relationship_xml_tag[]
private method to save in XML stream
static const char * card2str(CardinalityConstraint) noexcept
const char * bool2str(bool b) noexcept
Definition xml.hpp:29

◆ set_description()

void dunedaq::oks::OksRelationship::set_description ( const std::string & description)

Set relationship description.

Parameters
descriptionnew description of relationship (max 2000 bytes, see #s_max_description_length variable)

In case of problems the oks::exception is thrown.

Definition at line 283 of file relationship.cpp.

284{
285 if (p_description != desc) {
286 if (p_class)
287 p_class->lock_file("OksRelationship::set_description");
288
289 p_description = desc;
290
291 if (p_class)
293 }
294}
void registrate_class_change(ChangeType, const void *, bool=true)
Definition class.cpp:2009
void lock_file(const char *)
Definition class.cpp:733

◆ set_high_cardinality_constraint()

void dunedaq::oks::OksRelationship::set_high_cardinality_constraint ( CardinalityConstraint h_cc)

Set relationship high cardinality constraint.

The high cardinality constraint defiles highest possible number of objects linked via this relationship. It must be OksRelationship::One or OksRelationship::Many.

Parameters
ccthe high cardinality constraint

In case of problems the oks::exception is thrown.

Definition at line 317 of file relationship.cpp.

318{
319 if (p_high_cc != h_cc) {
320 if (p_class)
321 p_class->lock_file("OksRelationship::set_high_cardinality_constraint");
322
324
325 p_high_cc = h_cc;
326
327 if (p_class) {
329
330 if (p_high_cc == Many || old_cc == Many)
332 }
333 }
334}
void registrate_relationship_change(OksRelationship *)
Definition class.cpp:1840

◆ set_is_composite()

void dunedaq::oks::OksRelationship::set_is_composite ( bool composite)

Set the composite relationship property.

If relationship is composite, the parent object sets strong references on children objects and it is considered as composite or compound object.

The composite relationships are presented in a special way (as a diamond) by the OKS data editor graphical views, e.g. document is compound of sections:

============ 1..N ===========
| Document |<>-------| Section |
============ has ===========

Also, the oksdalgen package generates print() method of data access library in a different way depending on the composite relationship state:

  • objects referenced via non-composite relationship are printed as references from parent object
  • objects referenced via composite relationship are printed with details as part of parent object
Parameters
compositepass true to make relationship composite

In case of problems the oks::exception is thrown.

Definition at line 337 of file relationship.cpp.

338{
339 if (p_composite != cm) {
340 if (p_class)
341 p_class->lock_file("OksRelationship::set_is_composite");
342
343 p_composite = cm;
344
345 if (p_class)
347 }
348}

◆ set_is_dependent()

void dunedaq::oks::OksRelationship::set_is_dependent ( bool dependent)

Set the composite relationship dependent property.

If relationship is dependent, the child object will be removed when its parent object is removed and the child is not referenced by another parents via dependent composite relationships.

Parameters
dependentpass true to make relationship dependent

In case of problems the oks::exception is thrown.

Definition at line 365 of file relationship.cpp.

366{
367 if (p_dependent != dp) {
368 if (p_class)
369 p_class->lock_file("OksRelationship::set_is_dependent");
370
371 p_dependent = dp;
372
373 if (p_class)
375 }
376}

◆ set_is_exclusive()

void dunedaq::oks::OksRelationship::set_is_exclusive ( bool exclusive)

Set the composite relationship exclusive property.

If relationship is exclusive, the child object can only be referenced by single parent via given relationship.

Parameters
exclusivepass true to make relationship exclusive

In case of problems the oks::exception is thrown.

Definition at line 351 of file relationship.cpp.

352{
353 if (p_exclusive != ex) {
354 if (p_class)
355 p_class->lock_file("OksRelationship::set_is_exclusive");
356
357 p_exclusive = ex;
358
359 if (p_class)
361 }
362}

◆ set_low_cardinality_constraint()

void dunedaq::oks::OksRelationship::set_low_cardinality_constraint ( CardinalityConstraint cc)

Set relationship low cardinality constraint.

The low cardinality constraint defiles lowest possible number of objects linked via this relationship. It must be OksRelationship::Zero or OksRelationship::One.

Parameters
ccthe low cardinality constraint

In case of problems the oks::exception is thrown.

Definition at line 297 of file relationship.cpp.

298{
299 if (p_low_cc != l_cc) {
300 if (p_class)
301 p_class->lock_file("OksRelationship::set_low_cardinality_constraint");
302
304
305 p_low_cc = l_cc;
306
307 if (p_class) {
309
310 if (p_low_cc == Many || old_cc == Many)
312 }
313 }
314}

◆ set_name()

void dunedaq::oks::OksRelationship::set_name ( const std::string & new_name)

Set relationship name.

Relationships linked with the same class shall have different names.

Parameters
namenew name of relationship (max 128 bytes, see #s_max_name_length variable)

In case of problems the oks::exception is thrown.

Definition at line 211 of file relationship.cpp.

212{
213 // ignore when name is the same
214
215 if (p_name == new_name)
216 return;
217
218 // additional checks are required,
219 // if the relationship already belongs to some class
220
221 if (p_class) {
222
223 // check maximum allowed length for relationship name
224
225 try {
226 oks::validate_not_empty(new_name, "name");
227 } catch (std::exception& ex) {
228 throw oks::SetOperationFailed("OksRelationship::set_name", ex.what());
229 }
230
231 // having a direct relationship with the same name is an error
232
233 if (p_class->find_direct_relationship(new_name) != 0) {
234 std::ostringstream text;
235 text << "Class \"" << p_class->get_name() << "\" already has direct relationship \"" << new_name << '\"';
236 throw oks::SetOperationFailed("OksRelationship::set_name", text.str());
237 }
238
239 // check possibility to lock the file
240
241 p_class->lock_file("OksRelationship::set_name");
242
243 // probably a non-direct relationship already exists
244
246
247 // change the name
248
249 p_name = new_name;
250
251 // registrate the change
252
254 } else {
255 p_name = new_name;
256 }
257}
OksRelationship * find_direct_relationship(const std::string &name) const noexcept
Find direct relationship.
Definition class.cpp:1130
OksRelationship * find_relationship(const std::string &name) const noexcept
Find relationship (search in this and base classes).
Definition class.cpp:1142
const std::string & get_name() const noexcept
Definition class.hpp:374

◆ set_type()

void dunedaq::oks::OksRelationship::set_type ( const std::string & type)

Set relationship type.

The type is a name of existing OKS class. The value of relationship can point on objects of that class or any objects of classes derived from this one.

Parameters
typenew type of relationship

In case of problems the oks::exception is thrown.

Definition at line 260 of file relationship.cpp.

261{
262 if (p_rclass == cn)
263 return;
264
265 if (!p_class || !p_class->p_kernel || (p_class_type = p_class->p_kernel->find_class(cn)) != 0) {
266 if (p_class)
267 p_class->lock_file("OksRelationship::set_type");
268
269 p_rclass = cn;
270
271 if (p_class) {
274 }
275 } else {
276 std::ostringstream text;
277 text << "cannot find class \"" << cn << '\"';
278 throw oks::SetOperationFailed("OksRelationship::set_type", text.str());
279 }
280}
OksKernel * p_kernel
Definition class.hpp:900
OksClass * find_class(const std::string &class_name) const
Find class by name (C++ string).
Definition kernel.hpp:1754

◆ str2card()

OksRelationship::CardinalityConstraint dunedaq::oks::OksRelationship::str2card ( const char * s)
staticnoexcept

Helper method to convert valid string to cardinality constraint

Definition at line 31 of file relationship.cpp.

32{
33 return (oks::cmp_str3(s, "one") ? One : oks::cmp_str4(s, "zero") ? Zero : Many);
34}
bool cmp_str3(const char *s1, const char s2[4])
Definition cstring.hpp:33

◆ OksClass

friend class OksClass
friend

Definition at line 102 of file relationship.hpp.

◆ OksData

friend struct OksData
friend

Definition at line 103 of file relationship.hpp.

◆ OksKernel

friend class OksKernel
friend

Definition at line 101 of file relationship.hpp.

◆ OksObject

friend class OksObject
friend

Definition at line 104 of file relationship.hpp.

◆ operator<<

std::ostream & operator<< ( std::ostream & s,
const OksRelationship & r )
friend

Definition at line 90 of file relationship.cpp.

92{
93 s << "Relationship name: \"" << r.p_name
94 << "\"\n"
95 " class type: \""
96 << r.p_rclass
97 << "\"\n"
98 " low cardinality constraint is "
99 << OksRelationship::card2str(r.p_low_cc)
100 << "\n"
101 " high cardinality constraint is "
102 << OksRelationship::card2str(r.p_high_cc)
103 << "\n"
104 " is"
105 << (r.p_composite == true ? "" : " not")
106 << " composite reference\n"
107 " is"
108 << (r.p_exclusive == true ? "" : " not")
109 << " exclusive reference\n"
110 " is "
111 << (r.p_dependent == true ? "dependent" : "shared")
112 << " reference\n"
113 " has description: \""
114 << r.p_description
115 << "\"\n"
116 " is "
117 << (r.p_ordered == true ? "ordered" : "unordered") << std::endl;
118
119 return s;
120}

Member Data Documentation

◆ class_type_xml_attr

const char dunedaq::oks::OksRelationship::class_type_xml_attr = "class-type"
staticprivate

Definition at line 367 of file relationship.hpp.

◆ description_xml_attr

const char dunedaq::oks::OksRelationship::description_xml_attr = "description"
staticprivate

Definition at line 366 of file relationship.hpp.

◆ high_cc_xml_attr

const char dunedaq::oks::OksRelationship::high_cc_xml_attr = "high-cc"
staticprivate

Definition at line 369 of file relationship.hpp.

◆ is_composite_xml_attr

const char dunedaq::oks::OksRelationship::is_composite_xml_attr = "is-composite"
staticprivate

Definition at line 370 of file relationship.hpp.

◆ is_dependent_xml_attr

const char dunedaq::oks::OksRelationship::is_dependent_xml_attr = "is-dependent"
staticprivate

Definition at line 372 of file relationship.hpp.

◆ is_exclusive_xml_attr

const char dunedaq::oks::OksRelationship::is_exclusive_xml_attr = "is-exclusive"
staticprivate

Definition at line 371 of file relationship.hpp.

◆ low_cc_xml_attr

const char dunedaq::oks::OksRelationship::low_cc_xml_attr = "low-cc"
staticprivate

Definition at line 368 of file relationship.hpp.

◆ mv_implement_xml_attr

const char dunedaq::oks::OksRelationship::mv_implement_xml_attr[]
staticprivate

Definition at line 373 of file relationship.hpp.

◆ name_xml_attr

const char dunedaq::oks::OksRelationship::name_xml_attr = "name"
staticprivate

Definition at line 365 of file relationship.hpp.

◆ ordered_xml_attr

const char dunedaq::oks::OksRelationship::ordered_xml_attr = "ordered"
staticprivate

Definition at line 374 of file relationship.hpp.

◆ p_class

OksClass* dunedaq::oks::OksRelationship::p_class
private

Definition at line 349 of file relationship.hpp.

◆ p_class_type

OksClass* dunedaq::oks::OksRelationship::p_class_type
private

Definition at line 350 of file relationship.hpp.

◆ p_composite

bool dunedaq::oks::OksRelationship::p_composite
private

Definition at line 345 of file relationship.hpp.

◆ p_dependent

bool dunedaq::oks::OksRelationship::p_dependent
private

Definition at line 347 of file relationship.hpp.

◆ p_description

std::string dunedaq::oks::OksRelationship::p_description
private

Definition at line 348 of file relationship.hpp.

◆ p_exclusive

bool dunedaq::oks::OksRelationship::p_exclusive
private

Definition at line 346 of file relationship.hpp.

◆ p_high_cc

CardinalityConstraint dunedaq::oks::OksRelationship::p_high_cc
private

Definition at line 344 of file relationship.hpp.

◆ p_low_cc

CardinalityConstraint dunedaq::oks::OksRelationship::p_low_cc
private

Definition at line 343 of file relationship.hpp.

◆ p_name

std::string dunedaq::oks::OksRelationship::p_name
private

Definition at line 341 of file relationship.hpp.

◆ p_ordered

bool dunedaq::oks::OksRelationship::p_ordered
private

Definition at line 351 of file relationship.hpp.

◆ p_rclass

std::string dunedaq::oks::OksRelationship::p_rclass
private

Definition at line 342 of file relationship.hpp.

◆ relationship_xml_tag

const char dunedaq::oks::OksRelationship::relationship_xml_tag = "relationship"
staticprivate

private method to save in XML stream

Valid xml tags and attributes

Definition at line 364 of file relationship.hpp.


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