DataStorm  0.1
Data Distribution Service
Public Member Functions | List of all members
DataStorm::SingleKeyReader< Key, Value, UpdateTag > Class Template Reference

The key reader to read the data element associated with a given key. More...

#include <DataStorm/DataStorm.h>

Inheritance diagram for DataStorm::SingleKeyReader< Key, Value, UpdateTag >:
DataStorm::Reader< Key, Value, UpdateTag >

Public Member Functions

 SingleKeyReader (const Topic< Key, Value, UpdateTag > &topic, const Key &key, const std::string &name=std::string(), const ReaderConfig &config=ReaderConfig()) noexcept
 Construct a new reader for the given key. More...
 
template<typename SampleFilterCriteria >
 SingleKeyReader (const Topic< Key, Value, UpdateTag > &topic, const Key &key, const Filter< SampleFilterCriteria > &sampleFilter, const std::string &name=std::string(), const ReaderConfig &config=ReaderConfig()) noexcept
 Construct a new reader for the given key and sample filter criteria. More...
 
 SingleKeyReader (SingleKeyReader &&reader) noexcept
 Transfers the given reader to this reader. More...
 
SingleKeyReaderoperator= (SingleKeyReader &&reader) noexcept
 Move assignement operator. More...
 
template<typename SFC >
 SingleKeyReader (const Topic< Key, Value, UpdateTag > &topic, const Key &key, const Filter< SFC > &sampleFilter, const std::string &name, const ReaderConfig &config) noexcept
 
- Public Member Functions inherited from DataStorm::Reader< Key, Value, UpdateTag >
 Reader (Reader &&reader) noexcept
 Transfers the given reader to this reader. More...
 
 ~Reader ()
 Destruct the reader. More...
 
Readeroperator= (Reader &&reader) noexcept
 Move assignement operator. More...
 
bool hasWriters () const noexcept
 Indicates whether or not writers are online. More...
 
void waitForWriters (unsigned int count=1) const
 Wait for given number of writers to be online. More...
 
void waitForNoWriters () const
 Wait for readers to be offline. More...
 
std::vector< std::string > getConnectedWriters () const noexcept
 Get the connected writers. More...
 
std::vector< Key > getConnectedKeys () const noexcept
 Get the keys for which writers are connected to this reader. More...
 
std::vector< Sample< Key, Value, UpdateTag > > getAllUnread () noexcept
 Returns all the unread samples. More...
 
void waitForUnread (unsigned int count=1) const
 Wait for given number of unread samples to be available. More...
 
bool hasUnread () const noexcept
 Returns wether or not unread samples are available. More...
 
Sample< Key, Value, UpdateTag > getNextUnread ()
 Returns the next unread sample. More...
 
void onConnectedKeys (std::function< void(std::vector< Key >)> init, std::function< void(CallbackReason, Key)> update) noexcept
 Calls the given functions to provide the initial set of connected keys and when a key is added or removed from the set of connected keys. More...
 
void onConnectedWriters (std::function< void(std::vector< std::string >)> init, std::function< void(CallbackReason, std::string)> update) noexcept
 Calls the given functions to provide the initial set of connected writers and when a new writer connects or disconnects. More...
 
void onSamples (std::function< void(std::vector< Sample< Key, Value, UpdateTag >>)> init, std::function< void(Sample< Key, Value, UpdateTag >)> queue) noexcept
 Calls the given function to provide the initial set of unread samples and when new samples are queued. More...
 

Additional Inherited Members

- Public Types inherited from DataStorm::Reader< Key, Value, UpdateTag >
using KeyType = Key
 The key type. More...
 
using ValueType = Value
 The value type. More...
 

Detailed Description

template<typename Key, typename Value, typename UpdateTag = std::string>
class DataStorm::SingleKeyReader< Key, Value, UpdateTag >

The key reader to read the data element associated with a given key.

Constructor & Destructor Documentation

◆ SingleKeyReader() [1/4]

template<typename Key , typename Value , typename UpdateTag >
DataStorm::SingleKeyReader< Key, Value, UpdateTag >::SingleKeyReader ( const Topic< Key, Value, UpdateTag > &  topic,
const Key &  key,
const std::string &  name = std::string(),
const ReaderConfig config = ReaderConfig() 
)
noexcept

Construct a new reader for the given key.

The construction of the reader connects the reader to writers with a matching key.

Parameters
topicThe topic.
keyThe key of the data element to read.
nameThe optional reader name.
configThe reader configuration.

◆ SingleKeyReader() [2/4]

template<typename Key, typename Value, typename UpdateTag = std::string>
template<typename SampleFilterCriteria >
DataStorm::SingleKeyReader< Key, Value, UpdateTag >::SingleKeyReader ( const Topic< Key, Value, UpdateTag > &  topic,
const Key &  key,
const Filter< SampleFilterCriteria > &  sampleFilter,
const std::string &  name = std::string(),
const ReaderConfig config = ReaderConfig() 
)
noexcept

Construct a new reader for the given key and sample filter criteria.

The construction of the reader connects the reader to writers with a matching key. The writer will only send samples matching the given sample filter criteria to the reader.

Parameters
topicThe topic.
keyThe key of the data element to read.
sampleFilterThe sample filter.
nameThe optional reader name.
configThe reader configuration.

◆ SingleKeyReader() [3/4]

template<typename Key , typename Value , typename UpdateTag >
DataStorm::SingleKeyReader< Key, Value, UpdateTag >::SingleKeyReader ( SingleKeyReader< Key, Value, UpdateTag > &&  reader)
noexcept

Transfers the given reader to this reader.

Parameters
readerThe reader.

◆ SingleKeyReader() [4/4]

template<typename Key, typename Value, typename UpdateTag = std::string>
template<typename SFC >
DataStorm::SingleKeyReader< Key, Value, UpdateTag >::SingleKeyReader ( const Topic< Key, Value, UpdateTag > &  topic,
const Key &  key,
const Filter< SFC > &  sampleFilter,
const std::string &  name,
const ReaderConfig config 
)
noexcept

Member Function Documentation

◆ operator=()

template<typename Key , typename Value , typename UpdateTag >
SingleKeyReader< Key, Value, UpdateTag > & DataStorm::SingleKeyReader< Key, Value, UpdateTag >::operator= ( SingleKeyReader< Key, Value, UpdateTag > &&  reader)
noexcept

Move assignement operator.

Parameters
readerThe reader.

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