Giriş
DataReader ile ilişkili bir sınıftır
on_requested_deadline_missed metodu
Örnek ver
on_requested_incompatible_qos metodu
Örnek ver
on_sample_rejected metodu
Örnek ver
on_liveliness_changed metodu
Örnek ver
on_data_available metodu
Genellikle sadece bu metod kullanılır. Gelen veriyi okuruz. Bazen gelen veriyi bir başka Executor içine atarak işlemek daha iyi olabiliyor.
Örnek ver
on_requested_incompatible_qos metodu
Örnek ver
on_sample_rejected metodu
Örnek ver
on_liveliness_changed metodu
Örnek ver
on_data_available metodu
Genellikle sadece bu metod kullanılır. Gelen veriyi okuruz. Bazen gelen veriyi bir başka Executor içine atarak işlemek daha iyi olabiliyor.
Örnek
Şöyle yaparız. Burada DataReader benim istediğim tipte.
Örnek - C++void on_data_available(DataReader<Foo>& the_reader){...}
Şöyle yaparız. Parametre olarak geçilen DataReader pointer nesnesi benim istediğim DataReader tipine cast edilir. Daha sonra DataReader nesnesinin take_next_sample metodu çağrılır ve veri okunur.
Burada reader'dan veri kopyalanarak okunuyor.
Şöyle yaparız. Burada Reader'dan okunan veri return_loan() ile tekrar iade ediliyor.
Örnek ver
on_sample_lost metodu
Örnek ver
Örnek - Javavoid MyReader::on_data_available (DDS::DataReader* the_reader){MyReader * pReader = dynamic_cast<MyReader*> (the_reader);
MyDataType data;SampleInfo sampleInfo;DDS::ReturnCode_t ret = pReader->take_next_sample (data,sampleInfo);if (ret == DDS::RETCODE_OK && sampleInfo.valid_data == DDS_TRUE){...}}
Şöyle yaparız. Burada Reader'dan okunan veri return_loan() ile tekrar iade ediliyor.
public void on_data_available(DataReader reader) {
HelloWorldDataReader myReader = (HelloWorldDataReader)reader;
try {
myReader.take(_dataSeq, _infoSeq,
ResourceLimitsQosPolicy.LENGTH_UNLIMITED,
SampleStateKind.ANY_SAMPLE_STATE,
ViewStateKind.ANY_VIEW_STATE,
InstanceStateKind.ANY_INSTANCE_STATE);
for(int i = 0; i < _dataSeq.size(); ++i) {
SampleInfo info = (SampleInfo)_infoSeq.get(i);
if (info.valid_data) {
System.out.println(((HelloWorld)_dataSeq.get(i)).toString("Received",0));
}
}
} catch (RETCODE_NO_DATA noData) {
// No data to process
} finally {
myReader.return_loan(_dataSeq, _infoSeq);
}
}
on_subscription_matched metoduÖrnek ver
on_sample_lost metodu
Örnek ver
Hiç yorum yok:
Yorum Gönder