MCPcopy Create free account
hub / github.com/OpenDDS/OpenDDS / register_instance_i

Method register_instance_i

dds/DCPS/DataWriterImpl.cpp:1601–1663  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1599}
1600
1601DDS::ReturnCode_t
1602DataWriterImpl::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)),

Callers

nothing calls this directly

Calls 7

retcode_to_stringFunction · 0.85
moveFunction · 0.85
enqueue_controlMethod · 0.80
release_bufferMethod · 0.80
register_instanceMethod · 0.45
reportMethod · 0.45

Tested by

no test coverage detected