DatabaseTopicWriter.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 ArmarX
17* @author Philipp Schmidt( ufedv at student dot kit dot edu)
18* @date 2016
19* @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20* GNU General Public License
21*/
22#pragma once
23
24#include <filesystem>
25#include <unordered_set>
26
28#include <sqlite3.h>
29
30namespace armarx
31{
33 {
34 public:
35 DatabaseTopicWriter(const std::filesystem::path& path);
36 ~DatabaseTopicWriter() override;
37
38 private:
39 std::filesystem::path filepath;
40 sqlite3* db;
41 sqlite3_stmt* stmt;
42 bool database_open;
43 std::unordered_set<std::string> topics;
44
45 public:
46 void write(const TopicUtil::TopicData& topicData) override;
47 std::filesystem::path getFilepath() const;
48 };
49
50 using DatabaseTopicWriterPtr = std::shared_ptr<DatabaseTopicWriter>;
51} // namespace armarx
std::filesystem::path getFilepath() const
void write(const TopicUtil::TopicData &topicData) override
DatabaseTopicWriter(const std::filesystem::path &path)
This file offers overloads of toIce() and fromIce() functions for STL container types.
std::shared_ptr< DatabaseTopicWriter > DatabaseTopicWriterPtr