Skip to content

Commit cee44c0

Browse files
authored
Fix id_gen (#62)
* Fix id_gen * Update id generation
1 parent da8d695 commit cee44c0

8 files changed

Lines changed: 26 additions & 9 deletions

File tree

rmw_microxrcedds_c/src/rmw_client.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ rmw_create_client(
107107
char profile_name[RMW_UXRCE_REF_BUFFER_LENGTH];
108108
#endif
109109

110-
custom_client->client_id = uxr_object_id(custom_node->id_gen++, UXR_REQUESTER_ID);
110+
custom_client->client_id = uxr_object_id(custom_node->context->id_requester++, UXR_REQUESTER_ID);
111111

112112
memset(custom_client->client_gid.data, 0, RMW_GID_STORAGE_SIZE);
113113
memcpy(custom_client->client_gid.data, &custom_client->client_id,

rmw_microxrcedds_c/src/rmw_init.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,15 @@ rmw_init(const rmw_init_options_t * options, rmw_context_t * context)
157157

158158
context_impl->connection_params.client_key = options->impl->connection_params.client_key;
159159

160+
context_impl->id_participant = 0;
161+
context_impl->id_topic = 0;
162+
context_impl->id_publisher = 0;
163+
context_impl->id_datawriter = 0;
164+
context_impl->id_subscriber = 0;
165+
context_impl->id_datareader = 0;
166+
context_impl->id_requester = 0;
167+
context_impl->id_replier = 0;
168+
160169
context->impl = context_impl;
161170

162171
rmw_uxrce_init_nodes_memory(&node_memory, custom_nodes, RMW_UXRCE_MAX_NODES);

rmw_microxrcedds_c/src/rmw_microxrcedds_topic.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ create_topic(
7171

7272

7373
// Generate topic id
74-
custom_topic_ptr->topic_id = uxr_object_id(custom_node->id_gen++, UXR_TOPIC_ID);
74+
custom_topic_ptr->topic_id = uxr_object_id(custom_node->context->id_topic++, UXR_TOPIC_ID);
7575

7676
#ifdef MICRO_XRCEDDS_USE_XML
7777
char xml_buffer[RMW_UXRCE_XML_BUFFER_LENGTH];

rmw_microxrcedds_c/src/rmw_node.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ rmw_node_t * create_node(const char * name, const char * namespace_, size_t doma
7272
}
7373
memcpy((char *)node_handle->namespace_, namespace_, strlen(namespace_) + 1);
7474

75-
node_info->participant_id = uxr_object_id(node_info->id_gen++, UXR_PARTICIPANT_ID);
75+
node_info->participant_id = uxr_object_id(node_info->context->id_participant++, UXR_PARTICIPANT_ID);
7676
uint16_t participant_req;
7777
#ifdef MICRO_XRCEDDS_USE_XML
7878
char participant_xml[RMW_UXRCE_XML_BUFFER_LENGTH];

rmw_microxrcedds_c/src/rmw_publisher.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ rmw_create_publisher(
139139
char profile_name[RMW_UXRCE_REF_BUFFER_LENGTH];
140140
#endif
141141

142-
custom_publisher->publisher_id = uxr_object_id(custom_node->id_gen++, UXR_PUBLISHER_ID);
142+
custom_publisher->publisher_id = uxr_object_id(custom_node->context->id_publisher++, UXR_PUBLISHER_ID);
143143
uint16_t publisher_req;
144144
#ifdef MICRO_XRCEDDS_USE_XML
145145
char publisher_name[20];
@@ -161,7 +161,7 @@ rmw_create_publisher(
161161
custom_node->participant_id, "", UXR_REPLACE);
162162
#endif
163163

164-
custom_publisher->datawriter_id = uxr_object_id(custom_node->id_gen++, UXR_DATAWRITER_ID);
164+
custom_publisher->datawriter_id = uxr_object_id(custom_node->context->id_datawriter++, UXR_DATAWRITER_ID);
165165
uint16_t datawriter_req;
166166
#ifdef MICRO_XRCEDDS_USE_XML
167167
if (!build_datawriter_xml(topic_name, custom_publisher->type_support_callbacks,

rmw_microxrcedds_c/src/rmw_service.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ rmw_create_service(
107107
char profile_name[RMW_UXRCE_REF_BUFFER_LENGTH];
108108
#endif
109109

110-
custom_service->service_id = uxr_object_id(custom_node->id_gen++, UXR_REPLIER_ID);
110+
custom_service->service_id = uxr_object_id(custom_node->context->id_replier++, UXR_REPLIER_ID);
111111

112112
memset(custom_service->service_gid.data, 0, RMW_GID_STORAGE_SIZE);
113113
memcpy(custom_service->service_gid.data, &custom_service->service_id,

rmw_microxrcedds_c/src/rmw_subscription.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ rmw_create_subscription(
143143
char profile_name[RMW_UXRCE_REF_BUFFER_LENGTH];
144144
#endif
145145

146-
custom_subscription->subscriber_id = uxr_object_id(custom_node->id_gen++, UXR_SUBSCRIBER_ID);
146+
custom_subscription->subscriber_id = uxr_object_id(custom_node->context->id_subscriber++, UXR_SUBSCRIBER_ID);
147147
uint16_t subscriber_req;
148148
#ifdef MICRO_XRCEDDS_USE_XML
149149
char subscriber_name[20];
@@ -164,7 +164,7 @@ rmw_create_subscription(
164164
#endif
165165

166166

167-
custom_subscription->datareader_id = uxr_object_id(custom_node->id_gen++, UXR_DATAREADER_ID);
167+
custom_subscription->datareader_id = uxr_object_id(custom_node->context->id_datareader++, UXR_DATAREADER_ID);
168168
uint16_t datareader_req;
169169
#ifdef MICRO_XRCEDDS_USE_XML
170170
if (!build_datareader_xml(topic_name, custom_subscription->type_support_callbacks,

rmw_microxrcedds_c/src/types.h

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,15 @@ struct rmw_context_impl_t
7373
uint8_t input_reliable_stream_buffer[RMW_UXRCE_MAX_BUFFER_SIZE];
7474
uint8_t output_reliable_stream_buffer[RMW_UXRCE_MAX_BUFFER_SIZE];
7575
uint8_t output_best_effort_stream_buffer[RMW_UXRCE_MAX_TRANSPORT_MTU];
76+
77+
uint16_t id_participant;
78+
uint16_t id_topic;
79+
uint16_t id_publisher;
80+
uint16_t id_datawriter;
81+
uint16_t id_subscriber;
82+
uint16_t id_datareader;
83+
uint16_t id_requester;
84+
uint16_t id_replier;
7685
};
7786

7887
struct rmw_init_options_impl_t
@@ -193,7 +202,6 @@ typedef struct rmw_uxrce_node_t
193202

194203
uxrObjectId participant_id;
195204
rmw_uxrce_topic_t * custom_topic_sp;
196-
uint16_t id_gen;
197205
} rmw_uxrce_node_t;
198206

199207
// Static memory pools

0 commit comments

Comments
 (0)