RTC Toolkit 5.1.0
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
rtctk::componentFramework::RuntimeRepoAdapterLegacy Class Reference

Implementation of the Runtime Configuration Repository backed by the OLDB. More...

#include <rtctk/componentFramework/runtimeRepoAdapterLegacy.hpp>

Inheritance diagram for rtctk::componentFramework::RuntimeRepoAdapterLegacy:
rtctk::componentFramework::RuntimeRepoIf rtctk::componentFramework::OldbAdapterLegacy rtctk::componentFramework::RepositorySubscriberIf rtctk::componentFramework::OldbIf rtctk::componentFramework::RepositoryIf rtctk::componentFramework::RepositorySubscriberIf rtctk::componentFramework::RepositoryIf

Public Member Functions

 RuntimeRepoAdapterLegacy ()=delete
 Do not allow construction with no arguments.
 
 RuntimeRepoAdapterLegacy (const RuntimeRepoAdapterLegacy &)=delete
 This class cannot be copy constructed.
 
RuntimeRepoAdapterLegacyoperator= (const RuntimeRepoAdapterLegacy &)=delete
 This class cannot be copy assigned.
 
 RuntimeRepoAdapterLegacy (RuntimeRepoAdapterLegacy &&)=default
 Objects of this class can be moved.
 
RuntimeRepoAdapterLegacyoperator= (RuntimeRepoAdapterLegacy &&)=default
 Objects of this class can be moved with the move assignment operator.
 
 RuntimeRepoAdapterLegacy (const elt::mal::Uri &baseuri)
 Constructs an adapter for the Runtime Configuration Repository service using the OLDB backend.
 
 RuntimeRepoAdapterLegacy (const elt::mal::Uri &baseuri, const std::shared_ptr< elt::oldb::CiiOldb > &oldb)
 Constructs an adapter for the Runtime Configuration Repository service with a specific OLDB API interface.
 
virtual ~RuntimeRepoAdapterLegacy ()=default
 
void CreateDataPoint (const DataPointPath &path, const std::type_info &type) override
 Creates a new datapoint in the currently set external Redis server.
 
void CreateDataPoint (const DataPointPath &path, const std::type_info &type, const std::string &server_alias) override
 Creates a new datapoint in the repository with a specified type on a particular external Redis server.
 
std::string GetServerAlias (const DataPointPath &path) const override
 Fetches the server alias for a specific datapoint.
 
virtual void CreateDataPoint (const DataPointPath &path, const std::type_info &type, const std::string &server_alias)
 Creates a new datapoint in the repository with a specified type on a particular external Redis server.
 
template<typename T >
void CreateDataPoint (const DataPointPath &path, const T default_value, const std::string &server_alias)
 Creates a new datapoint in the repository with a default value on a particular external Redis server.
 
- Public Member Functions inherited from rtctk::componentFramework::RuntimeRepoIf
virtual ~RuntimeRepoIf ()=default
 
std::string GetDefaultServerAlias () const
 Get the current default server alias setting.
 
void SetDefaultServerAlias (const std::string &server_alias)
 Set the current default server alias setting.
 
template<typename T >
void CreateDataPoint (const DataPointPath &path, const T default_value, const std::string &server_alias)
 Creates a new datapoint in the repository with a default value on a particular external Redis server.
 
template<typename T >
void CreateDataPoint (const DataPointPath &path)
 Creates a new datapoint in the repository.
 
template<typename T >
void CreateDataPoint (const DataPointPath &path, const T &initial_value)
 Creates a new datapoint in the repository with an initial value.
 
void CreateDataPoint (const DataPointPath &path, const char *initial_value)
 
virtual void CreateDataPoint (const DataPointPath &path, const std::type_info &type)
 Creates a new datapoint in the repository with a specified type.
 
- Public Member Functions inherited from rtctk::componentFramework::RepositorySubscriberIf
 RepositorySubscriberIf ()=default
 
virtual ~RepositorySubscriberIf ()=default
 
template<typename T = void, typename F , std::enable_if_t< std::is_convertible_v< F, NotifyCallbackType > or(not std::is_same_v< T, void > and std::is_convertible_v< F, ValueCallbackType< std::conditional_t< std::is_same_v< T, void >, std::byte, T > > >), bool > = true>
Subscription Subscribe (const DataPointPath &path, const F &cb_value, const ErrorCallbackType &cb_error) const
 Subscribes to datapoint values change events by registering callbacks.
 
