RTC Toolkit 4.0.1
Loading...
Searching...
No Matches
runtimeRepoIf.hpp
Go to the documentation of this file.
1
13#ifndef RTCTK_COMPONENTFRAMEWORK_RUNTIMEREPOIF_HPP
14#define RTCTK_COMPONENTFRAMEWORK_RUNTIMEREPOIF_HPP
15
16#include <mutex>
17
20
22
28class RuntimeRepoIf : virtual public RepositoryIf, virtual public RepositorySubscriberIf {
29public:
37 using AdapterIdType = elt::mal::Uri;
38
39 virtual ~RuntimeRepoIf() = default;
40
61 static std::unique_ptr<RuntimeRepoIf> CreateAdapter(const elt::mal::Uri& uri);
62
70 std::string GetDefaultServerAlias() const;
71
85 void SetDefaultServerAlias(const std::string& server_alias);
86
103 virtual void CreateDataPoint(const DataPointPath& path,
104 const std::type_info& type,
105 const std::string& server_alias) = 0;
106
108
126 template <typename T>
128 const T default_value,
129 const std::string& server_alias);
130
139 virtual std::string GetServerAlias(const DataPointPath& path) const = 0;
140
141private:
149 mutable std::mutex m_mutex;
150
152 std::string m_server_alias;
153};
154
155template <typename T>
157 const T default_value,
158 const std::string& server_alias) {
159 CreateDataPoint(path, typeid(T), server_alias);
160 SetDataPoint(path, default_value);
161}
162
163} // namespace rtctk::componentFramework
164
165#endif // RTCTK_COMPONENTFRAMEWORK_RUNTIMEREPOIF_HPP
This class provides a wrapper for a data point path.
Definition: dataPointPath.hpp:73
Abstract interface providing basic read and write facilities to a repository.
Definition: repositoryIf.hpp:38
virtual void CreateDataPoint(const DataPointPath &path, const std::type_info &type)=0
Creates a new datapoint in the repository with a specified type.
void SetDataPoint(const DataPointPath &path, const T value)
Sets a datapoint in the repository.
Definition: repositoryIf.hpp:595
Abstract interface providing subscription facilities for a repository.
Definition: repositorySubscriberIf.hpp:29
Base interface for all Runtime Configuration Repository adapters.
Definition: runtimeRepoIf.hpp:28
virtual std::string GetServerAlias(const DataPointPath &path) const =0
Fetches the server alias for a specific datapoint.
static std::unique_ptr< RuntimeRepoIf > CreateAdapter(const elt::mal::Uri &uri)
Factory method used to create the appropriate Runtime Configuration Repository adapter depending on t...
Definition: runtimeRepoIf.cpp:18
elt::mal::Uri AdapterIdType
The type used to distinguish between different adapters implementing RuntimeRepoIf.
Definition: runtimeRepoIf.hpp:37
std::string GetDefaultServerAlias() const
Get the current default server alias setting.
Definition: runtimeRepoIf.cpp:32
void SetDefaultServerAlias(const std::string &server_alias)
Set the current default server alias setting.
Definition: runtimeRepoIf.cpp:41
virtual void CreateDataPoint(const DataPointPath &path, const std::type_info &type, const std::string &server_alias)=0
Creates a new datapoint in the repository with a specified type on a particular external Redis server...
Definition: commandReplier.cpp:22
Header file for RepositoryIf and related base classes.
Header file for RepositorySubscriberIf and related base classes.