Skip to content

Commit dfb51cc

Browse files
committed
Add new subscription type and refine code
Signed-off-by: methylDragon <[email protected]>
1 parent 0fb986b commit dfb51cc

File tree

5 files changed

+24
-11
lines changed

5 files changed

+24
-11
lines changed

rclcpp/include/rclcpp/subscription_base.hpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ class IntraProcessManager;
6565

6666
enum class SubscriptionType : uint8_t
6767
{
68+
INVALID = 0, // The subscription type is most likely uninitialized
6869
ROS_MESSAGE = 1, // take message as ROS message and handle as ROS message
6970
SERIALIZED_MESSAGE = 2, // take message as serialized and handle as serialized
7071
DYNAMIC_MESSAGE_DIRECT = 3, // take message as DynamicMessage and handle as DynamicMessage

rclcpp/src/rclcpp/dynamic_typesupport/dynamic_serialization_support.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ DynamicSerializationSupport::DynamicSerializationSupport(rcl_allocator_t allocat
3131
: DynamicSerializationSupport::DynamicSerializationSupport("", allocator) {} // STUBBED
3232

3333
DynamicSerializationSupport::DynamicSerializationSupport(
34-
const std::string & serialization_library_name,
35-
rcl_allocator_t allocator)
34+
const std::string & /*serialization_library_name*/,
35+
rcl_allocator_t /*allocator*/)
3636
: rosidl_serialization_support_(
3737
rosidl_dynamic_typesupport_get_zero_initialized_serialization_support())
3838
{} // STUBBED

rclcpp/src/rclcpp/executor.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -690,6 +690,11 @@ Executor::execute_subscription(rclcpp::SubscriptionBase::SharedPtr subscription)
690690
{
691691
throw std::runtime_error("Unimplemented");
692692
}
693+
694+
default:
695+
{
696+
throw std::runtime_error("Subscription type is not supported");
697+
}
693698
}
694699
return;
695700
}

rclcpp/src/rclcpp/generic_subscription.cpp

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,32 +25,37 @@
2525
namespace rclcpp
2626
{
2727

28-
std::shared_ptr<void> GenericSubscription::create_message()
28+
std::shared_ptr<void>
29+
GenericSubscription::create_message()
2930
{
3031
return create_serialized_message();
3132
}
3233

33-
std::shared_ptr<rclcpp::SerializedMessage> GenericSubscription::create_serialized_message()
34+
std::shared_ptr<rclcpp::SerializedMessage>
35+
GenericSubscription::create_serialized_message()
3436
{
3537
return std::make_shared<rclcpp::SerializedMessage>(0);
3638
}
3739

38-
void GenericSubscription::handle_message(
40+
void
41+
GenericSubscription::handle_message(
3942
std::shared_ptr<void> &,
4043
const rclcpp::MessageInfo &)
4144
{
4245
throw rclcpp::exceptions::UnimplementedError(
4346
"handle_message is not implemented for GenericSubscription");
4447
}
4548

46-
void GenericSubscription::handle_serialized_message(
49+
void
50+
GenericSubscription::handle_serialized_message(
4751
const std::shared_ptr<rclcpp::SerializedMessage> & message,
4852
const rclcpp::MessageInfo &)
4953
{
5054
callback_(message);
5155
}
5256

53-
void GenericSubscription::handle_loaned_message(
57+
void
58+
GenericSubscription::handle_loaned_message(
5459
void * message, const rclcpp::MessageInfo & message_info)
5560
{
5661
(void) message;
@@ -59,13 +64,15 @@ void GenericSubscription::handle_loaned_message(
5964
"handle_loaned_message is not implemented for GenericSubscription");
6065
}
6166

62-
void GenericSubscription::return_message(std::shared_ptr<void> & message)
67+
void
68+
GenericSubscription::return_message(std::shared_ptr<void> & message)
6369
{
6470
auto typed_message = std::static_pointer_cast<rclcpp::SerializedMessage>(message);
6571
return_serialized_message(typed_message);
6672
}
6773

68-
void GenericSubscription::return_serialized_message(
74+
void
75+
GenericSubscription::return_serialized_message(
6976
std::shared_ptr<rclcpp::SerializedMessage> & message)
7077
{
7178
message.reset();

rclcpp/src/rclcpp/subscription_base.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -539,8 +539,8 @@ SubscriptionBase::get_content_filter() const
539539
// DYNAMIC TYPE ==================================================================================
540540
bool
541541
SubscriptionBase::take_dynamic_message(
542-
rclcpp::dynamic_typesupport::DynamicMessage & message_out,
543-
rclcpp::MessageInfo & message_info_out)
542+
rclcpp::dynamic_typesupport::DynamicMessage & /*message_out*/,
543+
rclcpp::MessageInfo & /*message_info_out*/)
544544
{
545545
RCLCPP_WARN(rclcpp::get_logger("rclcpp"), "take_dynamic_message stubbed out for now.");
546546
return false;

0 commit comments

Comments
 (0)