DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
relationship.hpp
Go to the documentation of this file.
1
10#ifndef OKS_RELATIONSHIP_H
11#define OKS_RELATIONSHIP_H
12
13#include "oks/defs.hpp"
14
15#include <string>
16
17namespace dunedaq {
18namespace oks {
19
20class OksClass;
21class OksXmlOutputStream;
22class OksXmlInputStream;
23
25
26
94{
95 friend class OksKernel;
96 friend class OksClass;
97 friend struct OksData;
98 friend class OksObject;
99
100
101 public:
102
110
111
112
125 OksRelationship (const std::string& name, OksClass * p = nullptr);
126
127
147 OksRelationship (const std::string& name,
148 const std::string& type,
150 CardinalityConstraint high_cc,
151 bool composite,
152 bool exclusive,
153 bool dependent,
154 const std::string& description,
155 OksClass * p = nullptr);
156
157
158 bool operator==(const class OksRelationship &) const;
159
160 friend std::ostream& operator<<(std::ostream&, const OksRelationship&);
161
162
167 const std::string& get_name() const noexcept {return p_name;}
168
169
180 void set_name(const std::string&);
181
182
185 OksClass * get_class_type() const noexcept {return p_class_type;}
186
187
190 const std::string& get_type() const noexcept {return p_rclass;}
191
192
205 void set_type(const std::string& type);
206
207
210 const std::string& get_description() const noexcept {return p_description;}
211
221 void set_description(const std::string& description);
222
223
233
234
248
249
259
260
274
275
278 bool get_is_composite() const noexcept {return p_composite;}
279
280
305 void set_is_composite(bool composite);
306
307
310 bool get_is_exclusive() const noexcept {return p_exclusive;}
311
312
324 void set_is_exclusive(bool exclusive);
325
326
329 bool get_is_dependent() const noexcept {return p_dependent;}
330
331
344 void set_is_dependent(bool dependent);
345
346
349 static CardinalityConstraint str2card(const char *) noexcept;
350
351
354 static const char * card2str(CardinalityConstraint) noexcept;
355
356
357 private:
358
359 std::string p_name;
360 std::string p_rclass;
366 std::string p_description;
370
371
377 void save(OksXmlOutputStream&) const;
378
379
380
385 static const char relationship_xml_tag[];
386 static const char name_xml_attr[];
387 static const char description_xml_attr[];
388 static const char class_type_xml_attr[];
389 static const char low_cc_xml_attr[];
390 static const char high_cc_xml_attr[];
391 static const char is_composite_xml_attr[];
392 static const char is_exclusive_xml_attr[];
393 static const char is_dependent_xml_attr[];
394 static const char mv_implement_xml_attr[];
395 static const char ordered_xml_attr[];
396
397};
398
399} // namespace oks
400} // namespace dunedaq
401#endif
The OKS class.
Definition class.hpp:200
Provides interface to the OKS kernel.
Definition kernel.hpp:577
OksObject describes instance of OksClass.
Definition object.hpp:836
void set_type(const std::string &type)
Set relationship type.
static const char class_type_xml_attr[]
friend std::ostream & operator<<(std::ostream &, const OksRelationship &)
void set_is_exclusive(bool exclusive)
Set the composite relationship exclusive property.
bool get_is_exclusive() const noexcept
static const char ordered_xml_attr[]
static const char low_cc_xml_attr[]
static const char relationship_xml_tag[]
private method to save in XML stream
static const char mv_implement_xml_attr[]
bool get_is_composite() const noexcept
CardinalityConstraint p_high_cc
bool get_is_dependent() const noexcept
const std::string & get_name() const noexcept
static const char description_xml_attr[]
static const char is_composite_xml_attr[]
void set_is_dependent(bool dependent)
Set the composite relationship dependent property.
void set_is_composite(bool composite)
Set the composite relationship property.
CardinalityConstraint get_high_cardinality_constraint() const noexcept
Get relationship high cardinality constraint.
void set_high_cardinality_constraint(CardinalityConstraint)
Set relationship high cardinality constraint.
OksRelationship(const std::string &name, OksClass *p=nullptr)
OKS relationship simple constructor.
static const char is_exclusive_xml_attr[]
void save(OksXmlOutputStream &) const
private constructor from XML stream
void set_low_cardinality_constraint(CardinalityConstraint cc)
Set relationship low cardinality constraint.
static const char name_xml_attr[]
static const char * card2str(CardinalityConstraint) noexcept
const std::string & get_description() const noexcept
CardinalityConstraint get_low_cardinality_constraint() const noexcept
Get relationship low cardinality constraint.
void set_description(const std::string &description)
Set relationship description.
const std::string & get_type() const noexcept
static const char high_cc_xml_attr[]
bool operator==(const class OksRelationship &) const
CardinalityConstraint p_low_cc
OksClass * get_class_type() const noexcept
void set_name(const std::string &)
Set relationship name.
static const char is_dependent_xml_attr[]
static CardinalityConstraint str2card(const char *) noexcept
Including Qt Headers.
Definition __init__.py:1
the structure to pass common parameters to various read() methods of OksData and OksObject class
Definition object.hpp:449