summaryrefslogtreecommitdiff
path: root/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp')
-rw-r--r--CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp35
1 files changed, 18 insertions, 17 deletions
diff --git a/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp b/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp
index 7156450762d..aa5274fb602 100644
--- a/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp
+++ b/CIAO/connectors/dds4ccm/impl/ndds/Publisher.cpp
@@ -50,11 +50,6 @@ namespace CIAO
throw CCM_DDS::InternalError (::DDS::RETCODE_BAD_PARAMETER, 0);
}
- ::DDS::DataWriter_var retval = ::DDS::DataWriter::_nil ();
- ACE_NEW_THROW_EX (retval,
- CCM_DDS_DataWriter_i (),
- CORBA::NO_MEMORY ());
-
DDSDataWriterListener *rti_drl = 0;
if (!CORBA::is_nil (a_listener))
{
@@ -77,6 +72,11 @@ namespace CIAO
throw CCM_DDS::InternalError (::DDS::RETCODE_ERROR, 0);
}
+ ::DDS::DataWriter_var retval = ::DDS::DataWriter::_nil ();
+ ACE_NEW_THROW_EX (retval,
+ CCM_DDS_DataWriter_i (rti_dw),
+ CORBA::NO_MEMORY ());
+
rti_dw->enable ();
CCM_DDS_DataWriter_i *dw = dynamic_cast< CCM_DDS_DataWriter_i * > (retval.in ());
dw->set_impl (rti_dw);
@@ -110,11 +110,6 @@ namespace CIAO
throw CCM_DDS::InternalError (::DDS::RETCODE_BAD_PARAMETER, 0);
}
- ::DDS::DataWriter_var retval = ::DDS::DataWriter::_nil ();
- ACE_NEW_THROW_EX (retval,
- CCM_DDS_DataWriter_i (),
- CORBA::NO_MEMORY ());
-
DDSDataWriterListener *rti_drl = 0;
if (!CORBA::is_nil (a_listener))
{
@@ -137,6 +132,11 @@ namespace CIAO
throw CCM_DDS::InternalError (::DDS::RETCODE_ERROR, 0);
}
+ ::DDS::DataWriter_var retval = ::DDS::DataWriter::_nil ();
+ ACE_NEW_THROW_EX (retval,
+ CCM_DDS_DataWriter_i (rti_dw),
+ CORBA::NO_MEMORY ());
+
rti_dw->enable ();
CCM_DDS_DataWriter_i *dw = dynamic_cast< CCM_DDS_DataWriter_i * > (retval.in ());
dw->set_impl (rti_dw);
@@ -183,18 +183,19 @@ namespace CIAO
::DDS::DataWriter_ptr
CCM_DDS_Publisher_i::lookup_datawriter (const char * impl_name)
{
-#if defined (CIAO_DDS4CCM_NDDS) && (CIAO_DDS4CCM_NDDS==1)
::DDS::DataWriter_var retval = ::DDS::DataWriter::_nil ();
+#if defined (CIAO_DDS4CCM_NDDS) && (CIAO_DDS4CCM_NDDS==1)
+ DDSDataWriter* dw = this->impl ()->lookup_datawriter (impl_name);
ACE_NEW_THROW_EX (retval,
- CCM_DDS_DataWriter_i (),
+ CCM_DDS_DataWriter_i (dw),
CORBA::NO_MEMORY ());
- DDSDataWriter* dw = this->impl ()->lookup_datawriter (impl_name);
- CCM_DDS_DataWriter_i *rti_dw = dynamic_cast< CCM_DDS_DataWriter_i * > (retval.in ());
- rti_dw->set_impl (dw);
- return retval._retn ();
#else
- return this->impl ()->lookup_datawriter (impl_name);
+ ::DDS::DataWriter_var dw = this->impl ()->lookup_datawriter (impl_name);
+ ACE_NEW_THROW_EX (retval,
+ CCM_DDS_DataWriter_i (dw.in ()),
+ CORBA::NO_MEMORY ());
#endif
+ return retval._retn ();
}
::DDS::ReturnCode_t