Database.h
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 2013
19* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20* GNU General Public License
21*/
22
23
24#pragma once
25
26#include <mutex>
27
28#include <MemoryX/interface/components/CommonStorageInterface.h>
29
30namespace memoryx
31{
32 /*!
33 * \brief The Database class provides an interface to a database.
34 */
35 class Database : virtual public DatabaseInterface
36 {
37 public:
38 Database(const CommonStorageInterfacePtr& dbConn, const std::string& dbName);
39 ~Database() override;
40
41 CollectionInterfacePrx
42 requestCollection(const ::std::string& collName,
43 const ::Ice::Current& = Ice::emptyCurrent) override;
44 void releaseCollection(const ::memoryx::CollectionInterfacePrx& coll,
45 const ::Ice::Current& = Ice::emptyCurrent) override;
46 void dropCollection(const ::std::string& collName,
47 const ::Ice::Current& = Ice::emptyCurrent) override;
48
49 std::string getName(const ::Ice::Current& = Ice::emptyCurrent) override;
50
51 Ice::Identity getIceId() const;
52
53 private:
54 CommonStorageInterfacePtr dbConn;
55 std::mutex dbConnectionMutex;
56 std::string dbName;
57
58 Ice::Identity iceId;
59
60 std::string getCollectionNS(std::string collName);
61 };
62
64
65} // namespace memoryx
void dropCollection(const ::std::string &collName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition Database.cpp:52
Ice::Identity getIceId() const
Definition Database.cpp:65
CollectionInterfacePrx requestCollection(const ::std::string &collName, const ::Ice::Current &=Ice::emptyCurrent) override
Definition Database.cpp:38
std::string getName(const ::Ice::Current &=Ice::emptyCurrent) override
Definition Database.cpp:59
Database(const CommonStorageInterfacePtr &dbConn, const std::string &dbName)
Definition Database.cpp:29
~Database() override
void releaseCollection(const ::memoryx::CollectionInterfacePrx &coll, const ::Ice::Current &=Ice::emptyCurrent) override
Definition Database.cpp:45
VirtualRobot headers.
IceUtil::Handle< Database > DatabasePtr
Definition Database.h:63