DDS_ReturnCode_t DDS_KeyedStringDataReader_return_loan ( DDS_DataReader dr, DDS_KeyedStringSeq *data, DDS_SampleInfoSeq *info) { return (DDS_DataReader_return_loan (dr, (DDS_DataSeq *) data, info)); }
void dr_on_statistic_data_available(DDS_DataReaderListener *self, DDS_DataReader dataReader) { acceptance_high_end_StatisticPtrSeq samples; DDS_SampleInfoSeq sampleInfos; DDS_ReturnCode_t retCode; int i; DDS_SEQ_INIT(samples); DDS_SEQ_INIT(sampleInfos); retCode = DDS_DataReader_take(dataReader, (DDS_DataSeq *)&samples, &sampleInfos, -1, DDS_ANY_SAMPLE_STATE, DDS_ANY_VIEW_STATE, DDS_ANY_INSTANCE_STATE); if (retCode == DDS_RETCODE_NO_DATA) { return; } else if (retCode != DDS_RETCODE_OK) { fprintf(stderr, "Error taking sample (%s).\r\n", DDS_error(retCode)); return; } for (i = 0; i < DDS_SEQ_LENGTH (samples); i++) if (DDS_SEQ_ITEM (sampleInfos, i)->valid_data) nofConfigSamples++; retCode = DDS_DataReader_return_loan(dataReader, (DDS_DataSeq *)&samples, &sampleInfos); if (retCode != DDS_RETCODE_OK) { fprintf(stderr, "Error returning loan (%s).\r\n", DDS_error(retCode)); return; } }
void dr_listener_data_available (DDS_DataReaderListener *list, DDS_DataReader dr) { MsgData_t *data; types_t *datax; static DDS_DataSeq rx_sample = DDS_SEQ_INITIALIZER (void *); static DDS_SampleInfoSeq rx_info = DDS_SEQ_INITIALIZER (DDS_SampleInfo *); DDS_ReturnCode_t error; DDS_SampleInfo *info; DDS_DataReader_return_loan (dr, &rx_sample, &rx_info); error = DDS_DataReader_take_next_instance(dr, &rx_sample, &rx_info, 1, DDS_HANDLE_NIL, DDS_NOT_READ_SAMPLE_STATE, DDS_ANY_VIEW_STATE, DDS_ANY_INSTANCE_STATE); printf ("dds-interop: Take next instance.\r\n"); if (error) printf ("Error taking next instance\r\n"); /* === print sample === */ if (DDS_SEQ_LENGTH (rx_info)) { data = DDS_SEQ_ITEM (rx_sample, 0); datax = DDS_SEQ_ITEM (rx_sample, 0); info = DDS_SEQ_ITEM (rx_info, 0); if (info->instance_state == DDS_ALIVE_INSTANCE_STATE) { if (tsm_type == 0) printf ("DDS-R: [%2u] ALIVE - %2u :%6llu - %s\r\n", info->instance_handle, data->key, (unsigned long long) data->counter, data->message); else printf ("DDS-R: [%2u] ALIVE - %2u - %s\r\n", info->instance_handle, datax->i8, datax->string); if (test == 3) sem_post (&_sync); } else if (info->instance_state == DDS_NOT_ALIVE_DISPOSED_INSTANCE_STATE) { if (tsm_type == 0) printf ("DDS-R: The sample %s with key (%d) has been disposed.\r\n", data->message, data->key); else printf ("DDS-R: The sample has been disposed.\r\n", datax->string); if (test == 3) sem_post (&_sync); } else if (info->instance_state == DDS_NOT_ALIVE_NO_WRITERS_INSTANCE_STATE) { printf ("DDS-R: There are no more writers.\r\n"); if (test == 3) sem_post (&_sync); } else printf ("DDS-R: Unknown state.\r\n"); } DDS_DataReader_return_loan (dr, &rx_sample, &rx_info); }
DDS_ReturnCode_t DDS_BytesDataReader_return_loan (DDS_DataReader dr, DDS_BytesSeq *data, DDS_SampleInfoSeq *info) { return (DDS_DataReader_return_loan (dr, (DDS_DataSeq *) data, info)); }