| 1599 | } |
| 1600 | |
| 1601 | DDS::ReturnCode_t |
| 1602 | DataWriterImpl::register_instance_i(DDS::InstanceHandle_t& handle, |
| 1603 | Message_Block_Ptr data, |
| 1604 | const DDS::Time_t& source_timestamp) |
| 1605 | { |
| 1606 | DBG_ENTRY_LVL("DataWriterImpl","register_instance_i",6); |
| 1607 | |
| 1608 | if (!enabled_) { |
| 1609 | ACE_ERROR_RETURN((LM_ERROR, |
| 1610 | ACE_TEXT("(%P|%t) ERROR: ") |
| 1611 | ACE_TEXT("DataWriterImpl::register_instance_i: ") |
| 1612 | ACE_TEXT("Entity is not enabled.\n")), |
| 1613 | DDS::RETCODE_NOT_ENABLED); |
| 1614 | } |
| 1615 | |
| 1616 | DDS::ReturnCode_t ret = data_container_->register_instance(handle, data); |
| 1617 | if (ret != DDS::RETCODE_OK) { |
| 1618 | ACE_ERROR_RETURN((LM_ERROR, |
| 1619 | ACE_TEXT("(%P|%t) ERROR: DataWriterImpl::register_instance_i: ") |
| 1620 | ACE_TEXT("register instance with container failed, returned <%C>.\n"), |
| 1621 | retcode_to_string(ret)), |
| 1622 | ret); |
| 1623 | } |
| 1624 | |
| 1625 | if (this->monitor_) { |
| 1626 | this->monitor_->report(); |
| 1627 | } |
| 1628 | |
| 1629 | DataSampleElement* element = 0; |
| 1630 | ret = this->data_container_->obtain_buffer_for_control(element); |
| 1631 | if (ret != DDS::RETCODE_OK) { |
| 1632 | ACE_ERROR_RETURN((LM_ERROR, |
| 1633 | ACE_TEXT("(%P|%t) ERROR: ") |
| 1634 | ACE_TEXT("DataWriterImpl::register_instance_i: ") |
| 1635 | ACE_TEXT("obtain_buffer_for_control failed, returned <%C>.\n"), |
| 1636 | retcode_to_string(ret)), |
| 1637 | ret); |
| 1638 | } |
| 1639 | |
| 1640 | // Add header with the registration sample data. |
| 1641 | Message_Block_Ptr sample( |
| 1642 | create_control_message( |
| 1643 | INSTANCE_REGISTRATION, |
| 1644 | element->get_header(), |
| 1645 | OPENDDS_MOVE_NS::move(data), |
| 1646 | source_timestamp)); |
| 1647 | |
| 1648 | element->set_sample(OPENDDS_MOVE_NS::move(sample)); |
| 1649 | |
| 1650 | ret = this->data_container_->enqueue_control(element); |
| 1651 | |
| 1652 | if (ret != DDS::RETCODE_OK) { |
| 1653 | data_container_->release_buffer(element); |
| 1654 | ACE_ERROR_RETURN((LM_ERROR, |
| 1655 | ACE_TEXT("(%P|%t) ERROR: ") |
| 1656 | ACE_TEXT("DataWriterImpl::register_instance_i: ") |
| 1657 | ACE_TEXT("enqueue_control failed, returned <%C>\n"), |
| 1658 | retcode_to_string(ret)), |
nothing calls this directly
no test coverage detected