===== Data Reader ===== [[dido:public:ra:xapend:xapend.a_glossary:start| Return to Glossary ]] An [[dido:public:ra:xapend:xapend.a_glossary:e:entity|entity]] attached to a [[dido:public:ra:xapend:xapend.a_glossary:s:subscriber|Subscriber]], used to subscribe to a [[dido:public:ra:xapend:xapend.a_glossary:t:topic|Topic]], providing type-safe operations to read/receive data. Each Data Reader can be associated to only one Topic and therefore exactly one data type. This Topic must be created before the Data Reader. A data reader can obtain its subscribed data via two approaches: * [[dido:public:ra:xapend:xapend.a_glossary:l:listener|Listener]]-based approach, provides an asynchronous mechanism to obtain data via call-backs in a separate thread that does not block the main [[dido:public:ra:xapend:xapend.a_glossary:a:application|application]]. * WaitSet-based Approach – A synchronous approach, blocks the current thread until one or more conditions attached to the [[dido:public:ra:xapend:xapend.a_glossary:w:waitset|WaitSet]] are met, at which point a list of active_conditions are returned. There are several ways samples can be read using a data reader, this includes reading with conditions and some buffer management, described in greater detail in your respective language reference guide. Source: [[https://istkb.adlinktech.com/article/vortex-opensplice-dds-glossary/ | OpenSplice Glossary]]