Skip to content

Commit 6479191

Browse files
committed
timestamp conversion too
1 parent 317f4f7 commit 6479191

File tree

5 files changed

+26
-34
lines changed

5 files changed

+26
-34
lines changed

src/viam/sdk/common/private/proto_conversions.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#include "viam/sdk/common/utils.hpp"
21
#include <viam/sdk/common/private/proto_conversions.hpp>
32

43
#include <boost/algorithm/string.hpp>
@@ -629,6 +628,24 @@ Name from_proto(const viam::common::v1::ResourceName& proto) {
629628
{proto.namespace_(), proto.type(), proto.subtype()}, name_parts.first, name_parts.second);
630629
}
631630

631+
using time_point = std::chrono::time_point<long long, std::chrono::nanoseconds>;
632+
633+
time_point timestamp_to_time_pt(const google::protobuf::Timestamp& timestamp) {
634+
const std::chrono::seconds seconds(timestamp.seconds());
635+
const std::chrono::nanoseconds nanos(timestamp.nanos());
636+
return time_point(std::chrono::duration_cast<std::chrono::system_clock::duration>(seconds) +
637+
nanos);
638+
}
639+
640+
google::protobuf::Timestamp time_pt_to_timestamp(const time_point& time_pt) {
641+
const std::chrono::seconds duration_s =
642+
std::chrono::duration_cast<std::chrono::seconds>(time_pt.time_since_epoch());
643+
const std::chrono::nanoseconds duration_ns = time_pt.time_since_epoch() - duration_s;
644+
google::protobuf::Timestamp timestamp;
645+
timestamp.set_seconds(duration_s.count());
646+
timestamp.set_nanos(static_cast<int32_t>(duration_ns.count()));
647+
return timestamp;
648+
}
632649
} // namespace impl
633650
} // namespace sdk
634651
} // namespace viam

src/viam/sdk/common/private/proto_conversions.hpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,12 @@ viam::app::v1::Translation to_proto(const translation& ts);
7474
viam::common::v1::ResourceName to_proto(const Name& name);
7575
Name from_proto(const viam::common::v1::ResourceName& proto);
7676

77+
std::chrono::time_point<long long, std::chrono::nanoseconds> timestamp_to_time_pt(
78+
const google::protobuf::Timestamp& timestamp);
79+
80+
google::protobuf::Timestamp time_pt_to_timestamp(
81+
const std::chrono::time_point<long long, std::chrono::nanoseconds>& time_pt);
82+
7783
} // namespace impl
7884
} // namespace sdk
7985
} // namespace viam

src/viam/sdk/common/utils.cpp

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
namespace viam {
2121
namespace sdk {
2222

23-
using time_point = std::chrono::time_point<long long, std::chrono::nanoseconds>;
24-
2523
std::vector<unsigned char> string_to_bytes(const std::string& s) {
2624
std::vector<unsigned char> bytes(s.begin(), s.end());
2725
return bytes;
@@ -32,23 +30,6 @@ std::string bytes_to_string(const std::vector<unsigned char>& b) {
3230
return img_string;
3331
};
3432

35-
time_point timestamp_to_time_pt(const google::protobuf::Timestamp& timestamp) {
36-
const std::chrono::seconds seconds(timestamp.seconds());
37-
const std::chrono::nanoseconds nanos(timestamp.nanos());
38-
return time_point(std::chrono::duration_cast<std::chrono::system_clock::duration>(seconds) +
39-
nanos);
40-
}
41-
42-
google::protobuf::Timestamp time_pt_to_timestamp(const time_point& time_pt) {
43-
const std::chrono::seconds duration_s =
44-
std::chrono::duration_cast<std::chrono::seconds>(time_pt.time_since_epoch());
45-
const std::chrono::nanoseconds duration_ns = time_pt.time_since_epoch() - duration_s;
46-
google::protobuf::Timestamp timestamp;
47-
timestamp.set_seconds(duration_s.count());
48-
timestamp.set_nanos(static_cast<int32_t>(duration_ns.count()));
49-
return timestamp;
50-
}
51-
5233
void set_logger_severity_from_args(int argc, char** argv) {
5334
if (argc >= 3 && strcmp(argv[2], "--log-level=debug") == 0) {
5435
boost::log::core::get()->set_filter(boost::log::trivial::severity >=

src/viam/sdk/common/utils.hpp

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
#include <boost/optional/optional.hpp>
44
#include <grpcpp/client_context.h>
55

6-
#include <google/protobuf/timestamp.pb.h>
7-
86
#include <viam/sdk/common/proto_value.hpp>
97
#include <viam/sdk/components/component.hpp>
108
#include <viam/sdk/resource/resource_api.hpp>
@@ -24,16 +22,6 @@ struct response_metadata {
2422

2523
bool operator==(const response_metadata& lhs, const response_metadata& rhs);
2624

27-
/// @brief convert a google::protobuf::Timestamp to
28-
/// std::chrono::time_point<long long, std::chrono::nanoseconds>
29-
std::chrono::time_point<long long, std::chrono::nanoseconds> timestamp_to_time_pt(
30-
const google::protobuf::Timestamp& timestamp);
31-
32-
/// @brief convert a std::chrono::time_point<long long, std::chrono::nanoseconds> to
33-
/// a google::protobuf::Timestamp.
34-
google::protobuf::Timestamp time_pt_to_timestamp(
35-
const std::chrono::time_point<long long, std::chrono::nanoseconds>& time_pt);
36-
3725
std::vector<unsigned char> string_to_bytes(std::string const& s);
3826
std::string bytes_to_string(std::vector<unsigned char> const& b);
3927

src/viam/sdk/robot/client.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ RobotClient::status from_proto(const Status& proto) {
8989
status.status_map = struct_to_map(proto.status());
9090
}
9191
if (proto.has_last_reconfigured()) {
92-
status.last_reconfigured = timestamp_to_time_pt(proto.last_reconfigured());
92+
status.last_reconfigured = impl::timestamp_to_time_pt(proto.last_reconfigured());
9393
}
9494
return status;
9595
}
@@ -105,7 +105,7 @@ RobotClient::operation from_proto(const Operation& proto) {
105105
op.arguments = struct_to_map(proto.arguments());
106106
}
107107
if (proto.has_started()) {
108-
op.started = timestamp_to_time_pt(proto.started());
108+
op.started = impl::timestamp_to_time_pt(proto.started());
109109
}
110110
return op;
111111
}

0 commit comments

Comments
 (0)