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 <SimoxUtility/json/json.hpp>
26 
28 
29 #include <IceUtil/Time.h>
30 
31 
32 namespace armarx
33 {
35  {
36  std::string key;
37  nlohmann::json value;
38  std::string provider;
39  long revision = 0;
41  bool valid = false;
42  };
43 
44  namespace plugins
45  {
46 
47  /**
48  * @class JsonStorageComponentPlugin
49  * @ingroup Library-ArmarXCoreComponentPlugins
50  * @brief Brief description of class JsonStorageComponentPlugin.
51  *
52  * Detailed description of class JsonStorageComponentPlugin.
53  */
55  {
56  using ComponentPlugin::ComponentPlugin;
57 
59 
60  void preOnInitComponent() override;
61  void preOnConnectComponent() override;
62 
63  void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override;
64 
65  void storeValue(std::string const& key, nlohmann::json const& value);
66  JsonStorageRetrievedValue retrieveValue(std::string const& key);
67 
68 
69  struct Impl;
70  std::unique_ptr<Impl> impl;
71  };
72  }
73 }
74 
75 
77 
78 namespace armarx
79 {
81  {
83 
85 
86  void JsonStorage_storeValue(std::string const& key, nlohmann::json const& value);
88 
90  };
91 
92 }
armarx::JsonStorageComponentPluginUser::plugin
JsonStorageComponentPlugin * plugin
Definition: JsonStorageComponentPlugin.h:89
armarx::JsonStorageComponentPluginUser::JsonStorage_storeValue
void JsonStorage_storeValue(std::string const &key, nlohmann::json const &value)
Definition: JsonStorageComponentPlugin.cpp:88
armarx::JsonStorageRetrievedValue::provider
std::string provider
Definition: JsonStorageComponentPlugin.h:38
armarx::plugins::JsonStorageComponentPlugin::Impl
Definition: JsonStorageComponentPlugin.cpp:10
armarx::plugins::JsonStorageComponentPlugin::postCreatePropertyDefinitions
void postCreatePropertyDefinitions(PropertyDefinitionsPtr &properties) override
Definition: JsonStorageComponentPlugin.cpp:45
armarx::plugins::JsonStorageComponentPlugin::impl
std::unique_ptr< Impl > impl
Definition: JsonStorageComponentPlugin.h:69
armarx::plugins::JsonStorageComponentPlugin::retrieveValue
JsonStorageRetrievedValue retrieveValue(std::string const &key)
Definition: JsonStorageComponentPlugin.cpp:65
armarx::plugins::JsonStorageComponentPlugin::preOnConnectComponent
void preOnConnectComponent() override
Definition: JsonStorageComponentPlugin.cpp:40
armarx::plugins::JsonStorageComponentPlugin::storeValue
void storeValue(std::string const &key, nlohmann::json const &value)
Definition: JsonStorageComponentPlugin.cpp:56
plugins
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:926
ManagedIceObject.h
armarx::JsonStorageRetrievedValue::revision
long revision
Definition: JsonStorageComponentPlugin.h:39
armarx::ComponentPlugin
Definition: ComponentPlugin.h:38
armarx::JsonStorageComponentPluginUser
Definition: JsonStorageComponentPlugin.h:80
armarx::armem::Time
armarx::core::time::DateTime Time
Definition: forward_declarations.h:13
armarx::plugins::JsonStorageComponentPlugin
Brief description of class JsonStorageComponentPlugin.
Definition: JsonStorageComponentPlugin.h:54
armarx::JsonStorageRetrievedValue::value
nlohmann::json value
Definition: JsonStorageComponentPlugin.h:37
armarx::plugins::JsonStorageComponentPlugin::preOnInitComponent
void preOnInitComponent() override
Definition: JsonStorageComponentPlugin.cpp:25
armarx::ManagedIceObject
The ManagedIceObject is the base class for all ArmarX objects.
Definition: ManagedIceObject.h:163
armarx::JsonStorageComponentPluginUser::JsonStorageComponentPluginUser
JsonStorageComponentPluginUser()
IceUtil::Handle< class PropertyDefinitionContainer >
armarx::plugins::JsonStorageComponentPlugin::~JsonStorageComponentPlugin
~JsonStorageComponentPlugin()
Definition: JsonStorageComponentPlugin.cpp:20
armarx::JsonStorageComponentPluginUser::JsonStorage_retrieveValue
JsonStorageRetrievedValue JsonStorage_retrieveValue(std::string const &key)
Definition: JsonStorageComponentPlugin.cpp:93
ComponentPlugin.h
armarx::JsonStorageRetrievedValue::key
std::string key
Definition: JsonStorageComponentPlugin.h:36
armarx::JsonStorageRetrievedValue
Definition: JsonStorageComponentPlugin.h:34
armarx::JsonStorageRetrievedValue::valid
bool valid
Definition: JsonStorageComponentPlugin.h:41
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:28
armarx::JsonStorageRetrievedValue::storeTimestamp
IceUtil::Time storeTimestamp
Definition: JsonStorageComponentPlugin.h:40