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