34 #include <ros/duration.h>
40 : DurationBase<
Duration>(rate.expectedCycleTime().
sec, rate.expectedCycleTime().
nsec)
44 : DurationBase<WallDuration>(rate.expectedCycleTime().
sec, rate.expectedCycleTime().
nsec)
49 int64_t nsec_part =
nsec % 1000000000L;
50 int64_t sec_part =
sec +
nsec / 1000000000L;
53 nsec_part += 1000000000L;
57 if (sec_part < INT_MIN || sec_part > INT_MAX)
58 throw std::runtime_error(
"Duration is out of dual 32-bit range");
67 int64_t nsec64 =
nsec;
72 nsec = (int32_t)nsec64;