5 #ifndef CARMA_OBSERVERTOOLS_PDB_MONGODB_H
6 #define CARMA_OBSERVERTOOLS_PDB_MONGODB_H
8 #include <carma/observertools/ProjectDatabaseManager.h>
9 #include <carma/observertools/ProjectDatabaseManagerImpl.h>
11 #include <mongo/client/dbclient.h>
12 #include <mongo/bson/bsonobj.h>
14 #include <boost/shared_ptr.hpp>
18 typedef boost::shared_ptr<mongo::DBClientConnection> DBClientConnectionPtr;
21 namespace observertools {
23 struct PDB_DB_Params {
24 const DBClientConnectionPtr conn;
26 const std::string DATABASE_NAME;
28 const std::string PROJECTS;
29 const std::string OBSBLOCKS;
30 const std::string SUBOBSBLOCKS;
31 const std::string TRIALS;
32 const std::string SCRIPTS;
35 PDB_DB_Params(
const PDBMArgs &args);
38 std::string getCollection(
const std::string &name)
const;
43 void initializeDatabaseClientDriver();
46 void addDatabaseIndexes(
const PDB_DB_Params &db);
49 mongo::BSONObj generateQueryFromBSONObject(
const mongo::BSONObj &obj);
52 void removeFromDatabase(
const DBClientConnectionPtr conn,
const std::string &collection,
const mongo::Query &query);
55 void writeToDatabase(
const DBClientConnectionPtr conn,
const std::string &collection,
const mongo::Query &query,
const mongo::BSONObj &obj);
58 bool documentExists(
const DBClientConnectionPtr conn,
const std::string &collection,
const mongo::BSONObj &query);