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 
31 namespace armarx
32 {
34  {
35  std::string key;
36  nlohmann::json value;
37  std::string provider;
38  long revision = 0;
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 
62  void postCreatePropertyDefinitions(PropertyDefinitionsPtr& properties) override;
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 
76 namespace armarx
77 {
79  {
81 
83 
84  void JsonStorage_storeValue(std::string const& key, nlohmann::json const& value);
86 
88  };
89 
90 } // namespace armarx
armarx::JsonStorageComponentPluginUser::plugin
JsonStorageComponentPlugin * plugin
Definition: JsonStorageComponentPlugin.h:87
armarx::JsonStorageComponentPluginUser::JsonStorage_storeValue
void JsonStorage_storeValue(std::string const &key, nlohmann::json const &value)
Definition: JsonStorageComponentPlugin.cpp:91
armarx::JsonStorageRetrievedValue::provider
std::string provider
Definition: JsonStorageComponentPlugin.h:37
armarx::plugins::JsonStorageComponentPlugin::Impl
Definition: JsonStorageComponentPlugin.cpp:8
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:68
armarx::plugins::JsonStorageComponentPlugin::retrieveValue
JsonStorageRetrievedValue retrieveValue(std::string const &key)
Definition: JsonStorageComponentPlugin.cpp:67
armarx::plugins::JsonStorageComponentPlugin::preOnConnectComponent
void preOnConnectComponent() override
Definition: JsonStorageComponentPlugin.cpp:39
armarx::plugins::JsonStorageComponentPlugin::storeValue
void storeValue(std::string const &key, nlohmann::json const &value)
Definition: JsonStorageComponentPlugin.cpp:57
plugins
cxxopts::value
std::shared_ptr< Value > value()
Definition: cxxopts.hpp:855
ManagedIceObject.h
armarx::JsonStorageRetrievedValue::revision
long revision
Definition: JsonStorageComponentPlugin.h:38
armarx::ComponentPlugin
Definition: ComponentPlugin.h:37
armarx::JsonStorageComponentPluginUser
Definition: JsonStorageComponentPlugin.h:78
armarx::armem::Time
armarx::core::time::DateTime Time
Definition: forward_declarations.h:13
armarx::plugins::JsonStorageComponentPlugin
Brief description of class JsonStorageComponentPlugin.
Definition: JsonStorageComponentPlugin.h:53
armarx::JsonStorageRetrievedValue::value
nlohmann::json value
Definition: JsonStorageComponentPlugin.h:36
armarx::plugins::JsonStorageComponentPlugin::preOnInitComponent
void preOnInitComponent() override
Definition: JsonStorageComponentPlugin.cpp:23
armarx::ManagedIceObject
The ManagedIceObject is the base class for all ArmarX objects.
Definition: ManagedIceObject.h:162
armarx::JsonStorageComponentPluginUser::JsonStorageComponentPluginUser
JsonStorageComponentPluginUser()
IceUtil::Handle< class PropertyDefinitionContainer >
armarx::plugins::JsonStorageComponentPlugin::~JsonStorageComponentPlugin
~JsonStorageComponentPlugin()
Definition: JsonStorageComponentPlugin.cpp:18
armarx::JsonStorageComponentPluginUser::JsonStorage_retrieveValue
JsonStorageRetrievedValue JsonStorage_retrieveValue(std::string const &key)
Definition: JsonStorageComponentPlugin.cpp:98
ComponentPlugin.h
armarx::JsonStorageRetrievedValue::key
std::string key
Definition: JsonStorageComponentPlugin.h:35
armarx::JsonStorageRetrievedValue
Definition: JsonStorageComponentPlugin.h:33
armarx::JsonStorageRetrievedValue::valid
bool valid
Definition: JsonStorageComponentPlugin.h:40
armarx
This file offers overloads of toIce() and fromIce() functions for STL container types.
Definition: ArmarXTimeserver.cpp:27
armarx::JsonStorageRetrievedValue::storeTimestamp
IceUtil::Time storeTimestamp
Definition: JsonStorageComponentPlugin.h:39