@@ -117,20 +117,20 @@ typedef struct rmw_init_options_impl_s rmw_uxrce_init_options_impl_t;
117117
118118typedef struct rmw_uxrce_topic_t
119119{
120- rmw_uxrce_mempool_item_t mem ;
121-
122120 uxrObjectId topic_id ;
123- const message_type_support_callbacks_t * message_type_support_callbacks ;
124- char topic_name [RMW_UXRCE_TOPIC_NAME_MAX_LENGTH ];
125121
126- struct rmw_uxrce_node_t * owner_node ;
122+ union {
123+ const message_type_support_callbacks_t * msg ;
124+ const service_type_support_callbacks_t * srv ;
125+ } type_support_callbacks ;
126+
127+ char topic_name [RMW_UXRCE_TOPIC_NAME_MAX_LENGTH ];
127128} rmw_uxrce_topic_t ;
128129
129130typedef struct rmw_uxrce_service_t
130131{
131132 rmw_uxrce_mempool_item_t mem ;
132133 uxrObjectId service_id ;
133- const service_type_support_callbacks_t * type_support_callbacks ;
134134 uint16_t service_data_resquest ;
135135
136136 rmw_qos_profile_t qos ;
@@ -140,14 +140,13 @@ typedef struct rmw_uxrce_service_t
140140 struct rmw_uxrce_node_t * owner_node ;
141141
142142 rmw_service_t rmw_service ;
143- char service_name [ RMW_UXRCE_TOPIC_NAME_MAX_LENGTH ] ;
143+ rmw_uxrce_topic_t topic ;
144144} rmw_uxrce_service_t ;
145145
146146typedef struct rmw_uxrce_client_t
147147{
148148 rmw_uxrce_mempool_item_t mem ;
149149 uxrObjectId client_id ;
150- const service_type_support_callbacks_t * type_support_callbacks ;
151150 uint16_t client_data_request ;
152151
153152 rmw_qos_profile_t qos ;
@@ -157,7 +156,7 @@ typedef struct rmw_uxrce_client_t
157156 struct rmw_uxrce_node_t * owner_node ;
158157
159158 rmw_client_t rmw_client ;
160- char service_name [ RMW_UXRCE_TOPIC_NAME_MAX_LENGTH ] ;
159+ rmw_uxrce_topic_t topic ;
161160} rmw_uxrce_client_t ;
162161
163162typedef struct rmw_uxrce_subscription_t
@@ -166,14 +165,12 @@ typedef struct rmw_uxrce_subscription_t
166165 uxrObjectId subscriber_id ;
167166 uxrObjectId datareader_id ;
168167
169- const message_type_support_callbacks_t * type_support_callbacks ;
170- struct rmw_uxrce_topic_t * topic ;
171-
172168 struct rmw_uxrce_node_t * owner_node ;
173169 rmw_qos_profile_t qos ;
174170 uxrStreamId stream_id ;
175171
176172 rmw_subscription_t rmw_subscription ;
173+ rmw_uxrce_topic_t topic ;
177174} rmw_uxrce_subscription_t ;
178175
179176typedef struct rmw_uxrce_publisher_t
@@ -182,20 +179,16 @@ typedef struct rmw_uxrce_publisher_t
182179 uxrObjectId publisher_id ;
183180 uxrObjectId datawriter_id ;
184181
185- const message_type_support_callbacks_t * type_support_callbacks ;
186-
187182 rmw_uros_continous_serialization_size cs_cb_size ;
188183 rmw_uros_continous_serialization cs_cb_serialization ;
189184
190- struct rmw_uxrce_topic_t * topic ;
191-
185+ struct rmw_uxrce_node_t * owner_node ;
192186 rmw_qos_profile_t qos ;
193187 uxrStreamId stream_id ;
194188 int session_timeout ;
195189
196- struct rmw_uxrce_node_t * owner_node ;
197-
198190 rmw_publisher_t rmw_publisher ;
191+ rmw_uxrce_topic_t topic ;
199192} rmw_uxrce_publisher_t ;
200193
201194typedef struct rmw_uxrce_node_t
@@ -278,9 +271,6 @@ extern rmw_uxrce_service_t custom_services[RMW_UXRCE_MAX_SERVICES];
278271extern rmw_uxrce_mempool_t client_memory ;
279272extern rmw_uxrce_client_t custom_clients [RMW_UXRCE_MAX_CLIENTS ];
280273
281- extern rmw_uxrce_mempool_t topics_memory ;
282- extern rmw_uxrce_topic_t custom_topics [RMW_UXRCE_MAX_TOPICS_INTERNAL ];
283-
284274extern rmw_uxrce_mempool_t static_buffer_memory ;
285275extern rmw_uxrce_static_input_buffer_t custom_static_buffers [RMW_UXRCE_MAX_HISTORY ];
286276
0 commit comments