Jak zapisovat a číst data v DDS aplikaci
V příspěvku Co tvoří DDS aplikaci a doporučení pro implementaci jsme si řekli, co tvoří DDS aplikaci. Že se jedná o entity
- DomainParticipant,
- Topic,
- Publisher,
- Subscriber,
- DataWriter
- DataReader.
V tomto videu se podíváme na to, jakým způsobem je možné zapisovat a číst data .
Aplikace zapisuje data pomocí DataWriterů a čte data pomocí DataReaderů.
Každý DataWriter a DataReader má k sobě přiřazen jeden Topic. Např. Movement (id, position, orientation, speed).
API pro zápis je jednoduché, jedná se o write tato operace je neblokovaná jak byste od publish subscribe modelu komunikace očekávali. Nicméně write operace může být blokována, a to v případě, kdy je nutné zabránit ztrátě dat.
U operace pro čtení to je zajímavější.
Informaci o nově příchozích datech můžete získat pomocí
Listeneru asynchronně – pomocí callbacku.
WaitSetu synchronně – pomocí vlastního threadu s čekáním na nově příchozí data.
Když potřebujete data číst tak to můžete provést pomocí dvou API.
Read – vzorky zůstávají v cache
Take – vzorky jsou odebrán z cache
A můžete si vybírat data, která čtete a to na základě
Obsahu – jsme schopni filtrovat data, která se dostanou do cache a provádět výběr dat nad daty v cache pomocí klauzule WHERE.
Stavu instance, nebo vzorku – pomocí metadat, které nám middleware poskytuje jsme schopni detekovat změny stavů a reagovat na ně (vzorek přečten/nepřečten, instance nově přidaná, instance je aktivní/neaktivní/zrušena). V základu čteme nepřečtené vzorky od všech aktivních instancí.
Nyní tedy už víte, co vám DDS umožňuje při zápisu a hlavně při čtení vzorků.
Mimochodem připravuji trénink, kde ukazuji nadhled, souvislosti a kontext ve kterém uvažovat o technologii DDS. Jestli by vás takový trénink zajímal, tak se podívejte na stránku www.pavelpohanka.cz/technologie, kde se po zadání emailu budete moci o tréninku dozvědět více.