Subscription Subscribe (const CallbackType &cb_created, const CallbackType &cb_deleted, const ErrorCallbackType &cb_error) const
 Subscribes to datapoint creation and deletion events by registering callbacks.
 
template<typename T , typename F , std::enable_if_t< not std::is_convertible_v< T, RepositorySubscriberIf::NotifyCallbackType >, bool > = true>
void Subscribe (const DataPointPath &path, T &buffer, F handler) const
 A convenience template function that will register a callback to receive new datapoint values in a synchronous manner.
 
template<typename F >
void Subscribe (const DataPointPath &path, F handler) const
 A convenience template function that will register a callback to receive datapoint value change notifications in a synchronous manner.
 
void Unsubscribe (const DataPointPath &path) const
 A simple convenience function that will deregister all callbacks for receiving new datapoint values.
 
- Public Member Functions inherited from rtctk::componentFramework::RepositoryIf
 RepositoryIf ()=default
 
virtual ~RepositoryIf ()=default
 
BatchResponse SendRequest (const BatchRequest &request)
 
BatchResponse SendRequest (const BatchRequest &request) const
 
template<typename T >
void CreateDataPoint (const DataPointPath &path)
 Creates a new datapoint in the repository.
 
template<typename T >
void CreateDataPoint (const DataPointPath &path, const T &initial_value)
 Creates a new datapoint in the repository with an initial value.
 
void CreateDataPoint (const DataPointPath &path, const char *initial_value)
 
void DeleteDataPoint (const DataPointPath &path, bool recurse=false)
 Deletes a datapoint.
 
const std::type_info & GetDataPointType (const DataPointPath &path) const
 Fetches the type of the datapoint.
 
size_t GetDataPointSize (const DataPointPath &path) const
 Fetches the size of the datapoint's data.
 
RtcVectorUInt64 GetDataPointShape (const DataPointPath &path) const
 Fetches the shape of the datapoint's data.
 
bool DataPointExists (const DataPointPath &path) const
 Checks for the existence of a datapoint in the repository.
 
std::pair< PathList, PathListGetChildren (const DataPointPath &path, bool recurse=false) const
 Queries the child datapoints and paths for a given parent path.
 
template<typename T >
GetDataPoint (const DataPointPath &path) const
 Fetches a datapoint from the repository.
 
template<typename T >
void SetDataPoint (const DataPointPath &path, const T &value)
 Sets a datapoint in the repository.
 
void SetDataPoint (const DataPointPath &path, const char *value)
 
template<typename T >
void ReadDataPoint (const DataPointPath &path, T &buffer) const
 Reads a datapoint from the repository.
 
template<typename T >
void WriteDataPoint (const DataPointPath &path, const T &buffer)
 Writes a datapoint to the repository.
 
void WriteDataPoint (const DataPointPath &path, const char *buffer)
 
template<typename... T>
void WriteDataPoints (const T &... args)
 
template<typename... T>
void ReadDataPoints (T &... args) const
 
- Public Member Functions inherited from rtctk::componentFramework::OldbAdapterLegacy
 OldbAdapterLegacy ()=delete
 Do not allow construction with no arguments.
 
 OldbAdapterLegacy (const OldbAdapterLegacy &)=delete
 This class cannot be copy constructed.
 
OldbAdapterLegacyoperator= (const OldbAdapterLegacy &)=delete
 This class cannot be copy assigned.
 
 OldbAdapterLegacy (OldbAdapterLegacy &&)=default
 Objects of this class can be moved.
 
OldbAdapterLegacyoperator= (OldbAdapterLegacy &&)=default
 Objects of this class can be moved with the move assignment operator.
 
 OldbAdapterLegacy (const elt::mal::Uri &baseuri)
 Constructs an adapter for the OLDB service with the default OLDB API interface.
 
 OldbAdapterLegacy (const elt::mal::Uri &baseuri, const std::shared_ptr< elt::oldb::CiiOldb > &oldb)
 Constructs an adapter for the OLDB service with a specific OLDB API interface.
 
virtual ~OldbAdapterLegacy ()
 Destroys the adapter for the OLDB service releasing allocated resources.
 
elt::mal::Uri GetBaseUri () const
 Get the base URI used when creating this adapter object.
 
