Utilities for google::protobuf::Timestamp, google::type::Date, and google::protobuf::Duration types.
Definition in file datetime_utils.hpp.
Go to the source code of this file.
#include <chrono>#include <stdexcept>#include <version>#include <google/protobuf/duration.pb.h>#include <google/protobuf/timestamp.pb.h>#include <google/type/date.pb.h>#include <userver/formats/json_fwd.hpp>#include <userver/formats/parse/to.hpp>#include <userver/formats/serialize/to.hpp>#include <userver/utils/assert.hpp>#include <userver/utils/datetime/cpp_20_calendar.hpp>#include <userver/utils/datetime/date.hpp>Classes | |
| class | ugrpc::TimestampConversionError |
Exception thrown when timestamp conversion functions receive/produce invalid google::protobuf::Timestamp accrording to IsValid or otherwise lead to undefined behavior due to integer overflow. More... | |
| class | ugrpc::DateConversionError |
Exception thrown when date conversion functions receive/produce invalid google::type::Date accrording to IsValid or otherwise lead to undefined behavior due to integer overflow. More... | |
| class | ugrpc::DurationConversionError |
Exception thrown when duration conversion functions receive/produce invalid google::protobuf::Duration accrording to IsValid or otherwise lead to undefined behavior due to integer overflow. More... | |
Namespaces | |
| namespace | ugrpc |
| Asynchronous gRPC driver. | |
| namespace | formats |
| Value formats representation, parsing and serialization. | |
| namespace | formats::parse |
| Generic parsers and converters. | |
| namespace | formats::serialize |
| Common serializers. | |
Functions | |
| bool | ugrpc::IsValid (const google::protobuf::Timestamp &grpc_ts) |
Checks if google::protobuf::Timestamp contains a valid value according to protobuf documentation. | |
| template<class Duration> | |
| google::protobuf::Timestamp | ugrpc::ToProtoTimestamp (const std::chrono::time_point< std::chrono::system_clock, Duration > &system_tp) |
Creates google::protobuf::Timestamp from std::chrono::time_point. | |
| template<class Duration = std::chrono::system_clock::duration> | |
| std::chrono::time_point< std::chrono::system_clock, Duration > | ugrpc::ToTimePoint (const google::protobuf::Timestamp &grpc_ts) |
Creates std::chrono::system_clock::time_point from google::protobuf::Timestamp. | |
| google::protobuf::Timestamp | ugrpc::NowTimestamp () |
Returns current (possibly, mocked) timestamp as a google::protobuf::Timestamp. | |
| bool | ugrpc::IsValid (const google::type::Date &grpc_date) |
Checks if google::type::Date contains a valid value according to protobuf documentation. | |
| google::type::Date | ugrpc::ToProtoDate (const utils::datetime::Date &utils_date) |
Creates google::type::Date from utils::datetime::Date. | |
| utils::datetime::Date | ugrpc::ToUtilsDate (const google::type::Date &grpc_date) |
Creates utils::datetime::Date from google::type::Date. | |
| template<class Duration> | |
| google::type::Date | ugrpc::ToProtoDate (const std::chrono::time_point< std::chrono::system_clock, Duration > &system_tp) |
Creates google::type::Date from std::chrono::time_point. | |
| std::chrono::time_point< std::chrono::system_clock, utils::datetime::Days > | ugrpc::ToTimePoint (const google::type::Date &grpc_date) |
Creates std::chrono::system_clock::time_point from google::type::Date. | |
| google::type::Date | ugrpc::NowDate () |
Returns current (possibly, mocked) timestamp as a google::type::Date. | |
| bool | ugrpc::IsValid (const google::protobuf::Duration &grpc_duration) |
Checks if google::protobuf::Duration contains a valid value according to protobuf documentation. | |
| template<class Duration = std::chrono::microseconds> | |
| Duration | ugrpc::ToDuration (const google::protobuf::Duration &grpc_duration) |
Creates std::chrono::duration from google::protobuf::Duration. | |
| template<class Rep, class Period> | |
| google::protobuf::Duration | ugrpc::ToProtoDuration (const std::chrono::duration< Rep, Period > &duration) |
Creates google::protobuf::Duration from std::chrono::duration. | |
| google::protobuf::Timestamp | formats::parse::Parse (const formats::json::Value &json, formats::parse::To< google::protobuf::Timestamp >) |
| google::type::Date | formats::parse::Parse (const formats::json::Value &json, formats::parse::To< google::type::Date >) |
| formats::json::Value | formats::serialize::Serialize (const google::protobuf::Timestamp &value, formats::serialize::To< formats::json::Value >) |
| formats::json::Value | formats::serialize::Serialize (const google::type::Date &value, formats::serialize::To< formats::json::Value >) |