summaryrefslogtreecommitdiff
path: root/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp')
-rw-r--r--modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp254
1 files changed, 254 insertions, 0 deletions
diff --git a/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp
new file mode 100644
index 00000000000..5949f4009b7
--- /dev/null
+++ b/modules/CIAO/connectors/dds4ccm/impl/ndds/DataReader.cpp
@@ -0,0 +1,254 @@
+// $Id$
+
+#include "DataReader.h"
+#include "DataReaderListener.h"
+#include "StatusCondition.h"
+#include "ReadCondition.h"
+#include "QueryCondition.h"
+#include "SampleLostStatus.h"
+#include "SubscriptionMatchedStatus.h"
+#include "RequestedDeadlineMissedStatus.h"
+#include "SampleRejectedStatus.h"
+#include "LivelinessChangedStatus.h"
+#include "RequestedIncompatibleQosStatus.h"
+#include "Duration_t.h"
+#include "InstanceHandle_t.h"
+#include "InstanceHandleSeq.h"
+#include "Subscriber.h"
+#include "TopicDescription.h"
+#include "ciao/Logger/Log_Macros.h"
+
+namespace CIAO
+{
+ namespace DDS4CCM
+ {
+ namespace RTI
+ {
+ // Implementation skeleton constructor
+ RTI_DataReader_i::RTI_DataReader_i (DDSDataReader * dr)
+ : impl_ (dr)
+ {
+ }
+
+ // Implementation skeleton destructor
+ RTI_DataReader_i::~RTI_DataReader_i (void)
+ {
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::enable (void)
+ {
+ return this->impl_->enable ();
+ }
+
+ ::DDS::StatusCondition_ptr
+ RTI_DataReader_i::get_statuscondition (void)
+ {
+ DDSStatusCondition* sc = this->impl_->get_statuscondition ();
+ ::DDS::StatusCondition_var retval = new RTI_StatusCondition_i (sc);
+ return retval._retn ();
+ }
+
+ ::DDS::StatusMask
+ RTI_DataReader_i::get_status_changes (void)
+ {
+ return this->impl_->get_status_changes ();
+ }
+
+ ::DDS::InstanceHandle_t
+ RTI_DataReader_i::get_instance_handle (void)
+ {
+ ::DDS_InstanceHandle_t const rtihandle = this->impl_->get_instance_handle ();
+ ::DDS::InstanceHandle_t handle;
+ handle <<= rtihandle;
+ return handle;
+ }
+
+ ::DDS::ReadCondition_ptr
+ RTI_DataReader_i::create_readcondition (
+ ::DDS::SampleStateMask sample_states,
+ ::DDS::ViewStateMask view_states,
+ ::DDS::InstanceStateMask instance_states)
+ {
+ DDSReadCondition* rc = this->impl_->create_readcondition (sample_states, view_states, instance_states);
+ ::DDS::ReadCondition_var retval = new RTI_ReadCondition_i (rc);
+ return retval._retn ();
+ }
+
+ ::DDS::QueryCondition_ptr
+ RTI_DataReader_i::create_querycondition (
+ ::DDS::SampleStateMask /*sample_states*/,
+ ::DDS::ViewStateMask /*view_states*/,
+ ::DDS::InstanceStateMask /*instance_states*/,
+ const char * /*query_expression*/,
+ const ::DDS::StringSeq & /*query_parameters*/)
+ {
+ DDSQueryCondition* qc = 0; // @todo = this->impl_->create_querycondition (sample_states, view_states, instance_states, query_expression, query_parameters);
+ ::DDS::QueryCondition_var retval = new RTI_QueryCondition_i (qc);
+ return retval._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::delete_readcondition (
+ ::DDS::ReadCondition_ptr a_condition)
+ {
+ RTI_ReadCondition_i *rc = dynamic_cast< RTI_ReadCondition_i *> (a_condition);
+ if (!rc)
+ {
+ return ::DDS::RETCODE_BAD_PARAMETER;
+ }
+ return this->impl_->delete_readcondition (rc->get_readcondition ());
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::delete_contained_entities (void)
+ {
+ return this->impl_->delete_contained_entities ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::set_qos (
+ const ::DDS::DataReaderQos & /*qos*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_qos (
+ ::DDS::DataReaderQos & /*qos*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::set_listener (
+ ::DDS::DataReaderListener_ptr a_listener,
+ ::DDS::StatusMask mask)
+ {
+ RTI_DataReaderListener_i* rti_impl_list = new RTI_DataReaderListener_i (a_listener);
+ return this->impl_->set_listener (rti_impl_list, mask);
+ }
+
+ ::DDS::DataReaderListener_ptr
+ RTI_DataReader_i::get_listener (void)
+ {
+ //::DDSDataReaderListener* reader = this->impl_->get_listener ();
+// ::DDS::DataReaderListener_var dds_reader = new RTI_DataReaderListener_i (reader);
+ //return dds_reader._retn ();
+ throw CORBA::NO_IMPLEMENT ();
+ }
+
+ ::DDS::TopicDescription_ptr
+ RTI_DataReader_i::get_topicdescription (void)
+ {
+ ::DDSTopicDescription* reader = this->impl_->get_topicdescription ();
+ ::DDS::TopicDescription_var dds_td = new RTI_TopicDescription_i (reader);
+ return dds_td._retn ();
+ }
+
+ ::DDS::Subscriber_ptr
+ RTI_DataReader_i::get_subscriber (void)
+ {
+ ::DDSSubscriber* subscriber = this->impl_->get_subscriber ();
+ ::DDS::Subscriber_var dds_td = new RTI_Subscriber_i (subscriber);
+ return dds_td._retn ();
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_sample_rejected_status (
+ ::DDS::SampleRejectedStatus & status)
+ {
+ DDS_SampleRejectedStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_sample_rejected_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_liveliness_changed_status (
+ ::DDS::LivelinessChangedStatus & status)
+ {
+ DDS_LivelinessChangedStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_liveliness_changed_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_requested_deadline_missed_status (
+ ::DDS::RequestedDeadlineMissedStatus & status)
+ {
+ DDS_RequestedDeadlineMissedStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_requested_deadline_missed_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_requested_incompatible_qos_status (
+ ::DDS::RequestedIncompatibleQosStatus & status)
+ {
+ DDS_RequestedIncompatibleQosStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_requested_incompatible_qos_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_subscription_matched_status (
+ ::DDS::SubscriptionMatchedStatus & status)
+ {
+ ::DDS_SubscriptionMatchedStatus ddsstatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_subscription_matched_status (ddsstatus);
+ ddsstatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_sample_lost_status (
+ ::DDS::SampleLostStatus & status)
+ {
+ DDS_SampleLostStatus rtistatus;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_sample_lost_status (rtistatus);
+ rtistatus >>= status;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::wait_for_historical_data (
+ const ::DDS::Duration_t & max_wait)
+ {
+ ::DDS_Duration_t rtiduration;
+ rtiduration <<= max_wait;
+ return this->impl_->wait_for_historical_data (rtiduration);
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_matched_publications (
+ ::DDS::InstanceHandleSeq & publication_handles)
+ {
+ ::DDS_InstanceHandleSeq rtiseq;
+ ::DDS::ReturnCode_t const retval = this->impl_->get_matched_publications (rtiseq);
+ rtiseq >>= publication_handles;
+ return retval;
+ }
+
+ ::DDS::ReturnCode_t
+ RTI_DataReader_i::get_matched_publication_data (
+ ::DDS::PublicationBuiltinTopicData & /*publication_data*/,
+ const ::DDS::InstanceHandle_t & /*publication_handle*/)
+ {
+ throw CORBA::NO_IMPLEMENT ();
+ // Add your implementation here
+ }
+
+ DDSDataReader *
+ RTI_DataReader_i::get_datareader (void)
+ {
+ return this->impl_;
+ }
+ }
+ }
+}