Commit graph

181 commits

Author SHA1 Message Date
Jacob Perron
c843299592 0.7.6 2020-12-08 11:49:19 -08:00
Ivan Santiago Paunovic
c8b34e3ddb
Delete problematic assert in rmw_init() (#265)
Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
2020-11-03 12:46:30 -03:00
Michel Hidalgo
26b69c70fe Fix context cleanup. (#227)
Drop invalid pointers.

Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-30 23:51:57 +01:00
ahcorde
0313888422
0.7.5 2020-10-15 15:46:42 +02:00
ahcorde
aedf98e260
changelog
Signed-off-by: ahcorde <ahcorde@gmail.com>
2020-10-15 15:46:24 +02:00
ahcorde
04039b5508 Fixed cppcheck issue
Signed-off-by: ahcorde <ahcorde@gmail.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
b8620312dc Update service/client construction/destruction API return codes. (#247)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Alejandro Hernández Cordero
6a8004e033 Return RMW_RET_UNSUPPORTED in rmw_get_serialized_message_size (#250)
Signed-off-by: ahcorde <ahcorde@gmail.com>
2020-10-15 15:45:20 +02:00
Jose Tomas Lorente
fb175f74db Update service/client request/response API error returns (#249)
Signed-off-by: lobotuerk <jtlorente@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Alejandro Hernández Cordero
a197914d31 Updated rmw_* return codes (#246)
* Updated rmw_*_*_allocation return codes

Signed-off-by: ahcorde <ahcorde@gmail.com>

* Fixed return codes in rmw_*

Signed-off-by: ahcorde <ahcorde@gmail.com>

* Improved return error in rmw_wait

Signed-off-by: ahcorde <ahcorde@gmail.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
6bc75b4a49 Update gid API return codes. (#244)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
914037bd29 Update graph API return codes. (#243)
This patch affects:
- rmw_get_node_names()
- rmw_get_node_names_with_enclaves()
- rmw_get_topic_names_and_types()
- rmw_get_service_names_and_types()
- rmw_get_publishers_info_by_topic()
- rmw_get_subscriptions_info_by_topic()
- rmw_get_subscriber_names_and_types_by_node()
- rmw_get_publisher_names_and_types_by_node()
- rmw_get_service_names_and_types_by_node()
- rmw_get_client_names_and_types_by_node()
- rmw_count_publishers()
- rmw_count_subscribers()

Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
c65c015682 Check for message_info on take where appropriate. (#245)
Fix for regression introduced in #241.

Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Jose Tomas Lorente
4682af41c5 Updated error returns on rmw_take_serialized and with_message_info (#242)
Signed-off-by: lobotuerk <jtlorente@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Jose Tomas Lorente
966035ade4 Updated error returns on rmw_take (#241)
Signed-off-by: lobotuerk <jtlorente@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Lobotuerk
c610402b46 Update rmw_publish_serialized_message() error returns (#240)
Signed-off-by: lobotuerk <jtlorente@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Lobotuerk
3160c181f7 Update rmw_publish() error returns (#239)
Signed-off-by: lobotuerk <jtlorente@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
16e27f6504 Ensure compliant matched pub/sub count API. (#223)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
ba077ce061 Change RET_WRONG_IMPLID() to return RMW_RET_INCORRECT_IMPLEMENTATION (#226)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
aa4ee36aff Fix bad conditional in rmw_serialize(). (#217)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
bc2bc9ef1b Ensure compliant subscription API. (#214)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
398812c12d Ensure compliant publisher API (#210)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
3d03bf6c53 Ensure compliant node construction/destruction API. (#206)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
5930ea020c Amend rmw_init() implementation: require enclave. (#204)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
7eff1eab55 Ensure compliant init/shutdown API implementations. (#202)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
f7fcf88bb4 Ensure compliant init options API implementations. (#200)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Michel Hidalgo
cab4b81278 Finalize context iff shutdown. (#196)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-10-15 15:45:20 +02:00
Jacob Perron
5559dfa221 0.7.4 2020-10-07 10:28:11 -07:00
Jacob Perron
6f9a61474f
rmw_destroy_node must remove node from graph cache (#252)
Signed-off-by: Erik Boasson <eb@ilities.com>

Co-authored-by: Erik Boasson <eb@ilities.com>
2020-10-06 09:49:16 -07:00
Jacob Perron
e0bfe46474 0.7.3 2020-07-21 16:47:18 -07:00
Jacob Perron
5333ab6be7
Lost service responses (#183, #74) (#187) (#209)
* Block rmw_send_response if response reader unknown

The client checks using rmw_service_server_is_available whether the
request it sends will be delivered to service, but that does not imply
that the (independent, as far as DDS is concerned) response reader of
the client has been discovered by the service.  Usually that will be the
case, but there is no guarantee.

Ideally DDS would offer an interface that allows checking the reverse
discovery, but that does not yet exist in either the specification or in
Cyclone.  This commit works around that by delaying publishing the
response until the number of request writers matches the number of
response readers.

Signed-off-by: Erik Boasson <eb@ilities.com>

* Change request headers to use rmw_request_id_t on the wire

Signed-off-by: Erik Boasson <eb@ilities.com>

* Precise check for matched client/service

Assign a unique identifier to each client/service on creation, add it
to the USER_DATA QoS of the reader and writer and use it for the request
ids.  This allows:

* rmw_service_server_is_available to only return true once it has
  discovered a reader/writer pair of a single service (rather than a
  reader from some service and a writer from some service); and
* rmw_send_response to block until it has discovered the requesting
  client's response reader and to abandon the operation when the client
  has disappeared.

The USER_DATA is formatted in the same manner as the participant
USER_DATA, this uses the keys "serviceid" and "clientid".

This is still but a workaround for having a mechanism in DDS to ensure
that the response reader has been discovered prior by the request writer
prior to sending the request.

Signed-off-by: Erik Boasson <eb@ilities.com>

* Address review comments

Signed-off-by: Erik Boasson <eb@ilities.com>

* Backwards compatibility

* Revert commit fb040c5db6c05be7698f05969f9bb48b8740f0fe to retain the
  old wire representation;

* Embed the publication_handle of the request inside rmw_request_id_t,
  possible because reverting to the old wire representation frees up
  enough space, and use this in rmw_send_response to check for the
  presence of the client's reader;

* Clients and services without a client/service id in the reader/writer
  user data are treated as fully matched at all times.

* Replace ERROR by FAILURE to because of windows.h

Signed-off-by: Erik Boasson <eb@ilities.com>

* Timeout rmw_send_response after waiting 100ms for discovery

The discovery will eventually result in the client's reader being known
or its writer no longer being known, so a timeout is not necessary for
correctness.  However, if it ever were to block for a longish
time (which is possible in the face of network failures), returning a
timeout to the caller is expected to result in less confusion.

Signed-off-by: Erik Boasson <eb@ilities.com>

* Make iterators "const auto &"

Signed-off-by: Erik Boasson <eb@ilities.com>

* Add TODO for eliminating rmw_send_response blocking

Signed-off-by: Erik Boasson <eb@ilities.com>

Co-authored-by: eboasson <eb@ilities.com>
2020-07-21 16:19:35 -07:00
Jacob Perron
368cac9420 0.7.2 2020-07-07 20:46:10 -07:00
Michel Hidalgo
6598191749
Handle RMW_DEFAULT_DOMAIN_ID. (#194) (#199)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-06-23 12:15:22 -03:00
Jacob Perron
64b0f6750c 0.7.1 2020-06-02 23:44:15 -07:00
eboasson
c424bc118f
Restore dashing/eloquent behaviour of "service_is_available" (#190)
* Delete superfluous/erroneous/misleading comment

Signed-off-by: Erik Boasson <eb@ilities.com>

* Check for matched endpoints in server_is_available

Signed-off-by: Erik Boasson <eb@ilities.com>
2020-06-01 16:27:25 -03:00
Ivan Santiago Paunovic
707470e96d 0.7.0 2020-05-12 21:47:42 +00:00
Ivan Santiago Paunovic
1c0606d1dd Changelog
Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
2020-05-12 21:46:46 +00:00
Ivan Santiago Paunovic
8fafb3ec0a
Remove MANUAL_BY_NODE liveliness API (#178)
Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
2020-05-12 14:51:41 -03:00
Jacob Perron
fee15a96af 0.6.0 2020-05-04 17:21:31 -07:00
Ivan Santiago Paunovic
40ba599462
Fix how topic name should be when not using ros topic name conventions (#177)
Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>

Co-authored-by: Shane Loretz <sloretz@osrfoundation.org>
2020-04-30 18:08:55 -07:00
Ivan Santiago Paunovic
f820994aab
Initialize participant on first use. Destroy participant after last node is destroyed. (#176)
* Initialize participant on first use. Destroy participant after last node is destroyed

Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>

* Please linters

Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>

* Solve problems with guard conditions

Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>

* Address peer review comments

Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>

* Address peer review comments

Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>

* Used DDS_CYCLONEDDS_HANDLE to create all guard conditions

Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>

* Increase ref count always

Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
2020-04-30 16:16:02 -07:00
Sid Faber
8e14104246
Fix error message (#175)
Only generate "Recompile with '-DENABLESECURITY=ON' error when
ROS_SECURITY_STRATEGY="Enforce"

Signed-off-by: Sid Faber <sid.faber@canonical.com>
2020-04-29 18:38:00 -03:00
Michel Hidalgo
3c306d32a6
Cast size_t to uint32_t explicitly. (#171)
Signed-off-by: Michel Hidalgo <michel@ekumenlabs.com>
2020-04-28 14:37:00 -03:00
Michael Carroll
03a49c5153
Rename rosidl_message_bounds_t (#166)
* Rename rosidl_message_bounds_t

Signed-off-by: Michael Carroll <michael@openrobotics.org>
2020-04-24 15:56:16 -05:00
Michael Carroll
224d761eca
Add support for taking a sequence of messages (#148)
* Add support for taking a sequence of messages

Signed-off-by: Michael Carroll <michael@openrobotics.org>

* Reorder valid messages to front of sequence

Signed-off-by: Michael Carroll <michael@openrobotics.org>

* Initialize taken value

Signed-off-by: Michael Carroll <michael@openrobotics.org>
2020-04-24 11:49:15 -05:00
Ingo Lütkebohle
2638f4abe8
implement with_info version of take (#161)
* implement with_info version of take

Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>

* Fix function names and signatures.

Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>

* Return 0 on received for responses as well

Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
2020-04-23 21:31:48 -07:00
Ingo Lütkebohle
27bc8194e7
Fill in message_info timestamps (#163)
* Fill in message_info timestamps

Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>

* Report error when timestamp cannot be obtained.

Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>

* return 0 for received timestamp to signify lack of support

Signed-off-by: Luetkebohle Ingo (CR/AEX3) <ingo.luetkebohle@de.bosch.com>
2020-04-23 14:29:39 -07:00
Ivan Santiago Paunovic
0fc4a3f289
Fix build warnings (#162)
Signed-off-by: Ivan Santiago Paunovic <ivanpauno@ekumenlabs.com>
2020-04-22 19:40:16 -03:00
eboasson
8a1d3fc092
Switch to one participant per context model (#145)
Signed-off-by: Erik Boasson <eb@ilities.com>
2020-04-22 14:01:05 -03:00
Dan Rose
5616437a4d
Fix serialization on non-32-bit, big-endian systems (#159) 2020-04-17 16:54:06 -05:00