|
| virtual void | add (std::size_t obj_id, std::vector< std::unique_ptr< Attribute > > attribs) override |
| |
| virtual std::vector< std::size_t > | query (const std::vector< std::unique_ptr< Attribute > > &conds) override |
| |
| virtual void | set (std::size_t obj_id, std::vector< std::unique_ptr< Attribute > > attribs) override |
| |
Definition at line 62 of file TheWarehouse.C.
◆ add()
| virtual void VecStore::add |
( |
std::size_t |
obj_id, |
|
|
std::vector< std::unique_ptr< Attribute > > |
attribs |
|
) |
| |
|
inlineoverridevirtual |
Implements WarehouseStorage.
Definition at line 65 of file TheWarehouse.C.
66 {
67 std::lock_guard<std::mutex> l(
_mutex);
68 if (obj_id !=
_data.size())
69 throw std::runtime_error("object with id " + std::to_string(obj_id) + " already added");
70 _data.push_back(std::move(attribs));
71 }
std::vector< std::vector< std::unique_ptr< Attribute > > > _data
◆ query()
| virtual std::vector< std::size_t > VecStore::query |
( |
const std::vector< std::unique_ptr< Attribute > > & |
conds | ) |
|
|
inlineoverridevirtual |
Implements WarehouseStorage.
Definition at line 74 of file TheWarehouse.C.
75 {
76 std::vector<std::size_t> ids;
77 std::lock_guard<std::mutex> l(
_mutex);
78 for (std::size_t i = 0; i <
_data.size(); i++)
79 {
80 auto & data =
_data[i];
81 bool ismatch = true;
82 for (auto & cond : conds)
83 {
84 if (!data[cond->id()]->isMatch(*cond))
85 {
86 ismatch = false;
87 break;
88 }
89 }
90 if (ismatch)
91 {
92 mooseAssert(std::find(ids.begin(), ids.end(), i) == ids.end(), "Duplicate object");
93 ids.push_back(i);
94 }
95 }
96 return ids;
97 }
◆ set()
| virtual void VecStore::set |
( |
std::size_t |
obj_id, |
|
|
std::vector< std::unique_ptr< Attribute > > |
attribs |
|
) |
| |
|
inlineoverridevirtual |
Implements WarehouseStorage.
Definition at line 99 of file TheWarehouse.C.
100 {
101 if (obj_id >
_data.size())
102 throw std::runtime_error("unknown object id " + std::to_string(obj_id));
103
104 std::lock_guard<std::mutex> l(
_mutex);
105
106 auto & dst =
_data[obj_id];
107 for (auto & attrib : attribs)
108 dst[attrib->id()] =
std::move(attrib);
109 }
◆ _data
| std::vector<std::vector<std::unique_ptr<Attribute> > > VecStore::_data |
|
private |
◆ _mutex
| std::mutex VecStore::_mutex |
|
private |
The documentation for this class was generated from the following file: