JsonStorageComponentPlugin.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 ArmarXGui::ArmarXObjects::ArmarXCoreComponentPlugins
17 * @author Fabian Paus ( fabian dot paus at kit dot edu )
18 * @date 2020
19 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20 * GNU General Public License
21 */
22
23#pragma once
24
25#include <IceUtil/Time.h>
26
27#include <SimoxUtility/json/json.hpp>
28
30
31namespace armarx
32{
34 {
35 std::string key;
36 nlohmann::json value;
37 std::string provider;
38 long revision = 0;
39 IceUtil::Time storeTimestamp;
40 bool valid = false;
41 };
42
43 namespace plugins
44 {
45
46 /**
47 * @class JsonStorageComponentPlugin
48 * @ingroup Library-ArmarXCoreComponentPlugins
49 * @brief Brief description of class JsonStorageComponentPlugin.
50 *
51 * Detailed description of class JsonStorageComponentPlugin.
52 */
54 {
55 using ComponentPlugin::ComponentPlugin;
56
58
59 void preOnInitComponent() override;
60 void preOnConnectComponent() override;
61
63
64 void storeValue(std::string const& key, nlohmann::json const& value);
65 JsonStorageRetrievedValue retrieveValue(std::string const& key);
66
67
68 struct Impl;
69 std::unique_ptr<Impl> impl;
70 };
71 } // namespace plugins
72} // namespace armarx
73
75
76namespace armarx
77{
89
90} // namespace armarx
ManagedIceObject(ManagedIceObject const &other)
This file is part of ArmarX.
This file offers overloads of toIce() and fromIce() functions for STL container types.
IceUtil::Handle< class PropertyDefinitionContainer > PropertyDefinitionsPtr
PropertyDefinitions smart pointer type.
armarx::plugins::JsonStorageComponentPlugin JsonStorageComponentPlugin
JsonStorageRetrievedValue JsonStorage_retrieveValue(std::string const &key)
void JsonStorage_storeValue(std::string const &key, nlohmann::json const &value)
Brief description of class JsonStorageComponentPlugin.
void storeValue(std::string const &key, nlohmann::json const &value)
void postCreatePropertyDefinitions(PropertyDefinitionsPtr &properties) override
JsonStorageRetrievedValue retrieveValue(std::string const &key)