00001 #ifndef GSDFPACKETDCPS_IMPL_H_ 00002 #define GSDFPACKETDCPS_IMPL_H_ 00003 00004 #include "ccpp.h" 00005 #include "ccpp_GSDFPacket.h" 00006 #include "ccpp_TypeSupport_impl.h" 00007 #include "ccpp_DataWriter_impl.h" 00008 #include "ccpp_DataReader_impl.h" 00009 #include "ccpp_DataReaderView_impl.h" 00010 00011 00012 namespace opensplice_dds_comm { 00013 00014 class GSDFPacketTypeSupportFactory : public ::DDS::TypeSupportFactory_impl 00015 { 00016 public: 00017 GSDFPacketTypeSupportFactory() {} 00018 virtual ~GSDFPacketTypeSupportFactory() {} 00019 private: 00020 ::DDS::DataWriter_ptr 00021 create_datawriter (gapi_dataWriter handle); 00022 00023 ::DDS::DataReader_ptr 00024 create_datareader (gapi_dataReader handle); 00025 00026 ::DDS::DataReaderView_ptr 00027 create_view (gapi_dataReaderView handle); 00028 }; 00029 00030 class GSDFPacketTypeSupport : public virtual GSDFPacketTypeSupportInterface, 00031 public ::DDS::TypeSupport_impl 00032 { 00033 public: 00034 virtual ::DDS::ReturnCode_t register_type( 00035 ::DDS::DomainParticipant_ptr participant, 00036 const char * type_name) THROW_ORB_EXCEPTIONS; 00037 00038 virtual char * get_type_name() THROW_ORB_EXCEPTIONS; 00039 00040 GSDFPacketTypeSupport (void); 00041 virtual ~GSDFPacketTypeSupport (void); 00042 00043 private: 00044 GSDFPacketTypeSupport (const GSDFPacketTypeSupport &); 00045 void operator= (const GSDFPacketTypeSupport &); 00046 00047 static const char *metaDescriptor[]; 00048 static const ::DDS::ULong metaDescriptorArrLength; 00049 }; 00050 00051 typedef GSDFPacketTypeSupportInterface_var GSDFPacketTypeSupport_var; 00052 typedef GSDFPacketTypeSupportInterface_ptr GSDFPacketTypeSupport_ptr; 00053 00054 class GSDFPacketDataWriter_impl : public virtual GSDFPacketDataWriter, 00055 public ::DDS::DataWriter_impl 00056 { 00057 public: 00058 00059 virtual ::DDS::InstanceHandle_t register_instance( 00060 const GSDFPacket & instance_data) THROW_ORB_EXCEPTIONS; 00061 00062 virtual ::DDS::InstanceHandle_t register_instance_w_timestamp( 00063 const GSDFPacket & instance_data, 00064 const ::DDS::Time_t & source_timestamp) THROW_ORB_EXCEPTIONS; 00065 00066 virtual ::DDS::ReturnCode_t unregister_instance( 00067 const GSDFPacket & instance_data, 00068 ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS; 00069 00070 virtual ::DDS::ReturnCode_t unregister_instance_w_timestamp( 00071 const GSDFPacket & instance_data, 00072 ::DDS::InstanceHandle_t handle, 00073 const ::DDS::Time_t & source_timestamp) THROW_ORB_EXCEPTIONS; 00074 00075 virtual ::DDS::ReturnCode_t write( 00076 const GSDFPacket & instance_data, 00077 ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS; 00078 00079 virtual ::DDS::ReturnCode_t write_w_timestamp( 00080 const GSDFPacket & instance_data, 00081 ::DDS::InstanceHandle_t handle, 00082 const ::DDS::Time_t & source_timestamp) THROW_ORB_EXCEPTIONS; 00083 00084 virtual ::DDS::ReturnCode_t dispose( 00085 const GSDFPacket & instance_data, 00086 ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS; 00087 00088 virtual ::DDS::ReturnCode_t dispose_w_timestamp( 00089 const GSDFPacket & instance_data, 00090 ::DDS::InstanceHandle_t handle, 00091 const ::DDS::Time_t & source_timestamp) THROW_ORB_EXCEPTIONS; 00092 00093 virtual ::DDS::ReturnCode_t writedispose( 00094 const GSDFPacket & instance_data, 00095 ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS; 00096 00097 virtual ::DDS::ReturnCode_t writedispose_w_timestamp( 00098 const GSDFPacket & instance_data, 00099 ::DDS::InstanceHandle_t handle, 00100 const ::DDS::Time_t & source_timestamp) THROW_ORB_EXCEPTIONS; 00101 00102 virtual ::DDS::ReturnCode_t get_key_value( 00103 GSDFPacket & key_holder, 00104 ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS; 00105 00106 virtual ::DDS::InstanceHandle_t lookup_instance( 00107 const GSDFPacket & instance_data) THROW_ORB_EXCEPTIONS; 00108 00109 00110 GSDFPacketDataWriter_impl ( 00111 gapi_dataWriter handle 00112 ); 00113 00114 virtual ~GSDFPacketDataWriter_impl (void); 00115 00116 private: 00117 GSDFPacketDataWriter_impl(const GSDFPacketDataWriter_impl &); 00118 void operator= (const GSDFPacketDataWriter &); 00119 }; 00120 00121 class GSDFPacketDataReader_impl : public virtual GSDFPacketDataReader, 00122 public ::DDS::DataReader_impl 00123 { 00124 friend class GSDFPacketDataReaderView_impl; 00125 public: 00126 virtual ::DDS::ReturnCode_t read( 00127 GSDFPacketSeq & received_data, 00128 ::DDS::SampleInfoSeq & info_seq, 00129 ::DDS::Long max_samples, 00130 ::DDS::SampleStateMask sample_states, 00131 ::DDS::ViewStateMask view_states, 00132 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00133 00134 virtual ::DDS::ReturnCode_t take( 00135 GSDFPacketSeq & received_data, 00136 ::DDS::SampleInfoSeq & info_seq, 00137 ::DDS::Long max_samples, 00138 ::DDS::SampleStateMask sample_states, 00139 ::DDS::ViewStateMask view_states, 00140 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00141 00142 virtual ::DDS::ReturnCode_t read_w_condition( 00143 GSDFPacketSeq & received_data, 00144 ::DDS::SampleInfoSeq & info_seq, 00145 ::DDS::Long max_samples, 00146 ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS; 00147 00148 virtual ::DDS::ReturnCode_t take_w_condition( 00149 GSDFPacketSeq & received_data, 00150 ::DDS::SampleInfoSeq & info_seq, 00151 ::DDS::Long max_samples, 00152 ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS; 00153 00154 virtual ::DDS::ReturnCode_t read_next_sample( 00155 GSDFPacket & received_data, 00156 ::DDS::SampleInfo & sample_info) THROW_ORB_EXCEPTIONS; 00157 00158 virtual ::DDS::ReturnCode_t take_next_sample( 00159 GSDFPacket & received_data, 00160 ::DDS::SampleInfo & sample_info) THROW_ORB_EXCEPTIONS; 00161 00162 virtual ::DDS::ReturnCode_t read_instance( 00163 GSDFPacketSeq & received_data, 00164 ::DDS::SampleInfoSeq & info_seq, 00165 ::DDS::Long max_samples, 00166 ::DDS::InstanceHandle_t a_handle, 00167 ::DDS::SampleStateMask sample_states, 00168 ::DDS::ViewStateMask view_states, 00169 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00170 00171 virtual ::DDS::ReturnCode_t take_instance( 00172 GSDFPacketSeq & received_data, 00173 ::DDS::SampleInfoSeq & info_seq, 00174 ::DDS::Long max_samples, 00175 ::DDS::InstanceHandle_t a_handle, 00176 ::DDS::SampleStateMask sample_states, 00177 ::DDS::ViewStateMask view_states, 00178 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00179 00180 virtual ::DDS::ReturnCode_t read_next_instance( 00181 GSDFPacketSeq & received_data, 00182 ::DDS::SampleInfoSeq & info_seq, 00183 ::DDS::Long max_samples, 00184 ::DDS::InstanceHandle_t a_handle, 00185 ::DDS::SampleStateMask sample_states, 00186 ::DDS::ViewStateMask view_states, 00187 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00188 00189 virtual ::DDS::ReturnCode_t take_next_instance( 00190 GSDFPacketSeq & received_data, 00191 ::DDS::SampleInfoSeq & info_seq, 00192 ::DDS::Long max_samples, 00193 ::DDS::InstanceHandle_t a_handle, 00194 ::DDS::SampleStateMask sample_states, 00195 ::DDS::ViewStateMask view_states, 00196 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00197 00198 virtual ::DDS::ReturnCode_t read_next_instance_w_condition( 00199 GSDFPacketSeq & received_data, 00200 ::DDS::SampleInfoSeq & info_seq, 00201 ::DDS::Long max_samples, 00202 ::DDS::InstanceHandle_t a_handle, 00203 ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS; 00204 00205 virtual ::DDS::ReturnCode_t take_next_instance_w_condition( 00206 GSDFPacketSeq & received_data, 00207 ::DDS::SampleInfoSeq & info_seq, 00208 ::DDS::Long max_samples, 00209 ::DDS::InstanceHandle_t a_handle, 00210 ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS; 00211 00212 virtual ::DDS::ReturnCode_t return_loan( 00213 GSDFPacketSeq & received_data, 00214 ::DDS::SampleInfoSeq & info_seq) THROW_ORB_EXCEPTIONS; 00215 00216 virtual ::DDS::ReturnCode_t get_key_value( 00217 GSDFPacket & key_holder, 00218 ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS; 00219 00220 virtual ::DDS::InstanceHandle_t lookup_instance( 00221 const GSDFPacket & instance) THROW_ORB_EXCEPTIONS; 00222 00223 GSDFPacketDataReader_impl ( 00224 gapi_dataReader handle 00225 ); 00226 00227 virtual ~GSDFPacketDataReader_impl(void); 00228 00229 private: 00230 GSDFPacketDataReader_impl(const GSDFPacketDataReader &); 00231 void operator= (const GSDFPacketDataReader &); 00232 00233 static ::DDS::ReturnCode_t check_preconditions( 00234 GSDFPacketSeq & received_data, 00235 ::DDS::SampleInfoSeq & info_seq, 00236 ::DDS::Long max_samples 00237 ); 00238 }; 00239 00240 class GSDFPacketDataReaderView_impl : public virtual GSDFPacketDataReaderView, 00241 public ::DDS::DataReaderView_impl 00242 { 00243 public: 00244 virtual ::DDS::ReturnCode_t read( 00245 GSDFPacketSeq & received_data, 00246 ::DDS::SampleInfoSeq & info_seq, 00247 ::DDS::Long max_samples, 00248 ::DDS::SampleStateMask sample_states, 00249 ::DDS::ViewStateMask view_states, 00250 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00251 00252 virtual ::DDS::ReturnCode_t take( 00253 GSDFPacketSeq & received_data, 00254 ::DDS::SampleInfoSeq & info_seq, 00255 ::DDS::Long max_samples, 00256 ::DDS::SampleStateMask sample_states, 00257 ::DDS::ViewStateMask view_states, 00258 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00259 00260 virtual ::DDS::ReturnCode_t read_w_condition( 00261 GSDFPacketSeq & received_data, 00262 ::DDS::SampleInfoSeq & info_seq, 00263 ::DDS::Long max_samples, 00264 ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS; 00265 00266 virtual ::DDS::ReturnCode_t take_w_condition( 00267 GSDFPacketSeq & received_data, 00268 ::DDS::SampleInfoSeq & info_seq, 00269 ::DDS::Long max_samples, 00270 ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS; 00271 00272 virtual ::DDS::ReturnCode_t read_next_sample( 00273 GSDFPacket & received_data, 00274 ::DDS::SampleInfo & sample_info) THROW_ORB_EXCEPTIONS; 00275 00276 virtual ::DDS::ReturnCode_t take_next_sample( 00277 GSDFPacket & received_data, 00278 ::DDS::SampleInfo & sample_info) THROW_ORB_EXCEPTIONS; 00279 00280 virtual ::DDS::ReturnCode_t read_instance( 00281 GSDFPacketSeq & received_data, 00282 ::DDS::SampleInfoSeq & info_seq, 00283 ::DDS::Long max_samples, 00284 ::DDS::InstanceHandle_t a_handle, 00285 ::DDS::SampleStateMask sample_states, 00286 ::DDS::ViewStateMask view_states, 00287 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00288 00289 virtual ::DDS::ReturnCode_t take_instance( 00290 GSDFPacketSeq & received_data, 00291 ::DDS::SampleInfoSeq & info_seq, 00292 ::DDS::Long max_samples, 00293 ::DDS::InstanceHandle_t a_handle, 00294 ::DDS::SampleStateMask sample_states, 00295 ::DDS::ViewStateMask view_states, 00296 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00297 00298 virtual ::DDS::ReturnCode_t read_next_instance( 00299 GSDFPacketSeq & received_data, 00300 ::DDS::SampleInfoSeq & info_seq, 00301 ::DDS::Long max_samples, 00302 ::DDS::InstanceHandle_t a_handle, 00303 ::DDS::SampleStateMask sample_states, 00304 ::DDS::ViewStateMask view_states, 00305 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00306 00307 virtual ::DDS::ReturnCode_t take_next_instance( 00308 GSDFPacketSeq & received_data, 00309 ::DDS::SampleInfoSeq & info_seq, 00310 ::DDS::Long max_samples, 00311 ::DDS::InstanceHandle_t a_handle, 00312 ::DDS::SampleStateMask sample_states, 00313 ::DDS::ViewStateMask view_states, 00314 ::DDS::InstanceStateMask instance_states) THROW_ORB_EXCEPTIONS; 00315 00316 virtual ::DDS::ReturnCode_t read_next_instance_w_condition( 00317 GSDFPacketSeq & received_data, 00318 ::DDS::SampleInfoSeq & info_seq, 00319 ::DDS::Long max_samples, 00320 ::DDS::InstanceHandle_t a_handle, 00321 ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS; 00322 00323 virtual ::DDS::ReturnCode_t take_next_instance_w_condition( 00324 GSDFPacketSeq & received_data, 00325 ::DDS::SampleInfoSeq & info_seq, 00326 ::DDS::Long max_samples, 00327 ::DDS::InstanceHandle_t a_handle, 00328 ::DDS::ReadCondition_ptr a_condition) THROW_ORB_EXCEPTIONS; 00329 00330 virtual ::DDS::ReturnCode_t return_loan( 00331 GSDFPacketSeq & received_data, 00332 ::DDS::SampleInfoSeq & info_seq) THROW_ORB_EXCEPTIONS; 00333 00334 virtual ::DDS::ReturnCode_t get_key_value( 00335 GSDFPacket & key_holder, 00336 ::DDS::InstanceHandle_t handle) THROW_ORB_EXCEPTIONS; 00337 00338 virtual ::DDS::InstanceHandle_t lookup_instance( 00339 const GSDFPacket & instance) THROW_ORB_EXCEPTIONS; 00340 00341 GSDFPacketDataReaderView_impl ( 00342 gapi_dataReader handle 00343 ); 00344 00345 virtual ~GSDFPacketDataReaderView_impl(void); 00346 00347 private: 00348 GSDFPacketDataReaderView_impl(const GSDFPacketDataReaderView &); 00349 void operator= (const GSDFPacketDataReaderView &); 00350 }; 00351 00352 } 00353 00354 #endif