Response SendReadRequest (const ReadRequest &request) const override
 Sends a request to read data from the repository.
 
Response SendWriteRequest (const WriteRequest &request) override
 Sends a request to write data to the repository.
 
Response SendSubscribeRequest (const SubscribeRequest &request) const override
 This is called to asynchronously send a subscription request for datapoints.
 
Response SendUnsubscribeRequest (const UnsubscribeRequest &request) const override
 This is called to asynchronously send a request to unsubscribe from various notifications.
 
template<typename T , typename U >
void CastAndRegisterSubscription (const SubscribeRequest::Parameters &params, const std::shared_ptr< CiiOldbTypedDataBase > &datapoint, std::function< void(T *, const std::shared_ptr< CiiOldbDpValue< U > > &)> write_function) const
 
template<typename T >
Lut::TableEntries BindTypeHandlers ()
 
template<typename T >
void CreateDataPoint (const DataPointPath &path)
 Creates a new datapoint in the repository.
 
template<typename T >
void CreateDataPoint (const DataPointPath &path, const T &initial_value)
 Creates a new datapoint in the repository with an initial value.
 
void CreateDataPoint (const DataPointPath &path, const char *initial_value)
 
- Public Member Functions inherited from rtctk::componentFramework::OldbIf
virtual ~OldbIf ()=default
 

Static Public Member Functions

static void InitMetadata ()
 Initialises the type metadata in the CII configuration service for the Runtime Configuration Repository.
 
- Static Public Member Functions inherited from rtctk::componentFramework::RuntimeRepoIf
static std::unique_ptr< RuntimeRepoIfCreateAdapter (const elt::mal::Uri &uri)
 Factory method used to create the appropriate Runtime Configuration Repository adapter depending on the URI scheme.
 
- Static Public Member Functions inherited from rtctk::componentFramework::RepositoryIf
static const std::type_info & StringToType (const std::string &arg)
 Converts an RTC type string to a type_info.
 
static std::string TypeToString (const std::type_info &arg)
 Converts a type_info to an RTC type string.
 
- Static Public Member Functions inherited from rtctk::componentFramework::OldbAdapterLegacy
static void InitMetadata ()
 Initialises the type metadata in the CII configuration service for the OLDB.
 
- Static Public Member Functions inherited from rtctk::componentFramework::OldbIf
static std::unique_ptr< OldbIfCreateAdapter (const elt::mal::Uri &uri)
 Factory method used to create the appropriate OLDB adapter depending on the URI scheme.
 

Static Public Attributes

static const std::string SUPPORTED_URI_SCHEME = "cii.oldb"
 
- Static Public Attributes inherited from rtctk::componentFramework::OldbAdapterLegacy
static const std::string SUPPORTED_URI_SCHEME = "cii.oldb.legacy"
 

Additional Inherited Members

- Public Types inherited from rtctk::componentFramework::RuntimeRepoIf
using AdapterIdType = elt::mal::Uri
 The type used to distinguish between different adapters implementing RuntimeRepoIf.
 
- Public Types inherited from rtctk::componentFramework::RepositorySubscriberIf
template<typename T >
using ValueCallbackType = std::function<void(const DataPointPath&, T&, const MetaData&)>
 
using NotifyCallbackType = std::function<void(const DataPointPath&, const MetaData&)>
 
using ErrorCallbackType = std::function<void(std::exception_ptr)>
 
using SubscriptionId = size_t
 
- Public Types inherited from rtctk::componentFramework::RepositoryIf
using PathList = std::vector<DataPointPath>
 
using Clock = taiclock::TaiClock
 
using Timestamp = Clock::time_point
 
using CallbackType = std::function<void(const DataPointPath&)>
 Signature of the callback functions that can be registered with the repository requests.
 
- Public Types inherited from rtctk::componentFramework::OldbIf
using AdapterIdType = elt::mal::Uri
 The type used to distinguish between different adapters implementing OldbIf.
 
- Protected Types inherited from rtctk::componentFramework::RepositoryIf
using RequestList = std::vector<std::any>
 
- Protected Member Functions inherited from rtctk::componentFramework::OldbAdapterLegacy
void DeleteDataPointLegacy (const DataPointPath &path) override
 Deletes a datapoint in the OLDB.
 
