/* Start changes for Ordered_Presentation*/ /* No listener is needed; we poll readers in this function */ private static void poll_data(DDS.DataReader[] reader, int numreaders) { DDS.SampleInfoSeq info_seq = new DDS.SampleInfoSeq(); orderedSeq data_seq = new orderedSeq(); for (int r = 0; r < numreaders; ++r) { try { ((orderedDataReader)(reader[r])).take( data_seq, info_seq, DDS.ResourceLimitsQosPolicy.LENGTH_UNLIMITED, DDS.SampleStateKind.ANY_SAMPLE_STATE, DDS.ViewStateKind.ANY_VIEW_STATE, DDS.InstanceStateKind.ANY_INSTANCE_STATE); } catch (DDS.Retcode_NoData) { // Not an error return; } catch (DDS.Exception e) { // Is an error Console.WriteLine("take error {0}", e); return; } System.Int32 data_length = data_seq.length; for (int i = 0; i < data_length; ++i) { if (!info_seq.get_at(i).valid_data) { continue; } // Make things a bit easier to read. int ident = r; while (ident-- != 0) { Console.Write("\t"); } Console.WriteLine("Reader {0}: Instance{1}->value = {2}", r, data_seq.get_at(i).id, data_seq.get_at(i).value); } try { ((orderedDataReader)(reader[r])).return_loan(data_seq, info_seq); } catch (DDS.Exception e) { Console.WriteLine("return loan error {0}", e); } info_seq.ensure_length(0, 0); data_seq.ensure_length(0, 0); } }