Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/rolling' into ahcorde/rolling/wi…
Browse files Browse the repository at this point in the history
…ndows_support
  • Loading branch information
ahcorde committed Nov 5, 2024
2 parents 7bb8d5a + fbdd17a commit 1679020
Show file tree
Hide file tree
Showing 8 changed files with 32 additions and 16 deletions.
4 changes: 2 additions & 2 deletions rmw_zenoh_cpp/src/detail/graph_cache.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1316,8 +1316,8 @@ void GraphCache::set_querying_subscriber_callback(
std::unordered_map<std::size_t, QueryingSubscriberCallback>
>::iterator cb_it = querying_subs_cbs_.find(sub_keyexpr);
if (cb_it == querying_subs_cbs_.end()) {
querying_subs_cbs_[sub_keyexpr] = std::move(
std::unordered_map<std::size_t, QueryingSubscriberCallback>{});
querying_subs_cbs_[sub_keyexpr] =
std::unordered_map<std::size_t, QueryingSubscriberCallback>{};
cb_it = querying_subs_cbs_.find(sub_keyexpr);
}
cb_it->second.insert(std::make_pair(sub_keyxpr_hash, std::move(cb)));
Expand Down
11 changes: 5 additions & 6 deletions rmw_zenoh_cpp/src/detail/rmw_data_types.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.

#include <condition_variable>
#include <cstring>
#include <chrono>
#include <memory>
#include <mutex>
#include <utility>

#include "liveliness_utils.hpp"
#include "logging_macros.hpp"

#include "rcpputils/scope_exit.hpp"

#include "rmw/error_handling.h"
#include "rmw/impl/cpp/macros.hpp"

Expand Down Expand Up @@ -188,7 +184,10 @@ void client_data_handler(z_owned_reply_t * reply, void * data)
return;
}

client_data->add_new_reply(std::make_unique<ZenohReply>(reply));
std::chrono::nanoseconds::rep received_timestamp =
std::chrono::system_clock::now().time_since_epoch().count();

client_data->add_new_reply(std::make_unique<ZenohReply>(reply, received_timestamp));
// Since we took ownership of the reply, null it out here
*reply = z_reply_null();
}
Expand Down
1 change: 1 addition & 0 deletions rmw_zenoh_cpp/src/detail/rmw_data_types.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
#include "rosidl_runtime_c/type_hash.h"

#include "event.hpp"
#include "liveliness_utils.hpp"
#include "message_type_support.hpp"
#include "rmw_wait_set_data.hpp"
#include "service_type_support.hpp"
Expand Down
2 changes: 1 addition & 1 deletion rmw_zenoh_cpp/src/detail/rmw_service_data.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ std::shared_ptr<ServiceData> ServiceData::make(
RMW_ZENOH_LOG_ERROR_NAMED(
"rmw_zenoh_cpp",
"Unable to generate keyexpr for liveliness token for the service %s.",
service_name);
service_name.c_str());
return nullptr;
}

Expand Down
11 changes: 10 additions & 1 deletion rmw_zenoh_cpp/src/detail/zenoh_utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,12 @@ const z_query_t ZenohQuery::get_query() const
}

///=============================================================================
ZenohReply::ZenohReply(const z_owned_reply_t * reply)
ZenohReply::ZenohReply(
const z_owned_reply_t * reply,
std::chrono::nanoseconds::rep received_timestamp)
{
reply_ = *reply;
received_timestamp_ = received_timestamp;
}

///=============================================================================
Expand All @@ -102,4 +105,10 @@ std::optional<z_sample_t> ZenohReply::get_sample() const

return std::nullopt;
}

///=============================================================================
std::chrono::nanoseconds::rep ZenohReply::get_received_timestamp() const
{
return received_timestamp_;
}
} // namespace rmw_zenoh_cpp
6 changes: 5 additions & 1 deletion rmw_zenoh_cpp/src/detail/zenoh_utils.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

#include <zenoh.h>

#include <chrono>
#include <functional>
#include <optional>

Expand All @@ -37,14 +38,17 @@ create_map_and_set_sequence_num(int64_t sequence_number, GIDCopier gid_copier);
class ZenohReply final
{
public:
ZenohReply(const z_owned_reply_t * reply);
ZenohReply(const z_owned_reply_t * reply, std::chrono::nanoseconds::rep received_timestamp);

~ZenohReply();

std::optional<z_sample_t> get_sample() const;

std::chrono::nanoseconds::rep get_received_timestamp() const;

private:
z_owned_reply_t reply_;
std::chrono::nanoseconds::rep received_timestamp_;
};

// A class to store the queries made by clients.
Expand Down
2 changes: 1 addition & 1 deletion rmw_zenoh_cpp/src/rmw_init_options.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ rmw_init_options_copy(const rmw_init_options_t * src, rmw_init_options_t * dst)
return ret;
}
auto free_discovery_options = rcpputils::make_scope_exit(
[&tmp, allocator]() {
[&tmp]() {
rmw_ret_t tmp_ret = rmw_discovery_options_fini(&tmp.discovery_options);
static_cast<void>(tmp_ret);
});
Expand Down
11 changes: 7 additions & 4 deletions rmw_zenoh_cpp/src/rmw_zenoh.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1438,7 +1438,12 @@ rmw_create_client(
allocator->deallocate(client_data, allocator->state);
});

RMW_TRY_PLACEMENT_NEW(client_data, client_data, return nullptr, rmw_zenoh_cpp::rmw_client_data_t);
RMW_TRY_PLACEMENT_NEW(
client_data,
client_data,
return nullptr,
rmw_zenoh_cpp::rmw_client_data_t,
);
auto destruct_client_data = rcpputils::make_scope_exit(
[client_data]() {
RMW_TRY_DESTRUCTOR_FROM_WITHIN_FAILURE(
Expand Down Expand Up @@ -1900,9 +1905,7 @@ rmw_take_response(
return RMW_RET_ERROR;
}

auto now = std::chrono::system_clock::now().time_since_epoch();
auto now_ns = std::chrono::duration_cast<std::chrono::nanoseconds>(now);
request_header->received_timestamp = now_ns.count();
request_header->received_timestamp = latest_reply->get_received_timestamp();

*taken = true;

Expand Down

0 comments on commit 1679020

Please sign in to comment.