DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
index.hpp
Go to the documentation of this file.
1#ifndef __OKS_INDEX
2#define __OKS_INDEX
3
4#include "oks/query.hpp"
5#include "oks/attribute.hpp"
6#include "oks/object.hpp"
7
8#include <set>
9
10namespace dunedaq {
11namespace oks {
13
14 public:
15
16 OksObjectSortBy (size_t i = 0) : offset(i) {;}
17
18 bool operator() (const OksObject * o1, const OksObject * o2) const {
19 return o1->data[offset] < o2->data[offset];
20 }
21
22
23 private:
24
25 size_t offset;
26
27};
28
29
30 class OksIndex : public std::multiset<OksObject *, OksObjectSortBy> {
31 friend class OksClass;
32 friend class OksObject;
33
34
35 public:
36
37 // Declare map of poiters to OksIndex sorted by attribute name
38
39 struct SortByName {
40 bool operator() (const OksAttribute * a1, const OksAttribute * a2) const {
41 return a1->get_name() < a2->get_name();
42 }
43 };
44
45 typedef std::map<const OksAttribute *, OksIndex *, SortByName> Map;
46
47 typedef std::multiset<OksObject *, OksObjectSortBy>::iterator Position;
48 typedef std::multiset<OksObject *, OksObjectSortBy>::const_iterator ConstPosition;
49
50
52 ~OksIndex ();
53
54 OksObject * FindFirst(OksData *d) const;
55
61
80
81 private:
82
85 size_t offset;
86
88
91
93
94 static size_t get_offset(OksClass *, OksAttribute *);
95
96};
97} // namespace oks
98} // namespace dunedaq
99#endif
OKS attribute class.
const std::string & get_name() const noexcept
out stream operator
The OKS class.
Definition class.hpp:200
std::map< const OksAttribute *, OksIndex *, SortByName > Map
Definition index.hpp:45
OksObject::List * FindLessEqualAndGreatEqual(OksData *d1, OksData *d2) const
Definition index.hpp:65
static size_t get_offset(OksClass *, OksAttribute *)
Definition index.cpp:11
OksObject::List * FindGreatEqual(OksData *d) const
Definition index.hpp:58
OksObject::List * FindEqualOrGreatEqual(OksData *d1, OksData *d2) const
Definition index.hpp:79
OksObject::List * FindLessEqual(OksData *d) const
Definition index.hpp:57
OksObject::List * FindEqualOrLessEqual(OksData *d1, OksData *d2) const
Definition index.hpp:77
OksObject::List * FindEqualAndGreat(OksData *d1, OksData *d2) const
Definition index.hpp:69
OksObject::List * FindLessAndGreatEqual(OksData *d1, OksData *d2) const
Definition index.hpp:63
OksObject::List * FindLessEqualOrGreatEqual(OksData *d1, OksData *d2) const
Definition index.hpp:74
OksObject::List * FindLessOrGreatEqual(OksData *d1, OksData *d2) const
Definition index.hpp:72
OksAttribute * a
Definition index.hpp:84
OksObject::List * FindLessOrGreat(OksData *d1, OksData *d2) const
Definition index.hpp:71
OksObject::List * FindGreat(OksData *d) const
Definition index.hpp:60
OksObject * FindFirst(OksData *d) const
Definition index.cpp:112
OksObject::List * FindEqualAndGreatEqual(OksData *d1, OksData *d2) const
Definition index.hpp:70
OksObject::List * FindLessEqualOrGreat(OksData *d1, OksData *d2) const
Definition index.hpp:73
OksObject::List * FindEqual(OksData *d) const
Definition index.hpp:56
OksObject * remove_obj(OksObject *)
Definition index.cpp:94
OksObject::List * FindEqualAndLess(OksData *d1, OksData *d2) const
Definition index.hpp:67
OksObject::List * FindEqualOrEqual(OksData *d1, OksData *d2) const
Definition index.hpp:75
OksObject::List * FindEqualAndEqual(OksData *d1, OksData *d2) const
Definition index.hpp:66
std::multiset< OksObject *, OksObjectSortBy >::iterator Position
Definition index.hpp:47
OksObject::List * FindLess(OksData *d) const
Definition index.hpp:59
OksObject::List * find_all(OksData *, OksQuery::Comparator) const
Definition index.cpp:169
std::multiset< OksObject *, OksObjectSortBy >::const_iterator ConstPosition
Definition index.hpp:48
OksObject::List * FindEqualAndLessEqual(OksData *d1, OksData *d2) const
Definition index.hpp:68
OksObject::List * FindLessAndGreat(OksData *d1, OksData *d2) const
Definition index.hpp:62
OksObject::List * FindEqualOrLess(OksData *d1, OksData *d2) const
Definition index.hpp:76
OksObject::List * FindEqualOrGreat(OksData *d1, OksData *d2) const
Definition index.hpp:78
OksIndex(OksClass *, OksAttribute *)
Definition index.cpp:18
void find_interval(OksData *, OksQuery::Comparator, ConstPosition &, ConstPosition &) const
Definition index.cpp:125
OksObject::List * FindLessEqualAndGreat(OksData *d1, OksData *d2) const
Definition index.hpp:64
bool operator()(const OksObject *o1, const OksObject *o2) const
Definition index.hpp:18
OksObject describes instance of OksClass.
Definition object.hpp:836
std::list< OksObject * > List
Definition object.hpp:875
static bool equal_cmp(const OksData *, const OksData *)
Definition query.cpp:51
static bool greater_cmp(const OksData *, const OksData *)
Definition query.cpp:56
static bool less_or_equal_cmp(const OksData *, const OksData *)
Definition query.cpp:53
bool(*) Comparator(const OksData *, const OksData *)
Definition query.hpp:88
static bool greater_or_equal_cmp(const OksData *, const OksData *)
Definition query.cpp:54
static bool less_cmp(const OksData *, const OksData *)
Definition query.cpp:55
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
bool operator()(const OksAttribute *a1, const OksAttribute *a2) const
Definition index.hpp:40