RTC Toolkit 6.0.0-pre2
Loading...
Searching...
No Matches
fakeRepository.hpp
Go to the documentation of this file.
1
12
13#ifndef RTCTK_COMPONENTFRAMEWORK_TEST_FAKEREPOSITORY_HPP
14#define RTCTK_COMPONENTFRAMEWORK_TEST_FAKEREPOSITORY_HPP
15
19
21
27class FakeRepository : virtual public RepositoryIf {
28public:
30 ~FakeRepository() override = default;
31
32protected:
33 struct Data {
34 std::any value;
36 };
37
38 template <typename T>
40
41 template <typename T>
43
44 template <typename T>
46
47 template <typename T>
49
50 template <typename T>
52
57 std::pair<PathList, PathList> GetChildrenImpl(const DataPointPath& path);
58 std::pair<PathList, PathList> GetChildrenRecursive(const DataPointPath& path);
62
63 template <typename Request>
64 void InvokeCallback(const Request& req) const;
65
66 template <typename T>
67 void ReadData(Data& data_node,
68 const DataPointPath& path,
69 gsl::span<T>& data,
70 std::optional<std::reference_wrapper<MetaData>>& metadata,
71 size_t offset);
72
73 template <typename T>
74 void WriteData(const DataPointPath& path,
75 const gsl::span<const T>& data,
76 const MetaData& metadata,
77 std::optional<std::reference_wrapper<MetaData>>,
78 size_t offset);
79
80 void
81 ReadMetaData(const DataPointPath& path, MetaData& metadata, bool check_sequence_id = false);
82
83 void WriteMetaData(Data& data_node, const MetaData& metadata);
86 virtual Data& GetDataNode(const DataPointPath& path);
87 std::optional<std::reference_wrapper<FakeRepository::Data>>
89 void CheckDataNodeExists(const DataPointPath& path);
90 virtual void InvokeRequestHandler(std::any& request);
91 BatchResponse ProcessRequests(const RequestList& requests) override;
92
93 bool RequestsToFailContains(size_t index) const;
94
96 mutable std::mutex m_mutex;
97
98 std::map<DataPointPath, Data> m_data;
99
100 template <typename T>
102
104
106
114
121};
122
123} // namespace rtctk::componentFramework::test
124
125#endif // RTCTK_COMPONENTFRAMEWORK_TEST_FAKEREPOSITORY_HPP
This class provides a wrapper for a data point path.
Definition dataPointPath.hpp:77
The DynamicThreadPool allows creating multiple threads which are garbage collected.
Definition dynamicThreadPool.hpp:37
Class for passing/receiving metadata to/from the repository.
Definition repositoryIf.hpp:146
std::vector< std::any > RequestList
Definition repositoryIf.hpp:53
Definition requestDispatcher.hpp:31
Data m_requests_to_fail
Stores a vector of integer indices indicating which requests to forcefully fail in a batch request.
Definition fakeRepository.hpp:113
void DeleteImpl(detail::DeleteRequest &req)
Definition fakeRepository.cpp:208
void WriteMetaDataImpl(detail::WriteMetaDataRequest &req)
Definition fakeRepository.cpp:198
virtual void InvokeRequestHandler(std::any &request)
Definition fakeRepository.cpp:506
void CreateLinkImpl(detail::CreateSymlinkRequest &req)
Definition fakeRepository.cpp:305
bool RequestsToFailContains(size_t index) const
Definition fakeRepository.cpp:553
Data & CreateNewDataNode(const DataPointPath &path)
Definition fakeRepository.cpp:466
BatchResponse ProcessRequests(const RequestList &requests) override
Definition fakeRepository.cpp:511
DynamicThreadPool m_thread_pool
Definition fakeRepository.hpp:105
void ReadData(Data &data_node, const DataPointPath &path, gsl::span< T > &data, std::optional< std::reference_wrapper< MetaData > > &metadata, size_t offset)
Definition fakeRepository.cpp:346
void UpdateLinkImpl(detail::UpdateSymlinkRequest &req)
Definition fakeRepository.cpp:318
std::optional< std::reference_wrapper< FakeRepository::Data > > GetDataNodeNoThrow(const DataPointPath &path)
Definition fakeRepository.cpp:492
std::mutex m_mutex
Mutex for synchronising access to m_data.
Definition fakeRepository.hpp:96
void PartialWriteImpl(detail::PartialWriteRequest< T > &req)
Definition fakeRepository.cpp:177
void ReadMetaData(const DataPointPath &path, MetaData &metadata, bool check_sequence_id=false)
Definition fakeRepository.cpp:417
void ExistsImpl(detail::ExistsRequest &req)
Definition fakeRepository.cpp:220
static const RequestDispatcher< FakeRepository > S_REQUEST_DISPATCHER
Definition fakeRepository.hpp:103
void PartialReadImpl(detail::PartialReadRequest< T > &req)
Definition fakeRepository.cpp:158
DataPointPath ResolvePath(const DataPointPath &path)
Definition fakeRepository.cpp:450
void CreateImpl(detail::CreateRequest< T > &req)
Definition fakeRepository.cpp:93
void WriteImpl(detail::WriteRequest< T > &req)
Definition fakeRepository.cpp:147
std::map< DataPointPath, Data > m_data
Definition fakeRepository.hpp:98
void InvokeCallback(const Request &req) const
Definition fakeRepository.cpp:333
Data m_requests_to_skip
Stores a vector of integer indices indicating which requests to skip in a batch request.
Definition fakeRepository.hpp:120
void WriteData(const DataPointPath &path, const gsl::span< const T > &data, const MetaData &metadata, std::optional< std::reference_wrapper< MetaData > >, size_t offset)
Definition fakeRepository.cpp:367
void ReadImpl(detail::ReadRequest< T > &req)
Definition fakeRepository.cpp:124
void WriteMetaData(Data &data_node, const MetaData &metadata)
Definition fakeRepository.cpp:441
virtual Data & GetDataNode(const DataPointPath &path)
Definition fakeRepository.cpp:474
std::pair< PathList, PathList > GetChildrenImpl(const DataPointPath &path)
Definition fakeRepository.cpp:228
void CheckDataNodeExists(const DataPointPath &path)
Definition fakeRepository.cpp:500
void ReadMetaDataImpl(detail::ReadMetaDataRequest &req)
Definition fakeRepository.cpp:190
std::pair< PathList, PathList > GetChildrenRecursive(const DataPointPath &path)
Definition fakeRepository.cpp:256
FakeRepository()
Definition fakeRepository.cpp:78
static RequestDispatcher< FakeRepository >::TableEntries BindTypeHandlers()
Header file for a dynamic resizing thread pool.
Definition fakeClock.cpp:15
Header file for RepositoryIf and related base classes.
Header file for the RequestDispatcher utility class.
MetaData metadata
Definition fakeRepository.hpp:35
std::any value
Definition fakeRepository.hpp:34