RTC Toolkit 6.0.0-pre2
Loading...
Searching...
No Matches
rtctk::componentFramework::test::FakeRepositorySubscriber Class Reference

A simple fake implementation of RepositorySubscriberIf to allow testing the interactions and callbacks over this API. More...

#include <rtctk/componentFramework/test/fakeRepositorySubscriber.hpp>

Inheritance diagram for rtctk::componentFramework::test::FakeRepositorySubscriber:
rtctk::componentFramework::RepositorySubscriberIf rtctk::componentFramework::test::FakeRepository rtctk::componentFramework::RepositoryIf rtctk::componentFramework::RepositoryIf rtctk::componentFramework::test::FakeOldbIf rtctk::componentFramework::test::FakeRuntimeRepoIf rtctk::componentFramework::test::MockRuntimeRepoIf

Classes

struct  CreateDeleteSubscription
 
struct  ValueSubscription
 

Public Member Functions

 FakeRepositorySubscriber ()
 
 ~FakeRepositorySubscriber () override=default
 
template<typename T>
Lut::TableEntries BindTypeHandlers ()
 
- Public Member Functions inherited from rtctk::componentFramework::RepositorySubscriberIf
 RepositorySubscriberIf ()=default
 
template<typename T = void, typename F>
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.
 
- 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 empty 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>
std::optional< T > TryGetDataPoint (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
 

Protected Member Functions

template<typename T>
void CreateImpl (detail::CreateRequest< T > &req)
 
template<typename T>
void ReadImpl (detail::ReadRequest< T > &req)
 
template<typename T>
void WriteImpl (detail::WriteRequest< T > &req)
 
template<typename T>
void PartialReadImpl (detail::PartialReadRequest< T > &req)
 
template<typename T>
void PartialWriteImpl (detail::PartialWriteRequest< T > &req)
 
void ReadMetaDataImpl (detail::ReadMetaDataRequest &req)
 
void WriteMetaDataImpl (detail::WriteMetaDataRequest &req)
 
void DeleteImpl (detail::DeleteRequest &req)
 
void ExistsImpl (detail::ExistsRequest &req)
 
void GetChildrenImpl (detail::GetChildrenRequest &req)
 
void CreateLinkImpl (detail::CreateSymlinkRequest &req)
 
void UpdateLinkImpl (detail::UpdateSymlinkRequest &req)
 
void SubscribeImpl (detail::ValueSubscribeRequest &req)
 
void CreateDeleteSubscribeImpl (detail::CreateDeleteSubscribeRequest &req)
 
void UnsubscribeImpl (detail::UnsubscribeRequest &req)
 
DataGetDataNode (const DataPointPath &path) override
 
void InvokeRequestHandler (std::any &request) override
 
void InvokeCreateCallbacks (const DataPointPath &)
 
void InvokeDeleteCallbacks (const DataPointPath &)
 
void InvokeWriteCallbacks (const DataPointPath &)
 
bool ShouldInvokeErrorCallbacks ()
 
void InvokeErrorCallbacks ()
 
- Protected Member Functions inherited from rtctk::componentFramework::test::FakeRepository
template<typename T>
void CreateImpl (detail::CreateRequest< T > &req)
 
template<typename T>
void ReadImpl (detail::ReadRequest< T > &req)
 
template<typename T>
void WriteImpl (detail::WriteRequest< T > &req)
 
template<typename T>
void PartialReadImpl (detail::PartialReadRequest< T > &req)
 
template<typename T>
void PartialWriteImpl (detail::PartialWriteRequest< T > &req)
 
void ReadMetaDataImpl (detail::ReadMetaDataRequest &req)
 
void WriteMetaDataImpl (detail::WriteMetaDataRequest &req)
 
void DeleteImpl (detail::DeleteRequest &req)
 
void ExistsImpl (detail::ExistsRequest &req)
 
std::pair< PathList, PathListGetChildrenImpl (const DataPointPath &path)
 
std::pair< PathList, PathListGetChildrenRecursive (const DataPointPath &path)
 
void GetChildrenImpl (detail::GetChildrenRequest &req)
 
void CreateLinkImpl (detail::CreateSymlinkRequest &req)
 
void UpdateLinkImpl (detail::UpdateSymlinkRequest &req)
 
template<typename Request>
void InvokeCallback (const Request &req) const
 
template<typename T>
void ReadData (Data &data_node, const DataPointPath &path, gsl::span< T > &data, std::optional< std::reference_wrapper< MetaData > > &metadata, size_t offset)
 
template<typename T>
void WriteData (const DataPointPath &path, const gsl::span< const T > &data, const MetaData &metadata, std::optional< std::reference_wrapper< MetaData > >, size_t offset)
 
void ReadMetaData (const DataPointPath &path, MetaData &metadata, bool check_sequence_id=false)
 
void WriteMetaData (Data &data_node, const MetaData &metadata)
 
DataPointPath ResolvePath (const DataPointPath &path)
 
DataCreateNewDataNode (const DataPointPath &path)
 
std::optional< std::reference_wrapper< FakeRepository::Data > > GetDataNodeNoThrow (const DataPointPath &path)
 
void CheckDataNodeExists (const DataPointPath &path)
 
BatchResponse ProcessRequests (const RequestList &requests) override
 
bool RequestsToFailContains (size_t index) const
 
 FakeRepository ()
 
 ~FakeRepository () override=default
 
template<typename T>
Lut::TableEntries BindTypeHandlers ()
 

Static Protected Member Functions

template<typename T>
static RequestDispatcher< FakeRepositorySubscriber >::TableEntries BindTypeHandlers ()
 
- Static Protected Member Functions inherited from rtctk::componentFramework::test::FakeRepository
template<typename T>
static RequestDispatcher< FakeRepository >::TableEntries BindTypeHandlers ()
 

Protected Attributes

std::list< ValueSubscriptionm_value_subscriptions
 
std::list< CreateDeleteSubscriptionm_create_delete_subscriptions
 
Data m_invoke_error_callbacks
 Stores a boolean flag indicating if subscription callbacks should produce errors for testing.
 
- Protected Attributes inherited from rtctk::componentFramework::test::FakeRepository
std::mutex m_mutex
 Mutex for synchronising access to m_data.
 
std::map< DataPointPath, Datam_data
 
DynamicThreadPool m_thread_pool {"repo_worker"}
 
Data m_requests_to_fail
 Stores a vector of integer indices indicating which requests to forcefully fail in a batch request.
 
Data m_requests_to_skip
 Stores a vector of integer indices indicating which requests to skip in a batch request.
 

Static Protected Attributes

static const RequestDispatcher< FakeRepositorySubscriberS_REQUEST_DISPATCHER
 
- Static Protected Attributes inherited from rtctk::componentFramework::test::FakeRepository
static const RequestDispatcher< FakeRepositoryS_REQUEST_DISPATCHER
 

Additional Inherited Members

- 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.
 
- Static Public Member Functions inherited from rtctk::componentFramework::RepositoryIf
static const std::type_info & StringToType (const std::string &arg)
 Converts an RTC datapoint type string to a type_info.
 
static std::string TypeToString (const std::type_info &arg)
 Converts a type_info to an RTC datapoint type string.
 
static std::any MakeAnyBuffer (const MetaData &metadata)
 Helper method to create an std::any buffer compatible with a specific datapoint.
 
- Protected Types inherited from rtctk::componentFramework::RepositoryIf
using RequestList = std::vector<std::any>
 

Detailed Description

A simple fake implementation of RepositorySubscriberIf to allow testing the interactions and callbacks over this API.

Constructor & Destructor Documentation

◆ FakeRepositorySubscriber()

rtctk::componentFramework::test::FakeRepositorySubscriber::FakeRepositorySubscriber ( )

◆ ~FakeRepositorySubscriber()

rtctk::componentFramework::test::FakeRepositorySubscriber::~FakeRepositorySubscriber ( )
overridedefault

Member Function Documentation

◆ BindTypeHandlers() [1/2]

template<typename T>
Lut::TableEntries rtctk::componentFramework::test::FakeRepositorySubscriber::BindTypeHandlers ( )

◆ BindTypeHandlers() [2/2]

template<typename T>
static RequestDispatcher< FakeRepositorySubscriber >::TableEntries rtctk::componentFramework::test::FakeRepositorySubscriber::BindTypeHandlers ( )
staticprotected

◆ CreateDeleteSubscribeImpl()

void rtctk::componentFramework::test::FakeRepositorySubscriber::CreateDeleteSubscribeImpl ( detail::CreateDeleteSubscribeRequest & req)
protected

◆ CreateImpl()

template<typename T>
void rtctk::componentFramework::test::FakeRepositorySubscriber::CreateImpl ( detail::CreateRequest< T > & req)
protected

◆ CreateLinkImpl()

void rtctk::componentFramework::test::FakeRepositorySubscriber::CreateLinkImpl ( detail::CreateSymlinkRequest & req)
protected

◆ DeleteImpl()

void rtctk::componentFramework::test::FakeRepositorySubscriber::DeleteImpl ( detail::DeleteRequest & req)
protected

◆ ExistsImpl()

void rtctk::componentFramework::test::FakeRepositorySubscriber::ExistsImpl ( detail::ExistsRequest & req)
protected

◆ GetChildrenImpl()

void rtctk::componentFramework::test::FakeRepositorySubscriber::GetChildrenImpl ( detail::GetChildrenRequest & req)
protected

◆ GetDataNode()

FakeRepository::Data & rtctk::componentFramework::test::FakeRepositorySubscriber::GetDataNode ( const DataPointPath & path)
overrideprotectedvirtual

◆ InvokeCreateCallbacks()

void rtctk::componentFramework::test::FakeRepositorySubscriber::InvokeCreateCallbacks ( const DataPointPath & path)
protected

◆ InvokeDeleteCallbacks()

void rtctk::componentFramework::test::FakeRepositorySubscriber::InvokeDeleteCallbacks ( const DataPointPath & path)
protected

◆ InvokeErrorCallbacks()

void rtctk::componentFramework::test::FakeRepositorySubscriber::InvokeErrorCallbacks ( )
protected

◆ InvokeRequestHandler()

void rtctk::componentFramework::test::FakeRepositorySubscriber::InvokeRequestHandler ( std::any & request)
overrideprotectedvirtual

◆ InvokeWriteCallbacks()

void rtctk::componentFramework::test::FakeRepositorySubscriber::InvokeWriteCallbacks ( const DataPointPath & path1)
protected

◆ PartialReadImpl()

template<typename T>
void rtctk::componentFramework::test::FakeRepositorySubscriber::PartialReadImpl ( detail::PartialReadRequest< T > & req)
protected

◆ PartialWriteImpl()

template<typename T>
void rtctk::componentFramework::test::FakeRepositorySubscriber::PartialWriteImpl ( detail::PartialWriteRequest< T > & req)
protected

◆ ReadImpl()

template<typename T>
void rtctk::componentFramework::test::FakeRepositorySubscriber::ReadImpl ( detail::ReadRequest< T > & req)
protected

◆ ReadMetaDataImpl()

void rtctk::componentFramework::test::FakeRepositorySubscriber::ReadMetaDataImpl ( detail::ReadMetaDataRequest & req)
protected

◆ ShouldInvokeErrorCallbacks()

bool rtctk::componentFramework::test::FakeRepositorySubscriber::ShouldInvokeErrorCallbacks ( )
protected

◆ SubscribeImpl()

void rtctk::componentFramework::test::FakeRepositorySubscriber::SubscribeImpl ( detail::ValueSubscribeRequest & req)
protected

◆ UnsubscribeImpl()

void rtctk::componentFramework::test::FakeRepositorySubscriber::UnsubscribeImpl ( detail::UnsubscribeRequest & req)
protected

◆ UpdateLinkImpl()

void rtctk::componentFramework::test::FakeRepositorySubscriber::UpdateLinkImpl ( detail::UpdateSymlinkRequest & req)
protected

◆ WriteImpl()

template<typename T>
void rtctk::componentFramework::test::FakeRepositorySubscriber::WriteImpl ( detail::WriteRequest< T > & req)
protected

◆ WriteMetaDataImpl()

void rtctk::componentFramework::test::FakeRepositorySubscriber::WriteMetaDataImpl ( detail::WriteMetaDataRequest & req)
protected

Member Data Documentation

◆ m_create_delete_subscriptions

std::list<CreateDeleteSubscription> rtctk::componentFramework::test::FakeRepositorySubscriber::m_create_delete_subscriptions
protected

◆ m_invoke_error_callbacks

Data rtctk::componentFramework::test::FakeRepositorySubscriber::m_invoke_error_callbacks
protected

Stores a boolean flag indicating if subscription callbacks should produce errors for testing.

This value is accessed by reading/writing to the path /__internal__/invoke_error_callbacks.

◆ m_value_subscriptions

std::list<ValueSubscription> rtctk::componentFramework::test::FakeRepositorySubscriber::m_value_subscriptions
protected

◆ S_REQUEST_DISPATCHER

const Lut rtctk::componentFramework::test::FakeRepositorySubscriber::S_REQUEST_DISPATCHER
staticprotected
Initial value:
= {
static TableEntries Bind(void(FakeRepository::*method)(T &, Args...))
Definition requestDispatcher.hpp:67
void ExistsImpl(detail::ExistsRequest &req)
Definition fakeRepositorySubscriber.cpp:87
static RequestDispatcher< FakeRepositorySubscriber >::TableEntries BindTypeHandlers()
void GetChildrenImpl(detail::GetChildrenRequest &req)
Definition fakeRepositorySubscriber.cpp:91
void UnsubscribeImpl(detail::UnsubscribeRequest &req)
Definition fakeRepositorySubscriber.cpp:135
void WriteMetaDataImpl(detail::WriteMetaDataRequest &req)
Definition fakeRepositorySubscriber.cpp:74
void ReadMetaDataImpl(detail::ReadMetaDataRequest &req)
Definition fakeRepositorySubscriber.cpp:70
void CreateLinkImpl(detail::CreateSymlinkRequest &req)
Definition fakeRepositorySubscriber.cpp:95
void CreateDeleteSubscribeImpl(detail::CreateDeleteSubscribeRequest &req)
Definition fakeRepositorySubscriber.cpp:169
void DeleteImpl(detail::DeleteRequest &req)
Definition fakeRepositorySubscriber.cpp:78
void UpdateLinkImpl(detail::UpdateSymlinkRequest &req)
Definition fakeRepositorySubscriber.cpp:104
void SubscribeImpl(detail::ValueSubscribeRequest &req)
Definition fakeRepositorySubscriber.cpp:128

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