12#ifndef RTCTK_COMPONENTFRAMEWORK_TEST_FAKEREPOSITORY_HPP
13#define RTCTK_COMPONENTFRAMEWORK_TEST_FAKEREPOSITORY_HPP
62 template <
typename Request>
69 std::optional<std::reference_wrapper<MetaData>>& metadata,
74 const gsl::span<const T>& data,
76 std::optional<std::reference_wrapper<MetaData>>,
86 std::optional<std::reference_wrapper<FakeRepository::Data>>
97 std::map<DataPointPath, Data>
m_data;
This class provides a wrapper for a data point path.
Definition dataPointPath.hpp:76
The DynamicThreadPool allows creating multiple threads which are garbage collected.
Definition dynamicThreadPool.hpp:36
Definition repositoryIf.hpp:947
std::vector< std::any > RequestList
Definition repositoryIf.hpp:52
Definition requestDispatcher.hpp:36
Definition requestDispatcher.hpp:30
Data m_requests_to_fail
Stores a vector of integer indices indicating which requests to forcefully fail in a batch request.
Definition fakeRepository.hpp:112
void DeleteImpl(detail::DeleteRequest &req)
Definition fakeRepository.cpp:219
void WriteMetaDataImpl(detail::WriteMetaDataRequest &req)
Definition fakeRepository.cpp:208
virtual void InvokeRequestHandler(std::any &request)
Definition fakeRepository.cpp:520
void CreateLinkImpl(detail::CreateSymlinkRequest &req)
Definition fakeRepository.cpp:319
bool RequestsToFailContains(size_t index) const
Definition fakeRepository.cpp:567
Data & CreateNewDataNode(const DataPointPath &path)
Definition fakeRepository.cpp:480
BatchResponse ProcessRequests(const RequestList &requests) override
Definition fakeRepository.cpp:525
DynamicThreadPool m_thread_pool
Definition fakeRepository.hpp:104
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:360
void UpdateLinkImpl(detail::UpdateSymlinkRequest &req)
Definition fakeRepository.cpp:332
std::optional< std::reference_wrapper< FakeRepository::Data > > GetDataNodeNoThrow(const DataPointPath &path)
Definition fakeRepository.cpp:506
std::mutex m_mutex
Mutex for synchronising access to m_data.
Definition fakeRepository.hpp:95
void PartialWriteImpl(detail::PartialWriteRequest< T > &req)
Definition fakeRepository.cpp:185
void ReadMetaData(const DataPointPath &path, MetaData &metadata, bool check_sequence_id=false)
Definition fakeRepository.cpp:431
void ExistsImpl(detail::ExistsRequest &req)
Definition fakeRepository.cpp:231
static const RequestDispatcher< FakeRepository > S_REQUEST_DISPATCHER
Definition fakeRepository.hpp:102
void PartialReadImpl(detail::PartialReadRequest< T > &req)
Definition fakeRepository.cpp:164
~FakeRepository() override=default
DataPointPath ResolvePath(const DataPointPath &path)
Definition fakeRepository.cpp:464
void CreateImpl(detail::CreateRequest< T > &req)
Definition fakeRepository.cpp:93
void WriteImpl(detail::WriteRequest< T > &req)
Definition fakeRepository.cpp:151
std::map< DataPointPath, Data > m_data
Definition fakeRepository.hpp:97
void InvokeCallback(const Request &req) const
Definition fakeRepository.cpp:347
Data m_requests_to_skip
Stores a vector of integer indices indicating which requests to skip in a batch request.
Definition fakeRepository.hpp:119
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:381
void ReadImpl(detail::ReadRequest< T > &req)
Definition fakeRepository.cpp:127
void WriteMetaData(Data &data_node, const MetaData &metadata)
Definition fakeRepository.cpp:455
virtual Data & GetDataNode(const DataPointPath &path)
Definition fakeRepository.cpp:488
std::pair< PathList, PathList > GetChildrenImpl(const DataPointPath &path)
Definition fakeRepository.cpp:239
void CheckDataNodeExists(const DataPointPath &path)
Definition fakeRepository.cpp:514
void ReadMetaDataImpl(detail::ReadMetaDataRequest &req)
Definition fakeRepository.cpp:200
std::pair< PathList, PathList > GetChildrenRecursive(const DataPointPath &path)
Definition fakeRepository.cpp:267
FakeRepository()
Definition fakeRepository.cpp:78
static RequestDispatcher< FakeRepository >::TableEntries BindTypeHandlers()
Header file for a dynamic resizing thread pool.
Definition fakeClock.cpp:14
Header file for RepositoryIf and related base classes.
Header file for the RequestDispatcher utility class.
Definition repositoryIf.ipp:39
Definition repositoryIf.ipp:123
Definition repositoryIf.ipp:47
Definition repositoryIf.ipp:52
Definition repositoryIf.ipp:58
Definition repositoryIf.ipp:90
Definition repositoryIf.ipp:101
Definition repositoryIf.ipp:66
Definition repositoryIf.ipp:129
Definition repositoryIf.ipp:80
Definition fakeRepository.hpp:32
MetaData metadata
Definition fakeRepository.hpp:34
std::any value
Definition fakeRepository.hpp:33