9 Mayıs 2017 Salı

DDS DataWriter

Giriş
Açıklaması şöyle
A DataWriter is attached to exactly one Publisher that acts as a factory for it.

A DataWriter is bound to exactly one Topic and therefore to exactly one data type. The Topic must exist prior to the DataWriter's creation.

DataWriter is an abstract class. It must be specialized for each particular application data-type...
DDS::DataWriter aslında bir arayüz. Bu arayüzün tanımladığı bir sürü getter() metod var. DataWriter tek bir Publisher'a ve topic tipine bağlıdır.

Constructor
Şöyle yaparız. Topic pointer, qos, listener pointer, mask parametreleri alır.
writer = (FooDataWriter) publisher.create_datawriter(
  topic, 
  Publisher.DATAWRITER_QOS_DEFAULT,
  null, 
  StatusKind.STATUS_MASK_NONE);
enable metodu
Bu metod çağrısı ile DataWriter etkinleştirilmelidir.

dispose metodu - msg + handle
Örnek ver.

get_listener metodu
Varsa DDS::DataWriterListener arayüzünu gerçekleştirilen nesneyi döner.

lookup_instance metodu
register_instance çağrısı ile yaratılan DDS:: InstanceHandle_t değerine erişim için kullanılır.

register_instance metodu
DDS::DataWriter arayüzünü gerçekleştiren Foo sınıfımız olsun. Topic göndermek için önce
register_instance ile bir instance yaratırız. Sonuç olarak DDS::RETCODE_OUT_OF_RESOURCES dönebilir.
DDS::FooDataWriter * pDataWriter = //...
DDS::InstanceHandle_t handle = pDataWriter->register_instance (msg);//Arzu edilirse önce register edilir
unregister_instance metodu - msg + handle
Örnek ver.

write metodu - msg + handle
Şöyle yaparız. Eğer handle DDS::HANDLE_NIL ise register_instance () çağrısı ile instance handle otomatik register edilir. timstamp olarak sistem saati kullanılır.
DDS::ReturnCode_t result = pDataWriter->write (msg,handle);
write_w_timestamp metodu - msg + handle + timestamp
write metodu ile aynıdır.  Sadece belirtile timestamp kullanılır.




Hiç yorum yok:

Yorum Gönder