00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef _TIMEDCPS_H_
00012 #define _TIMEDCPS_H_
00013
00014 #include "sacpp_mapping.h"
00015 #include "sacpp_DDS_DCPS.h"
00016 #include "dds_dcps_builtintopics.h"
00017 #include "dds_builtinTopics.h"
00018 #include "Time.h"
00019 #include "dds_dcps_interfaces.h"
00020 struct Time;
00021
00022 class TimeTypeSupportInterface;
00023
00024 typedef TimeTypeSupportInterface * TimeTypeSupportInterface_ptr;
00025 typedef DDS_DCPSInterface_var < TimeTypeSupportInterface> TimeTypeSupportInterface_var;
00026 typedef DDS_DCPSInterface_out < TimeTypeSupportInterface> TimeTypeSupportInterface_out;
00027
00028
00029 class TimeDataWriter;
00030
00031 typedef TimeDataWriter * TimeDataWriter_ptr;
00032 typedef DDS_DCPSInterface_var < TimeDataWriter> TimeDataWriter_var;
00033 typedef DDS_DCPSInterface_out < TimeDataWriter> TimeDataWriter_out;
00034
00035
00036 class TimeDataReader;
00037
00038 typedef TimeDataReader * TimeDataReader_ptr;
00039 typedef DDS_DCPSInterface_var < TimeDataReader> TimeDataReader_var;
00040 typedef DDS_DCPSInterface_out < TimeDataReader> TimeDataReader_out;
00041
00042
00043 class TimeDataReaderView;
00044
00045 typedef TimeDataReaderView * TimeDataReaderView_ptr;
00046 typedef DDS_DCPSInterface_var < TimeDataReaderView> TimeDataReaderView_var;
00047 typedef DDS_DCPSInterface_out < TimeDataReaderView> TimeDataReaderView_out;
00048
00049
00050 struct TimeSeq_uniq_ {};
00051 typedef DDS_DCPSUFLSeq < Time, struct TimeSeq_uniq_> TimeSeq;
00052 typedef DDS_DCPSSequence_var < TimeSeq> TimeSeq_var;
00053 typedef DDS_DCPSSequence_out < TimeSeq> TimeSeq_out;
00054 class TimeTypeSupportInterface
00055 :
00056 virtual public DDS::TypeSupport
00057 {
00058 public:
00059 typedef TimeTypeSupportInterface_ptr _ptr_type;
00060 typedef TimeTypeSupportInterface_var _var_type;
00061
00062 static TimeTypeSupportInterface_ptr _duplicate (TimeTypeSupportInterface_ptr obj);
00063 DDS::Boolean _local_is_a (const char * id);
00064
00065 static TimeTypeSupportInterface_ptr _narrow (DDS::Object_ptr obj);
00066 static TimeTypeSupportInterface_ptr _unchecked_narrow (DDS::Object_ptr obj);
00067 static TimeTypeSupportInterface_ptr _nil () { return 0; }
00068 static const char * _local_id;
00069 TimeTypeSupportInterface_ptr _this () { return this; }
00070
00071
00072 protected:
00073 TimeTypeSupportInterface () {};
00074 ~TimeTypeSupportInterface () {};
00075 private:
00076 TimeTypeSupportInterface (const TimeTypeSupportInterface &);
00077 TimeTypeSupportInterface & operator = (const TimeTypeSupportInterface &);
00078 };
00079
00080 class TimeDataWriter
00081 :
00082 virtual public DDS::DataWriter
00083 {
00084 public:
00085 typedef TimeDataWriter_ptr _ptr_type;
00086 typedef TimeDataWriter_var _var_type;
00087
00088 static TimeDataWriter_ptr _duplicate (TimeDataWriter_ptr obj);
00089 DDS::Boolean _local_is_a (const char * id);
00090
00091 static TimeDataWriter_ptr _narrow (DDS::Object_ptr obj);
00092 static TimeDataWriter_ptr _unchecked_narrow (DDS::Object_ptr obj);
00093 static TimeDataWriter_ptr _nil () { return 0; }
00094 static const char * _local_id;
00095 TimeDataWriter_ptr _this () { return this; }
00096
00097 virtual DDS::InstanceHandle_t register_instance (const Time& instance_data) = 0;
00098 virtual DDS::InstanceHandle_t register_instance_w_timestamp (const Time& instance_data, const DDS::Time_t& source_timestamp) = 0;
00099 virtual DDS::ReturnCode_t unregister_instance (const Time& instance_data, DDS::InstanceHandle_t handle) = 0;
00100 virtual DDS::ReturnCode_t unregister_instance_w_timestamp (const Time& instance_data, DDS::InstanceHandle_t handle, const DDS::Time_t& source_timestamp) = 0;
00101 virtual DDS::ReturnCode_t write (const Time& instance_data, DDS::InstanceHandle_t handle) = 0;
00102 virtual DDS::ReturnCode_t write_w_timestamp (const Time& instance_data, DDS::InstanceHandle_t handle, const DDS::Time_t& source_timestamp) = 0;
00103 virtual DDS::ReturnCode_t dispose (const Time& instance_data, DDS::InstanceHandle_t handle) = 0;
00104 virtual DDS::ReturnCode_t dispose_w_timestamp (const Time& instance_data, DDS::InstanceHandle_t handle, const DDS::Time_t& source_timestamp) = 0;
00105 virtual DDS::ReturnCode_t writedispose (const Time& instance_data, DDS::InstanceHandle_t handle) = 0;
00106 virtual DDS::ReturnCode_t writedispose_w_timestamp (const Time& instance_data, DDS::InstanceHandle_t handle, const DDS::Time_t& source_timestamp) = 0;
00107 virtual DDS::ReturnCode_t get_key_value (Time& key_holder, DDS::InstanceHandle_t handle) = 0;
00108 virtual DDS::InstanceHandle_t lookup_instance (const Time& instance_data) = 0;
00109
00110 protected:
00111 TimeDataWriter () {};
00112 ~TimeDataWriter () {};
00113 private:
00114 TimeDataWriter (const TimeDataWriter &);
00115 TimeDataWriter & operator = (const TimeDataWriter &);
00116 };
00117
00118 class TimeDataReader
00119 :
00120 virtual public DDS::DataReader
00121 {
00122 public:
00123 typedef TimeDataReader_ptr _ptr_type;
00124 typedef TimeDataReader_var _var_type;
00125
00126 static TimeDataReader_ptr _duplicate (TimeDataReader_ptr obj);
00127 DDS::Boolean _local_is_a (const char * id);
00128
00129 static TimeDataReader_ptr _narrow (DDS::Object_ptr obj);
00130 static TimeDataReader_ptr _unchecked_narrow (DDS::Object_ptr obj);
00131 static TimeDataReader_ptr _nil () { return 0; }
00132 static const char * _local_id;
00133 TimeDataReader_ptr _this () { return this; }
00134
00135 virtual DDS::ReturnCode_t read (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00136 virtual DDS::ReturnCode_t take (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00137 virtual DDS::ReturnCode_t read_w_condition (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::ReadCondition_ptr a_condition) = 0;
00138 virtual DDS::ReturnCode_t take_w_condition (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::ReadCondition_ptr a_condition) = 0;
00139 virtual DDS::ReturnCode_t read_next_sample (Time& received_data, DDS::SampleInfo& sample_info) = 0;
00140 virtual DDS::ReturnCode_t take_next_sample (Time& received_data, DDS::SampleInfo& sample_info) = 0;
00141 virtual DDS::ReturnCode_t read_instance (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00142 virtual DDS::ReturnCode_t take_instance (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00143 virtual DDS::ReturnCode_t read_next_instance (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00144 virtual DDS::ReturnCode_t take_next_instance (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00145 virtual DDS::ReturnCode_t read_next_instance_w_condition (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::ReadCondition_ptr a_condition) = 0;
00146 virtual DDS::ReturnCode_t take_next_instance_w_condition (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::ReadCondition_ptr a_condition) = 0;
00147 virtual DDS::ReturnCode_t return_loan (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq) = 0;
00148 virtual DDS::ReturnCode_t get_key_value (Time& key_holder, DDS::InstanceHandle_t handle) = 0;
00149 virtual DDS::InstanceHandle_t lookup_instance (const Time& instance) = 0;
00150
00151 protected:
00152 TimeDataReader () {};
00153 ~TimeDataReader () {};
00154 private:
00155 TimeDataReader (const TimeDataReader &);
00156 TimeDataReader & operator = (const TimeDataReader &);
00157 };
00158
00159 class TimeDataReaderView
00160 :
00161 virtual public DDS::DataReaderView
00162 {
00163 public:
00164 typedef TimeDataReaderView_ptr _ptr_type;
00165 typedef TimeDataReaderView_var _var_type;
00166
00167 static TimeDataReaderView_ptr _duplicate (TimeDataReaderView_ptr obj);
00168 DDS::Boolean _local_is_a (const char * id);
00169
00170 static TimeDataReaderView_ptr _narrow (DDS::Object_ptr obj);
00171 static TimeDataReaderView_ptr _unchecked_narrow (DDS::Object_ptr obj);
00172 static TimeDataReaderView_ptr _nil () { return 0; }
00173 static const char * _local_id;
00174 TimeDataReaderView_ptr _this () { return this; }
00175
00176 virtual DDS::ReturnCode_t read (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00177 virtual DDS::ReturnCode_t take (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00178 virtual DDS::ReturnCode_t read_w_condition (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::ReadCondition_ptr a_condition) = 0;
00179 virtual DDS::ReturnCode_t take_w_condition (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::ReadCondition_ptr a_condition) = 0;
00180 virtual DDS::ReturnCode_t read_next_sample (Time& received_data, DDS::SampleInfo& sample_info) = 0;
00181 virtual DDS::ReturnCode_t take_next_sample (Time& received_data, DDS::SampleInfo& sample_info) = 0;
00182 virtual DDS::ReturnCode_t read_instance (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00183 virtual DDS::ReturnCode_t take_instance (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00184 virtual DDS::ReturnCode_t read_next_instance (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00185 virtual DDS::ReturnCode_t take_next_instance (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::SampleStateMask sample_states, DDS::ViewStateMask view_states, DDS::InstanceStateMask instance_states) = 0;
00186 virtual DDS::ReturnCode_t read_next_instance_w_condition (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::ReadCondition_ptr a_condition) = 0;
00187 virtual DDS::ReturnCode_t take_next_instance_w_condition (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq, DDS::Long max_samples, DDS::InstanceHandle_t a_handle, DDS::ReadCondition_ptr a_condition) = 0;
00188 virtual DDS::ReturnCode_t return_loan (TimeSeq& received_data, DDS::SampleInfoSeq& info_seq) = 0;
00189 virtual DDS::ReturnCode_t get_key_value (Time& key_holder, DDS::InstanceHandle_t handle) = 0;
00190 virtual DDS::InstanceHandle_t lookup_instance (const Time& instance) = 0;
00191
00192 protected:
00193 TimeDataReaderView () {};
00194 ~TimeDataReaderView () {};
00195 private:
00196 TimeDataReaderView (const TimeDataReaderView &);
00197 TimeDataReaderView & operator = (const TimeDataReaderView &);
00198 };
00199
00200 template <>
00201 DDS::BuiltinTopicKey_t_slice* DDS_DCPS_ArrayHelper < DDS::BuiltinTopicKey_t, DDS::BuiltinTopicKey_t_slice, DDS::BuiltinTopicKey_t_uniq_>::alloc ();
00202 template <>
00203 void DDS_DCPS_ArrayHelper < DDS::BuiltinTopicKey_t, DDS::BuiltinTopicKey_t_slice, DDS::BuiltinTopicKey_t_uniq_>::copy (DDS::BuiltinTopicKey_t_slice *to, const DDS::BuiltinTopicKey_t_slice* from);
00204 template <>
00205 void DDS_DCPS_ArrayHelper < DDS::BuiltinTopicKey_t, DDS::BuiltinTopicKey_t_slice, DDS::BuiltinTopicKey_t_uniq_>::free (DDS::BuiltinTopicKey_t_slice *ptr);
00206
00207
00208
00209
00210 #endif