Google OR-Tools: ortools/base/protoutil.h Source File

Go to the documentation of this file.

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef ORTOOLS_BASE_PROTOUTIL_H_

15#define ORTOOLS_BASE_PROTOUTIL_H_

16

17#include <cstdint>

18

19#include "absl/status/status.h"

20#include "absl/status/statusor.h"

21#include "absl/time/clock.h"

22#include "absl/time/time.h"

23#include "google/protobuf/duration.pb.h"

24

26

28 absl::Duration d) {

29 google::protobuf::Duration proto;

30 const int64_t d_in_nano = ToInt64Nanoseconds(d);

31 proto.set_seconds(static_cast<int64_t>(d_in_nano / 1000000000));

32 proto.set_nanos(static_cast<int>(d_in_nano % 1000000000));

33 return proto;

34}

35

37 google::protobuf::Duration* proto) {

39 return absl::OkStatus();

40}

41

43 const google::protobuf::Duration& proto) {

44 return absl::Seconds(proto.seconds() + 1e-9 * proto.nanos());

45}

46

47}

48

49#endif

Definition protoutil.h:25

inline ::absl::StatusOr< absl::Duration > DecodeGoogleApiProto(const google::protobuf::Duration &proto)

Definition protoutil.h:42

inline ::absl::StatusOr< google::protobuf::Duration > EncodeGoogleApiProto(absl::Duration d)

Definition protoutil.h:27