DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
class.hpp
Go to the documentation of this file.
1// DUNE DAQ modification notice:
2// This file has been modified from the original ATLAS oks source for the DUNE DAQ project.
3// Fork baseline commit: oks-08-03-04 (2022-04-14).
4// Renamed since fork: yes (from oks/class.h to include/oks/class.hpp).
5
14
15#ifndef OKS_CLASS_H
16#define OKS_CLASS_H
17
18#include "oks/exceptions.hpp"
19#include "oks/index.hpp"
20
21#include <list>
22#include <map>
23#include <mutex>
24#include <shared_mutex>
25#include <string>
26#include <vector>
27
28#include <boost/pool/pool_alloc.hpp>
29
30namespace dunedaq {
31namespace oks {
32
33// Forward declarations
34
35class OksAttribute;
36class OksClass;
37class OksFile;
38class OksKernel;
39class OksMethod;
40class OksQuery;
42class OksRelationship;
45
47
49
51{
52
53public:
54 CannotFindSuperClass(const OksClass& c, const std::string& name) noexcept
55 : exception(fill(c, name), 0)
56 {
57 }
58 virtual ~CannotFindSuperClass() noexcept {}
59
60private:
61 static std::string fill(const OksClass& c, const std::string& name) noexcept;
62};
63
65
67{
68
69public:
70 AttributeConversionFailed(const OksAttribute& a, const OksObject* o, const exception& reason) noexcept
71 : exception(fill(a, o, reason.what()), reason.level() + 1)
72 {
73 }
74 virtual ~AttributeConversionFailed() noexcept {}
75
76private:
77 static std::string fill(const OksAttribute& a, const OksObject* o, const std::string& reason) noexcept;
78};
79
81
83{
84
85public:
86 CannotRegisterClass(const OksClass& c, const std::string& what, const exception& reason) noexcept
87 : exception(fill(c, what, reason.what()), reason.level() + 1)
88 {
89 }
90 CannotRegisterClass(const OksClass& c, const std::string& what, const std::string& reason) noexcept
91 : exception(fill(c, what, reason), 0)
92 {
93 }
94 virtual ~CannotRegisterClass() noexcept {}
95
96private:
97 static std::string fill(const OksClass& c, const std::string& what, const std::string& reason) noexcept;
98};
99
101
103{
104
105public:
106 CannotDestroyClass(const OksClass& c, const exception& reason) noexcept
107 : exception(fill(c, reason.what()), reason.level() + 1)
108 {
109 }
110 CannotDestroyClass(const OksClass& c, const std::string& reason) noexcept
111 : exception(fill(c, reason), 0)
112 {
113 }
114 virtual ~CannotDestroyClass() noexcept {}
115
116private:
117 static std::string fill(const OksClass& c, const std::string& reason) noexcept;
118};
119
121
123{
124
125public:
126 ObjectOperationFailed(const OksClass& c, const std::string& oid, const char* op, const exception& reason) noexcept
127 : exception(fill(c, oid, op, reason.what()), reason.level() + 1)
128 {
129 }
130 ObjectOperationFailed(const OksClass& c, const std::string& oid, const char* op, const std::string& reason) noexcept
131 : exception(fill(c, oid, op, reason), 0)
132 {
133 }
134 virtual ~ObjectOperationFailed() noexcept {}
135
136private:
137 static std::string fill(const OksClass& c,
138 const std::string& oid,
139 const char* op,
140 const std::string& reason) noexcept;
141};
142
144
146{
147
148public:
149 SetOperationFailed(const char* op, const exception& reason) noexcept
150 : exception(fill(op, reason.what()), reason.level() + 1)
151 {
152 }
153 SetOperationFailed(const char* op, const std::string& reason) noexcept
154 : exception(fill(op, reason), 0)
155 {
156 }
157 virtual ~SetOperationFailed() noexcept {}
158
159private:
160 static std::string fill(const char* op, const std::string& reason) noexcept;
161};
162
164
165class QueryFailed : public exception
166{
167
168public:
169 QueryFailed(const OksQueryExpression& query, const OksClass& c, const exception& reason) noexcept
170 : exception(fill(query, c, reason.what()), reason.level() + 1)
171 {
172 }
173 QueryFailed(const OksQueryExpression& query, const OksClass& c, const std::string& reason) noexcept
174 : exception(fill(query, c, reason), 0)
175 {
176 }
177 virtual ~QueryFailed() noexcept {}
178
179private:
180 static std::string fill(const OksQueryExpression& query, const OksClass& c, const std::string& reason) noexcept;
181};
182
184
185class BadReqExp : public exception
186{
187
188public:
189 BadReqExp(const std::string& what, const std::string& reason) noexcept
190 : exception(fill(what, reason), 0)
191 {
192 }
193 virtual ~BadReqExp() noexcept {}
194
195private:
196 static std::string fill(const std::string& what, const std::string& reason) noexcept;
197};
198
221
223{
224 friend class OksObject;
225 friend class OksKernel;
226 friend class OksAttribute;
227 friend class OksRelationship;
228 friend class OksMethod;
230 friend class OksIndex;
231 friend class OksSortedClass;
232
233public:
234#ifndef ERS_NO_DEBUG
235
236 // Declare set of pointers to OksClass sorted by name
237
239 {
240 bool operator()(OksClass* c1, OksClass* c2) const { return c1->get_name() < c2->get_name(); }
241 };
242
243 typedef std::set<OksClass*, SortByName> Set;
244
245#endif
246
247 struct SortStr
248 {
249 bool operator()(const char* c1, const char* c2) const { return (strcmp(c1, c2) < 0); }
250 };
251
252 typedef std::map<const char*, OksClass*, SortStr> Map;
253
254 typedef std::list<OksClass*, boost::fast_pool_allocator<OksClass*>> FList;
255
264
265 OksClass(const std::string& name, OksKernel* kernel, bool transient = false);
266
277
278 OksClass(const std::string& name,
279 const std::string& description,
280 bool is_abstract,
281 OksKernel* kernel,
282 bool transient = false);
283
293
294 OksClass(OksKernel* kernel, const std::string& name, const std::string& description, bool is_abstract);
295
306
307 static void destroy(OksClass* c);
308
314
315 bool operator==(const OksClass&) const;
316
323
324 bool operator!=(const OksClass&) const;
325
334
335 friend std::ostream& operator<<(std::ostream&, const OksClass&);
336
337 friend std::ostream& operator<<(std::ostream&, const OksObject&);
338
340
341 bool compare_without_methods(const OksClass& c) const noexcept;
342
343 // methods to access class external information
344
345public:
347
348 OksKernel* get_kernel() const noexcept { return p_kernel; }
349
351
352 OksFile* get_file() const noexcept { return p_file; }
353
366
367 void set_file(OksFile* f, bool update_owner = true);
368
369 // methods to access class properties
370
371public:
373
374 const std::string& get_name() const noexcept { return p_name; }
375
377
378 const std::string& get_description() const noexcept { return p_description; }
379
387
388 void set_description(const std::string& description);
389
391
392 bool get_is_abstract() const noexcept { return p_abstract; }
393
405
406 void set_is_abstract(bool abstract);
407
408 // methods to access class hierarchy description
409
410public:
412
413 const FList* all_super_classes() const noexcept { return p_all_super_classes; }
414
416
417 const std::list<std::string*>* direct_super_classes() const noexcept { return p_super_classes; }
418
420
421 OksClass* find_super_class(const std::string&) const noexcept;
422
424
425 bool has_direct_super_class(const std::string&) const noexcept;
426
432
433 void add_super_class(const std::string& name);
434
436
437 void k_add_super_class(const std::string& name);
438
444
445 void remove_super_class(const std::string& name);
446
458
459 void swap_super_classes(const std::string& c1, const std::string& c2);
460
462
463 const FList* all_sub_classes() const noexcept { return p_all_sub_classes; }
464
465 // methods to access class attributes description
466
467public:
469
470 const std::list<OksAttribute*>* all_attributes() const noexcept { return p_all_attributes; }
471
473
474 const std::list<OksAttribute*>* direct_attributes() const noexcept { return p_attributes; }
475
484
485 OksAttribute* find_attribute(const std::string& name) const noexcept;
486
495
496 OksAttribute* find_direct_attribute(const std::string& name) const noexcept;
497
508
509 void add(OksAttribute* a);
510
515
516 void k_add(OksAttribute* a);
517
528
529 void remove(const OksAttribute* a);
530
542
543 void swap(const OksAttribute* a1, const OksAttribute* a2);
544
546
547 size_t number_of_direct_attributes() const noexcept;
548
550
551 size_t number_of_all_attributes() const noexcept;
552
561
562 OksClass* source_class(const OksAttribute* a) const noexcept;
563
564 // methods to access class relationships description
565
567
568 const std::list<OksRelationship*>* all_relationships() const noexcept { return p_all_relationships; }
569
571
572 const std::list<OksRelationship*>* direct_relationships() const noexcept { return p_relationships; }
573
582
583 OksRelationship* find_relationship(const std::string& name) const noexcept;
584
593
594 OksRelationship* find_direct_relationship(const std::string& name) const noexcept;
595
606
607 void add(OksRelationship* r);
608
613
614 void k_add(OksRelationship* r);
615
627
628 void remove(const OksRelationship* r, bool call_delete = true);
629
641
642 void swap(const OksRelationship* r1, const OksRelationship* r2);
643
645
646 size_t number_of_direct_relationships() const noexcept;
647
649
650 size_t number_of_all_relationships() const noexcept;
651
660
661 OksClass* source_class(const OksRelationship* r) const noexcept;
662
663 // methods to access class methods description
664
666
667 const std::list<OksMethod*>* all_methods() const noexcept { return p_all_methods; }
668
670
671 const std::list<OksMethod*>* direct_methods() const noexcept { return p_methods; }
672
681
682 OksMethod* find_method(const std::string& name) const noexcept;
683
692
693 OksMethod* find_direct_method(const std::string& name) const noexcept;
694
705
706 void add(OksMethod* m);
707
718
719 void remove(const OksMethod* m);
720
732
733 void swap(const OksMethod* m1, const OksMethod* m2);
734
736
737 size_t number_of_direct_methods() const noexcept;
738
740
741 size_t number_of_all_methods() const noexcept;
742
751
752 OksClass* source_class(const OksMethod* m) const noexcept;
753
754 // methods to access class instances
755
757
758 size_t number_of_objects() const noexcept;
759
761
762 const OksObject::Map* objects() const noexcept { return p_objects; }
763
772
773 std::list<OksObject*>* create_list_of_all_objects() const noexcept;
774
782
783 OksObject* get_object(const std::string& id) const noexcept;
784
786
787 OksObject* get_object(const std::string* id) const noexcept { return get_object(*id); }
788
800
802
812
813 OksDataInfo* data_info(const std::string& s) const noexcept { return p_data_info->find(s)->second; }
814
824
825 OksDataInfo* get_data_info(const std::string& s) const noexcept
826 {
827 auto it = p_data_info->find(s);
828 return (it != p_data_info->end() ? it->second : nullptr);
829 }
830
838
870
872
873 typedef void (*NotifyFN)(OksClass*);
874
876
877 typedef void (*ChangeNotifyFN)(OksClass*, ChangeType, const void*);
878
879private:
880 std::string p_name;
881 std::string p_description;
882 std::list<std::string*>* p_super_classes;
883 std::list<OksAttribute*>* p_attributes;
884 std::list<OksRelationship*>* p_relationships;
885 std::list<OksMethod*>* p_methods;
889
892 std::list<OksAttribute*>* p_all_attributes;
893 std::list<OksRelationship*>* p_all_relationships;
894 std::list<OksMethod*>* p_all_methods;
895
896 std::vector<OksClass*>* p_inheritance_hierarchy;
897 unsigned int p_id;
898
901
903
907
908 mutable std::shared_mutex p_mutex;
909 mutable std::mutex p_unique_id_mutex;
910
914
915 // to be used by OksKernel only
916
917 ~OksClass();
919
920 template<class T>
921 static void destroy_map(T map);
922 template<class T>
923 static void destroy_list(T list);
924
925 // transient class for OksKernel::find_class()
926
927 inline OksClass(const char* name, size_t len);
928
929 void save(OksXmlOutputStream&) const;
930
931 void add(OksObject*);
932 void remove(OksObject*);
933 void registrate_class(bool skip_registered);
934 void registrate_class_change(ChangeType, const void*, bool = true);
938
939 void add_super_classes(FList*) const;
941 void create_sub_classes();
942 void create_attributes();
944 void create_methods();
945
946 void lock_file(const char*);
947
948 bool check_relationships(std::ostringstream& out, bool print_file_name) const noexcept;
949
950 // valid xml tags and attributes
951
952 static const char class_xml_tag[];
953 static const char name_xml_attr[];
954 static const char description_xml_attr[];
955 static const char is_abstract_xml_attr[];
956 static const char superclass_xml_attr[];
957};
958
959//
960// INLINE METHODS
961//
962
963inline bool
965{
966 return ((this == &c || p_name == c.p_name) ? true : false);
967}
968
969inline size_t
971{
972 return (p_attributes ? p_attributes->size() : 0);
973}
974
975inline size_t
977{
978 return (p_all_attributes ? p_all_attributes->size() : 0);
979}
980
981inline size_t
983{
984 return (p_relationships ? p_relationships->size() : 0);
985}
986
987inline size_t
989{
990 return (p_all_relationships ? p_all_relationships->size() : 0);
991}
992
993inline size_t
995{
996 return (p_methods ? p_methods->size() : 0);
997}
998
999inline size_t
1001{
1002 return (p_all_methods ? p_all_methods->size() : 0);
1003}
1004
1005inline OksClass::OksClass(const char* name, size_t len)
1006 : p_name(name, len)
1007 , p_super_classes(0)
1008 , p_attributes(0)
1009 , p_relationships(0)
1010 , p_methods(0)
1011 , p_abstract(false)
1012 , p_transient(true)
1013 , p_to_be_deleted(false)
1016 , p_all_attributes(0)
1018 , p_all_methods(0)
1020 , p_kernel(0)
1021 , p_instance_size(0)
1022 , p_data_info(0)
1023 , p_objects(0)
1024 , p_indices(0)
1025{
1026 ;
1027}
1028
1029} // namespace oks
1030} // namespace dunedaq
1031#endif
static std::string fill(const OksAttribute &a, const OksObject *o, const std::string &reason) noexcept
Definition class.cpp:47
AttributeConversionFailed(const OksAttribute &a, const OksObject *o, const exception &reason) noexcept
Definition class.hpp:70
virtual ~AttributeConversionFailed() noexcept
Definition class.hpp:74
BadReqExp(const std::string &what, const std::string &reason) noexcept
Definition class.hpp:189
virtual ~BadReqExp() noexcept
Definition class.hpp:193
static std::string fill(const std::string &what, const std::string &reason) noexcept
Definition query.cpp:50
CannotDestroyClass(const OksClass &c, const exception &reason) noexcept
Definition class.hpp:106
CannotDestroyClass(const OksClass &c, const std::string &reason) noexcept
Definition class.hpp:110
static std::string fill(const OksClass &c, const std::string &reason) noexcept
Definition class.cpp:61
virtual ~CannotDestroyClass() noexcept
Definition class.hpp:114
static std::string fill(const OksClass &c, const std::string &name) noexcept
Definition class.cpp:41
virtual ~CannotFindSuperClass() noexcept
Definition class.hpp:58
CannotFindSuperClass(const OksClass &c, const std::string &name) noexcept
Definition class.hpp:54
virtual ~CannotRegisterClass() noexcept
Definition class.hpp:94
static std::string fill(const OksClass &c, const std::string &what, const std::string &reason) noexcept
Definition class.cpp:55
CannotRegisterClass(const OksClass &c, const std::string &what, const std::string &reason) noexcept
Definition class.hpp:90
CannotRegisterClass(const OksClass &c, const std::string &what, const exception &reason) noexcept
Definition class.hpp:86
static std::string fill(const OksClass &c, const std::string &oid, const char *op, const std::string &reason) noexcept
Definition class.cpp:67
ObjectOperationFailed(const OksClass &c, const std::string &oid, const char *op, const std::string &reason) noexcept
Definition class.hpp:130
ObjectOperationFailed(const OksClass &c, const std::string &oid, const char *op, const exception &reason) noexcept
Definition class.hpp:126
virtual ~ObjectOperationFailed() noexcept
Definition class.hpp:134
OKS attribute class.
Definition attribute.hpp:94
The OKS class.
Definition class.hpp:223
std::list< std::string * > * p_super_classes
Definition class.hpp:882
OksKernel * p_kernel
Definition class.hpp:900
void(*) NotifyFN(OksClass *)
Definition class.hpp:873
friend class OksMethod
Definition class.hpp:228
bool get_is_abstract() const noexcept
Definition class.hpp:392
const OksObject::Map * objects() const noexcept
Definition class.hpp:762
OksDataInfo * get_data_info(const std::string &s) const noexcept
Get OKS data information for attribute or relationship.
Definition class.hpp:825
std::set< OksClass *, SortByName > Set
Definition class.hpp:243
const FList * all_sub_classes() const noexcept
Definition class.hpp:463
OksRelationship * find_direct_relationship(const std::string &name) const noexcept
Find direct relationship.
Definition class.cpp:1130
bool operator==(const OksClass &) const
The equality operator.
Definition class.hpp:964
size_t number_of_objects() const noexcept
Definition class.cpp:1433
void set_file(OksFile *f, bool update_owner=true)
Move class to different file.
Definition class.cpp:277
bool check_relationships(std::ostringstream &out, bool print_file_name) const noexcept
Definition class.cpp:2098
OksObject::Map * p_objects
Definition class.hpp:905
static const char superclass_xml_attr[]
Definition class.hpp:956
OksClass * find_super_class(const std::string &) const noexcept
Definition class.cpp:708
std::list< OksClass *, boost::fast_pool_allocator< OksClass * > > FList
Definition class.hpp:254
OksAttribute * find_direct_attribute(const std::string &name) const noexcept
Find direct attribute.
Definition class.cpp:973
void add_super_class(const std::string &name)
Definition class.cpp:840
unsigned int p_id
Definition class.hpp:897
size_t number_of_direct_attributes() const noexcept
Definition class.hpp:970
friend class OksAttribute
Definition class.hpp:226
static void destroy_list(T list)
Definition class.cpp:198
OksMethod * find_method(const std::string &name) const noexcept
Find method (search in this and base classes).
Definition class.cpp:1302
size_t number_of_direct_relationships() const noexcept
Definition class.hpp:982
const std::list< OksMethod * > * all_methods() const noexcept
Definition class.hpp:667
void registrate_class(bool skip_registered)
Definition class.cpp:1979
size_t number_of_direct_methods() const noexcept
Definition class.hpp:994
FList * p_all_sub_classes
Definition class.hpp:891
const std::list< OksAttribute * > * all_attributes() const noexcept
Definition class.hpp:470
OksObject * get_object(const std::string *id) const noexcept
Definition class.hpp:787
static NotifyFN create_notify_fn
Definition class.hpp:911
friend class OksIndex
Definition class.hpp:230
std::list< OksAttribute * > * p_all_attributes
Definition class.hpp:892
static void destroy_map(T map)
Definition class.cpp:210
void add_super_classes(FList *) const
Definition class.cpp:1535
friend class OksSortedClass
Definition class.hpp:231
std::string p_description
Definition class.hpp:881
static const char class_xml_tag[]
Definition class.hpp:952
std::list< OksMethod * > * p_all_methods
Definition class.hpp:894
size_t number_of_all_methods() const noexcept
Definition class.hpp:1000
size_t number_of_all_relationships() const noexcept
Definition class.hpp:988
bool operator!=(const OksClass &) const
The not equal operator.
Definition class.cpp:354
OksRelationship * find_relationship(const std::string &name) const noexcept
Find relationship (search in this and base classes).
Definition class.cpp:1142
std::mutex p_unique_id_mutex
Definition class.hpp:909
friend class OksRelationship
Definition class.hpp:227
static const char description_xml_attr[]
Definition class.hpp:954
void swap(const OksAttribute *a1, const OksAttribute *a2)
Swap order of two attributes.
Definition class.cpp:1034
void registrate_class_change(ChangeType, const void *, bool=true)
Definition class.cpp:2009
friend class OksKernel
Definition class.hpp:225
void add(OksAttribute *a)
Add attribute.
Definition class.cpp:1009
void swap_super_classes(const std::string &c1, const std::string &c2)
Swap order of two superclasses.
Definition class.cpp:920
void registrate_relationship_change(OksRelationship *)
Definition class.cpp:1840
OksKernel * get_kernel() const noexcept
Definition class.hpp:348
void save(OksXmlOutputStream &) const
Definition class.cpp:445
void set_is_abstract(bool abstract)
Set class abstract property.
Definition class.cpp:762
OksIndex::Map * p_indices
Definition class.hpp:906
void(*) ChangeNotifyFN(OksClass *, ChangeType, const void *)
Definition class.hpp:877
static NotifyFN delete_notify_fn
Definition class.hpp:913
static const char is_abstract_xml_attr[]
Definition class.hpp:955
void remove_super_class(const std::string &name)
Definition class.cpp:887
const std::string & get_name() const noexcept
Definition class.hpp:374
OksAttribute * find_attribute(const std::string &name) const noexcept
Find attribute (search in this and base classes).
Definition class.cpp:985
std::list< OksRelationship * > * p_relationships
Definition class.hpp:884
std::string p_name
Definition class.hpp:880
const FList * all_super_classes() const noexcept
Definition class.hpp:413
const std::list< OksRelationship * > * direct_relationships() const noexcept
Definition class.hpp:572
size_t number_of_all_attributes() const noexcept
Definition class.hpp:976
void remove(const OksAttribute *a)
Remove attribute.
Definition class.cpp:1082
static ChangeNotifyFN change_notify_fn
Definition class.hpp:912
friend class OksMethodImplementation
Definition class.hpp:229
void set_description(const std::string &description)
Set class description.
Definition class.cpp:745
std::shared_mutex p_mutex
Definition class.hpp:908
OksClass * source_class(const OksAttribute *a) const noexcept
Get class owning given attribute.
Definition class.cpp:1120
const std::string & get_description() const noexcept
Definition class.hpp:378
static const char name_xml_attr[]
Definition class.hpp:953
bool compare_without_methods(const OksClass &c) const noexcept
Definition class.cpp:297
OksClass(const std::string &name, OksKernel *kernel, bool transient=false)
Create OKS class.
Definition class.cpp:81
friend class OksObject
Definition class.hpp:224
std::vector< OksClass * > * p_inheritance_hierarchy
Definition class.hpp:896
const std::list< OksMethod * > * direct_methods() const noexcept
Definition class.hpp:671
std::list< OksAttribute * > * p_attributes
Definition class.hpp:883
OksObject * get_object(const std::string &id) const noexcept
Get object by ID.
Definition class.cpp:1479
OksDataInfo * data_info(const std::string &s) const noexcept
Get OKS data information for attribute or relationship.
Definition class.hpp:813
void k_add(OksAttribute *a)
Kernel method to add attribute.
Definition class.cpp:998
void registrate_attribute_change(OksAttribute *)
Definition class.cpp:1804
std::list< OksMethod * > * p_methods
Definition class.hpp:885
std::list< OksObject * > * create_list_of_all_objects() const noexcept
Get all objects of the class (including derived).
Definition class.cpp:1444
OksDataInfo::Map * p_data_info
Definition class.hpp:904
const std::list< OksAttribute * > * direct_attributes() const noexcept
Definition class.hpp:474
void lock_file(const char *)
Definition class.cpp:733
OksFile * get_file() const noexcept
Definition class.hpp:352
OksObject::List * execute_query(OksQuery *query) const
Execute query.
Definition query.cpp:446
const std::list< std::string * > * direct_super_classes() const noexcept
Definition class.hpp:417
void k_add_super_class(const std::string &name)
Definition class.cpp:830
static void destroy(OksClass *c)
Destroy OKS class.
Definition class.cpp:172
std::list< OksRelationship * > * p_all_relationships
Definition class.hpp:893
OksMethod * find_direct_method(const std::string &name) const noexcept
Find direct method.
Definition class.cpp:1290
ChangeType
Information about class property changes.
Definition class.hpp:840
@ ChangeAttributeMultiValueCardinality
Definition class.hpp:851
friend std::ostream & operator<<(std::ostream &, const OksClass &)
Stream operator.
Definition class.cpp:381
std::map< const char *, OksClass *, SortStr > Map
Definition class.hpp:252
bool has_direct_super_class(const std::string &) const noexcept
Definition class.cpp:721
const std::list< OksRelationship * > * all_relationships() const noexcept
Definition class.hpp:568
FList * p_all_super_classes
Definition class.hpp:890
Provides interface to the OKS XML schema and data files.
Definition file.hpp:355
std::map< const OksAttribute *, OksIndex *, SortByName > Map
Definition index.hpp:46
Provides interface to the OKS kernel.
Definition kernel.hpp:615
OKS method class.
Definition method.hpp:147
OksObject describes instance of OksClass.
Definition object.hpp:1144
std::list< OksObject * > List
Definition object.hpp:1179
std::unordered_map< const std::string *, OksObject *, oks::hash_str, oks::equal_str > Map
Definition object.hpp:1170
OKS query expression class.
Definition query.hpp:112
OKS query class.
Definition query.hpp:40
static std::string fill(const OksQueryExpression &query, const OksClass &c, const std::string &reason) noexcept
Definition query.cpp:42
QueryFailed(const OksQueryExpression &query, const OksClass &c, const exception &reason) noexcept
Definition class.hpp:169
virtual ~QueryFailed() noexcept
Definition class.hpp:177
QueryFailed(const OksQueryExpression &query, const OksClass &c, const std::string &reason) noexcept
Definition class.hpp:173
virtual ~SetOperationFailed() noexcept
Definition class.hpp:157
SetOperationFailed(const char *op, const exception &reason) noexcept
Definition class.hpp:149
static std::string fill(const char *op, const std::string &reason) noexcept
Definition class.cpp:76
SetOperationFailed(const char *op, const std::string &reason) noexcept
Definition class.hpp:153
virtual const char * what() const noexcept
exception(const std::string &what_arg, int level_arg) noexcept
Definition xml.cpp:41
The DUNE-DAQ namespace.
FELIX Initialization std::string initerror FELIX queue timed out
bool operator()(OksClass *c1, OksClass *c2) const
Definition class.hpp:240
bool operator()(const char *c1, const char *c2) const
Definition class.hpp:249
Struct OKS data information.
Definition object.hpp:379
std::map< std::string, OksDataInfo * > Map
Declare map of pointers to OksDataInfo (unsorted by name).
Definition object.hpp:383