Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for humble #71

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions rmw_opendds_cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,9 @@ add_library(
src/rmw_client.cpp
src/rmw_compare_gid_equals.cpp
src/rmw_event.cpp
src/rmw_features.cpp
src/rmw_get_implementation_identifier.cpp
src/rmw_get_network_flow_endpoints.cpp
src/rmw_get_serialization_format.cpp
src/rmw_get_topic_endpoint_info.cpp
src/rmw_guard_condition.cpp
Expand Down
4 changes: 4 additions & 0 deletions rmw_opendds_cpp/include/rmw_opendds_cpp/DDSServer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#ifndef RMW_OPENDDS_CPP__DDSSERVER_HPP_
#define RMW_OPENDDS_CPP__DDSSERVER_HPP_

#include <rmw/types.h>
#include <rmw_opendds_cpp/Service.hpp>
#include <rmw_opendds_cpp/OpenDDSNode.hpp>
#include <rmw_opendds_cpp/RmwAllocateFree.hpp>
Expand All @@ -34,6 +35,9 @@ class DDSServer
void * replier() const { return replier_; }
DDS::ReadCondition_var read_condition() const { return read_condition_; }

void subscription_get_actual_qos(rmw_qos_profile_t* qos);
void publisher_get_actual_qos(rmw_qos_profile_t* qos);

private:
friend Raf;
DDSServer(const rosidl_service_type_support_t * ts, const char * service_name,
Expand Down
17 changes: 8 additions & 9 deletions rmw_opendds_cpp/include/rmw_opendds_cpp/init.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,20 @@

#include <dds/DdsDcpsDomainC.h>

struct rmw_context_impl_t
{
rmw_context_impl_t();
~rmw_context_impl_t();
struct rmw_context_impl_s {
rmw_context_impl_s();
~rmw_context_impl_s();
DDS::DomainParticipantFactory_var dpf_;
};

RMW_OPENDDS_CPP_PUBLIC
rmw_ret_t init(rmw_context_t& context);
rmw_ret_t init(rmw_context_t &context);

RMW_OPENDDS_CPP_PUBLIC
rmw_ret_t shutdown(rmw_context_t& context);
rmw_ret_t shutdown(rmw_context_t &context);

bool is_zero_initialized(const rmw_init_options_t * o);
bool is_zero_initialized(const rmw_init_options_t *o);

bool is_zero_initialized(const rmw_context_t * c);
bool is_zero_initialized(const rmw_context_t *c);

#endif // RMW_OPENDDS_CPP__INIT_HPP_
#endif // RMW_OPENDDS_CPP__INIT_HPP_
2 changes: 1 addition & 1 deletion rmw_opendds_cpp/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<build_depend>opendds_cmake_module</build_depend>
<build_depend>rcutils</build_depend>
<build_depend>rmw</build_depend>
<build_depend>opendds</build_depend>
<!-- <build_depend>opendds</build_depend> -->
<build_depend>rosidl_generator_c</build_depend>
<build_depend>rosidl_generator_cpp</build_depend>
<build_depend>rosidl_generator_dds_idl</build_depend>
Expand Down
18 changes: 18 additions & 0 deletions rmw_opendds_cpp/src/DDSServer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
// See the License for the specific language governing permissions and
// limitations under the License.

#include "rmw_opendds_cpp/qos.hpp"
#include <dds/DdsDcpsCoreC.h>
#include <dds/DdsDcpsSubscriptionC.h>
#include <rmw_opendds_cpp/DDSServer.hpp>
#include <rmw_opendds_cpp/identifier.hpp>

Expand Down Expand Up @@ -75,6 +78,21 @@ bool DDSServer::remove_from(OpenDDSNode * dds_node)
return false;
}

void DDSServer::subscription_get_actual_qos(rmw_qos_profile_t* qos) {
DDS::DataReaderQos dds_qos;
reader_->get_qos(dds_qos);

dds_qos_to_rmw_qos(dds_qos, *qos);
}

void DDSServer::publisher_get_actual_qos(rmw_qos_profile_t* qos) {
DDS::DataWriterQos dds_qos;
writer_->get_qos(dds_qos);

dds_qos_to_rmw_qos(dds_qos, *qos);
}


DDSServer::DDSServer(const rosidl_service_type_support_t * ts
, const char * service_name
, const rmw_qos_profile_t * rmw_qos
Expand Down
Loading