const std::type_info & GetDataPointTypeLegacy (const DataPointPath &path) const override
 Retrieves the corresponding C++ type for the datapoint from the OLDB.
 
std::size_t GetDataPointSizeLegacy (const DataPointPath &path) const override
 Returns the size of a datapoint in the OLDB.
 
bool DataPointExistsLegacy (const DataPointPath &path) const override
 Checks for the existence of a datapoint in the repository.
 
std::pair< PathList, PathListGetChildrenLegacy (const DataPointPath &path) const override
 Queries the datapoints and child paths for a given path.
 
void SetMetadataInstanceMap (const std::map< std::type_index, std::string > &map)
 Sets the type_index to OLDB metadata instance name map.
 
void SetTypeInfoMap (const std::map< std::string, const std::type_info & > &map)
 Sets the OLDB metadata instance name to type_info map.
 
elt::oldb::CiiOldbDpCreateContext GetDataPointCreateContext () const
 Get the datapoint creation context used by the underlying OLDB client object.
 
void SetDataPointCreateContext (elt::oldb::CiiOldbDpCreateContext &context)
 Sets a new datapoint creation context on the underlying OLDB client object.
 

Detailed Description

Implementation of the Runtime Configuration Repository backed by the OLDB.

Deprecated
Deprecated
The cii.oldb URI scheme for the Runtime Configuration Repository should no longer be used.

Constructor & Destructor Documentation

◆ RuntimeRepoAdapterLegacy() [1/5]

rtctk::componentFramework::RuntimeRepoAdapterLegacy::RuntimeRepoAdapterLegacy ( )
delete

Do not allow construction with no arguments.

◆ RuntimeRepoAdapterLegacy() [2/5]

rtctk::componentFramework::RuntimeRepoAdapterLegacy::RuntimeRepoAdapterLegacy ( const RuntimeRepoAdapterLegacy & )
delete

This class cannot be copy constructed.

◆ RuntimeRepoAdapterLegacy() [3/5]

rtctk::componentFramework::RuntimeRepoAdapterLegacy::RuntimeRepoAdapterLegacy ( RuntimeRepoAdapterLegacy && )
default

Objects of this class can be moved.

◆ RuntimeRepoAdapterLegacy() [4/5]

rtctk::componentFramework::RuntimeRepoAdapterLegacy::RuntimeRepoAdapterLegacy ( const elt::mal::Uri & baseuri)
explicit

Constructs an adapter for the Runtime Configuration Repository service using the OLDB backend.

Parameters
[in]baseuriThe URI containing a base path where the datapoints are stored. The URI must use the cii.oldb scheme.

◆ RuntimeRepoAdapterLegacy() [5/5]

rtctk::componentFramework::RuntimeRepoAdapterLegacy::RuntimeRepoAdapterLegacy ( const elt::mal::Uri & baseuri,
const std::shared_ptr< elt::oldb::CiiOldb > & oldb )
explicit

Constructs an adapter for the Runtime Configuration Repository service with a specific OLDB API interface.

Parameters
[in]baseuriThe URI containing a base path where the datapoints are stored. The URI must use the cii.oldb scheme.
[in]oldbThe OLDB API client object to use under the hood.

◆ ~RuntimeRepoAdapterLegacy()

virtual rtctk::componentFramework::RuntimeRepoAdapterLegacy::~RuntimeRepoAdapterLegacy ( )
virtualdefault

Member Function Documentation

◆ CreateDataPoint() [1/4]

void rtctk::componentFramework::RuntimeRepoAdapterLegacy::CreateDataPoint ( const DataPointPath & path,
const std::type_info & type )
overridevirtual

Creates a new datapoint in the currently set external Redis server.

The external Redis server is identified by a server alias name. The current server alias to use when creating the new datapoint is configured with the SetServerAlias method. If no server alias was set then this method falls back to default datapoint creation in the central OLDB.

Parameters
[in]pathThe datapoint path that should be created.
[in]typeA type identifier object returned by typeid indicating the type of the new datapoint. See RepositoryIf::CreateDataPoint for a list of supported types.
Thread Safety
thread-safe
Exception Safety
basic

Reimplemented from rtctk::componentFramework::RepositoryIf.

◆ CreateDataPoint() [2/4]

void rtctk::componentFramework::RuntimeRepoIf::CreateDataPoint ( const DataPointPath & path,
const std::type_info & type,
const std::string & server_alias )
virtual

