Collection.cpp
Go to the documentation of this file.
1 /*
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @package MemoryX::CommonStorage
17 * @author Alexey Kozlov ( kozlov at kit dot edu)
18 * @date 2012
19 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20 * GNU General Public License
21 */
22 
23 #include "Collection.h"
24 
25 #include <IceUtil/UUID.h>
26 
27 #include <mongo/client/dbclient.h>
28 
29 namespace memoryx
30 {
31  // Collection implementation
32  Collection::Collection(const CommonStoragePtr& dbConn, const std::string& collNS) :
33  dbConn(dbConn)
34  {
35  ns = collNS;
36  iceId.name = IceUtil::generateUUID();
37  }
38 
41  {
42  return iceId;
43  }
44 
45  // inherited from Collection
46  Ice::Int
47  Collection::count(const ::Ice::Current& c)
48  {
49  std::unique_lock lock(dbConnectionMutex);
50  return dbConn->count(ns);
51  }
52 
53  DBStorableData
54  Collection::findByMongoId(const std::string& id, const ::Ice::Current& c)
55  {
56  std::unique_lock lock(dbConnectionMutex);
57  return dbConn->findByMongoId(ns, id);
58  }
59 
60  DBStorableDataList
61  Collection::findByFieldValue(const std::string& fieldName,
62  const std::string& fieldValue,
63  const Ice::Current& c)
64  {
65  std::unique_lock lock(dbConnectionMutex);
66  return dbConn->findByFieldValue(ns, fieldName, fieldValue);
67  }
68 
69  DBStorableData
70  Collection::findOneByFieldValue(const std::string& fieldName,
71  const std::string& fieldValue,
72  const Ice::Current& c)
73  {
74  std::unique_lock lock(dbConnectionMutex);
75  return dbConn->findOneByFieldValue(ns, fieldName, fieldValue);
76  }
77 
78  DBStorableDataList
79  Collection::findByFieldValueList(const std::string& fieldName,
80  const NameList& fieldValueList,
81  const Ice::Current& c)
82  {
83  std::unique_lock lock(dbConnectionMutex);
84  return dbConn->findByFieldValueList(ns, fieldName, fieldValueList);
85  }
86 
87  DBStorableData
88  Collection::findOneByQuery(const std::string& query, const Ice::Current& c)
89  {
90  std::unique_lock lock(dbConnectionMutex);
91  return dbConn->findOneByQuery(ns, query);
92  }
93 
94  DBStorableDataList
95  Collection::findByQuery(const std::string& query, const ::Ice::Current& c)
96  {
97  std::unique_lock lock(dbConnectionMutex);
98  return dbConn->findByQuery(ns, query);
99  }
100 
101  DBStorableDataList
102  Collection::findByConstraintQuery(const std::string& query,
103  const std::string& where,
104  const Ice::Current&)
105  {
106  std::unique_lock lock(dbConnectionMutex);
107  return dbConn->findByQuery(ns, query, where);
108  }
109 
110  DBStorableDataList
111  Collection::findAll(const Ice::Current& c)
112  {
113  std::unique_lock lock(dbConnectionMutex);
114  return dbConn->findAll(ns);
115  }
116 
117  DBStorableData
118  Collection::findAllUniqueByFieldName(const std::string& fieldName, const ::Ice::Current&)
119  {
120  std::unique_lock lock(dbConnectionMutex);
121  return dbConn->findAllUniqueByFieldName(ns, fieldName);
122  }
123 
124  EntityIdList
125  Collection::findAllIds(const Ice::Current& c)
126  {
127  std::unique_lock lock(dbConnectionMutex);
128  return dbConn->findAllIds(ns);
129  }
130 
131  NameList
132  Collection::findAllFieldValues(const std::string& fieldName, const ::Ice::Current&)
133  {
134  std::unique_lock lock(dbConnectionMutex);
135  return dbConn->findAllFieldValues(ns, fieldName);
136  }
137 
138  std::string
139  Collection::insert(const DBStorableData& obj, const ::Ice::Current& c)
140  {
141  std::unique_lock lock(dbConnectionMutex);
142  return dbConn->insert(ns, obj);
143  }
144 
145  std::vector<std::string>
146  Collection::insertList(const DBStorableDataList& objectList, const Ice::Current&)
147  {
148  std::unique_lock lock(dbConnectionMutex);
149  return dbConn->insertList(ns, objectList);
150  }
151 
152  bool
153  Collection::update(const DBStorableData& obj, const ::Ice::Current& c)
154  {
155  std::unique_lock lock(dbConnectionMutex);
156  return dbConn->update(ns, obj, "_id");
157  }
158 
159  bool
160  Collection::updateWithUserKey(const DBStorableData& obj,
161  const std::string& keyField,
162  const ::Ice::Current& c)
163  {
164  std::unique_lock lock(dbConnectionMutex);
165  return dbConn->update(ns, obj, keyField);
166  }
167 
168  bool
169  Collection::updateByQuery(const std::string& query,
170  const DBStorableData& obj,
171  const ::Ice::Current& c)
172  {
173  return dbConn->updateByQuery(ns, query, mongo::fromjson(obj.JSON));
174  }
175 
176  std::string
177  Collection::save(const DBStorableData& obj, const Ice::Current& c)
178  {
179  std::unique_lock lock(dbConnectionMutex);
180  return dbConn->insert(ns, obj, true);
181  }
182 
183  bool
184  Collection::saveWithUserKey(const DBStorableData& obj,
185  const std::string& keyField,
186  const Ice::Current& c)
187  {
188  std::unique_lock lock(dbConnectionMutex);
189  return dbConn->update(ns, obj, keyField, true);
190  }
191 
192  bool
193  Collection::removeByMongoId(const std::string& id, const ::Ice::Current& c)
194  {
195  std::unique_lock lock(dbConnectionMutex);
196  return dbConn->removeByMongoId(ns, id);
197  }
198 
199  bool
200  Collection::removeByFieldValue(const std::string& fieldName,
201  const std::string& fieldValue,
202  const Ice::Current& c)
203  {
204  std::unique_lock lock(dbConnectionMutex);
205  return dbConn->removeByFieldValue(ns, fieldName, fieldValue);
206  }
207 
208  bool
209  Collection::removeByQuery(const std::string& query, const ::Ice::Current& c)
210  {
211  std::unique_lock lock(dbConnectionMutex);
212  return dbConn->removeByQuery(ns, query);
213  }
214 
215  bool
216  Collection::clear(const ::Ice::Current& c)
217  {
218  std::unique_lock lock(dbConnectionMutex);
219  return dbConn->clearCollection(ns);
220  }
221 
222  bool
223  Collection::ensureIndex(const std::string& fieldName, bool unique, const ::Ice::Current& c)
224  {
225  std::unique_lock lock(dbConnectionMutex);
226  return dbConn->ensureIndex(ns, fieldName, unique);
227  }
228 
229  std::string
230  Collection::getNS(const ::Ice::Current& c)
231  {
232  return ns;
233  }
234 } // namespace memoryx
memoryx::Collection::findByQuery
DBStorableDataList findByQuery(const std::string &query, const ::Ice::Current &c) override
Definition: Collection.cpp:95
memoryx::Collection::getNS
std::string getNS(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:230
memoryx::Collection::getIceId
Ice::Identity getIceId() const
Definition: Collection.cpp:40
memoryx::Collection::findByConstraintQuery
DBStorableDataList findByConstraintQuery(const std::string &query, const std::string &where, const Ice::Current &) override
Definition: Collection.cpp:102
memoryx::Collection::removeByMongoId
bool removeByMongoId(const std::string &id, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:193
memoryx::Collection::findAllFieldValues
NameList findAllFieldValues(const std::string &fieldName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:132
memoryx::Collection::removeByFieldValue
bool removeByFieldValue(const std::string &fieldName, const std::string &fieldValue, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:200
memoryx::Collection::update
bool update(const DBStorableData &obj, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:153
memoryx
VirtualRobot headers.
Definition: CommonPlacesTester.cpp:48
c
constexpr T c
Definition: UnscentedKalmanFilterTest.cpp:46
memoryx::Collection::findOneByFieldValue
DBStorableData findOneByFieldValue(const std::string &fieldName, const ::std::string &fieldValue, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:70
Collection.h
memoryx::Collection::insertList
std::vector< std::string > insertList(const DBStorableDataList &objectList, const Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:146
memoryx::Collection::saveWithUserKey
bool saveWithUserKey(const DBStorableData &obj, const std::string &keyField, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:184
memoryx::Collection::findAllIds
EntityIdList findAllIds(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:125
memoryx::Collection::findAll
DBStorableDataList findAll(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:111
memoryx::Collection::Collection
Collection(const CommonStoragePtr &dbConn, const std::string &collNS)
Definition: Collection.cpp:32
GfxTL::Identity
void Identity(MatrixXX< N, N, T > *a)
Definition: MatrixXX.h:570
memoryx::Collection::ensureIndex
bool ensureIndex(const std::string &fieldName, bool unique, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:223
memoryx::Collection::removeByQuery
bool removeByQuery(const std::string &query, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:209
memoryx::Collection::updateWithUserKey
bool updateWithUserKey(const DBStorableData &obj, const std::string &keyField, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:160
memoryx::Collection::save
std::string save(const DBStorableData &obj, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:177
memoryx::Collection::findByFieldValueList
DBStorableDataList findByFieldValueList(const std::string &fieldName, const NameList &fieldValueList, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:79
memoryx::Collection::insert
std::string insert(const DBStorableData &obj, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:139
memoryx::Collection::findOneByQuery
DBStorableData findOneByQuery(const std::string &query, const ::Ice::Current &c) override
Definition: Collection.cpp:88
memoryx::Collection::count
Ice::Int count(const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:47
memoryx::Collection::clear
bool clear(const ::Ice::Current &c) override
Definition: Collection.cpp:216
IceUtil::Handle< CommonStorage >
armarx::VariantType::Int
const VariantTypeId Int
Definition: Variant.h:917
memoryx::Collection::updateByQuery
bool updateByQuery(const std::string &query, const DBStorableData &obj, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:169
memoryx::Collection::findByFieldValue
DBStorableDataList findByFieldValue(const std::string &fieldName, const ::std::string &fieldValue, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:61
memoryx::Collection::findByMongoId
DBStorableData findByMongoId(const std::string &id, const ::Ice::Current &c) override
Definition: Collection.cpp:54
memoryx::Collection::findAllUniqueByFieldName
DBStorableData findAllUniqueByFieldName(const std::string &fieldName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition: Collection.cpp:118