Creates a new datapoint in the repository with a specified type on a particular external Redis server.

This version of the CreateDataPoint method ignores the default server alias setting and allows to explicitly give a server alias as an argument.

Parameters
[in]pathThe datapoint path that should be created.
[in]typeA type identifier object returned by typeid indicating the type of the new datapoint. See RepositoryIf::CreateDataPoint for a list of supported types.
[in]server_aliasThe symbolic name of the external Redis server, as configured in CII OLDB, on which the datapoint is created.
Thread Safety
thread-safe
Exception Safety
basic
Deprecated
The server alias is no longer applicable.

Reimplemented from rtctk::componentFramework::RuntimeRepoIf.

◆ CreateDataPoint() [3/4]

void rtctk::componentFramework::RuntimeRepoAdapterLegacy::CreateDataPoint ( const DataPointPath & path,
const std::type_info & type,
const std::string & server_alias )
overridevirtual

Creates a new datapoint in the repository with a specified type on a particular external Redis server.

This version of the CreateDataPoint method ignores the default server alias setting and allows to explicitly give a server alias as an argument.

Parameters
[in]pathThe datapoint path that should be created.
[in]typeA type identifier object returned by typeid indicating the type of the new datapoint. See RepositoryIf::CreateDataPoint for a list of supported types.
[in]server_aliasThe symbolic name of the external Redis server, as configured in CII OLDB, on which the datapoint is created.
Thread Safety
thread-safe
Exception Safety
basic
Deprecated
The server alias is no longer applicable.

Reimplemented from rtctk::componentFramework::RuntimeRepoIf.

◆ CreateDataPoint() [4/4]

template<typename T >
void rtctk::componentFramework::RuntimeRepoIf::CreateDataPoint ( const DataPointPath & path,
const T default_value,
const std::string & server_alias )

Creates a new datapoint in the repository with a default value on a particular external Redis server.

This version of the CreateDataPoint method ignores the default server alias setting and allows to explicitly give a server alias as an argument.

Template Parameters
TThe type of the datapoint to create. See RepositoryIf::CreateDataPoint for a list of supported types.
Parameters
[in]pathThe datapoint path that should be created.
[in]default_valueThe initial value to set the new datapoint to.
[in]server_aliasThe symbolic name of the external Redis server, as configured in CII OLDB, on which the datapoint is created.
Thread Safety
thread-safe
Exception Safety
basic
Deprecated
The server alias is no longer applicable.

◆ GetServerAlias()

std::string rtctk::componentFramework::RuntimeRepoAdapterLegacy::GetServerAlias ( const DataPointPath & path) const
overridevirtual

Fetches the server alias for a specific datapoint.

Parameters
[in]pathThe datapoint path to query.
Returns
The server alias of the datapoint as a string.
Thread Safety
thread-safe
Exception Safety
strong
Deprecated
The server alias is no longer applicable.

Reimplemented from rtctk::componentFramework::RuntimeRepoIf.

◆ InitMetadata()

void rtctk::componentFramework::RuntimeRepoAdapterLegacy::InitMetadata ( )
static

Initialises the type metadata in the CII configuration service for the Runtime Configuration Repository.

Metadata related to various data types needs to be initialised in the CII configuration service before the RuntimeRepoAdapterLegacy can be used with the standard types supported by the RTC Toolkit. This function will initialise the needed metadata if it is missing. If the metadata for the types already exists then this function will reset it to the default initial values.

Exceptions
InitialisationExceptionFor any error that occurs in the CII system.

◆ operator=() [1/2]

RuntimeRepoAdapterLegacy & rtctk::componentFramework::RuntimeRepoAdapterLegacy::operator= ( const RuntimeRepoAdapterLegacy & )
delete

This class cannot be copy assigned.

◆ operator=() [2/2]

RuntimeRepoAdapterLegacy & rtctk::componentFramework::RuntimeRepoAdapterLegacy::operator= ( RuntimeRepoAdapterLegacy && )
default

Objects of this class can be moved with the move assignment operator.

Member Data Documentation

◆ SUPPORTED_URI_SCHEME

const std::string rtctk::componentFramework::RuntimeRepoAdapterLegacy::SUPPORTED_URI_SCHEME = "cii.oldb"
inlinestatic

The documentation for this class was generated from the following files: