Program Listing for File duration.h
↰ Return to documentation for file (include/franka/duration.h
)
// Copyright (c) 2023 Franka Robotics GmbH
// Use of this source code is governed by the Apache-2.0 license, see LICENSE
#pragma once
#include <chrono>
#include <cstdint>
#include <ratio>
namespace franka {
class Duration {
public:
Duration() noexcept;
explicit Duration(uint64_t milliseconds) noexcept;
Duration(std::chrono::duration<uint64_t, std::milli> duration) noexcept;
Duration(const Duration&) = default;
Duration& operator=(const Duration&) = default;
operator std::chrono::duration<uint64_t, std::milli>() const noexcept;
double toSec() const noexcept;
uint64_t toMSec() const noexcept;
Duration operator+(const Duration& rhs) const noexcept;
Duration& operator+=(const Duration& rhs) noexcept;
Duration operator-(const Duration& rhs) const noexcept;
Duration& operator-=(const Duration& rhs) noexcept;
Duration operator*(uint64_t rhs) const noexcept;
Duration& operator*=(uint64_t rhs) noexcept;
uint64_t operator/(const Duration& rhs) const noexcept;
Duration operator/(uint64_t rhs) const noexcept;
Duration& operator/=(uint64_t rhs) noexcept;
Duration operator%(const Duration& rhs) const noexcept;
Duration operator%(uint64_t rhs) const noexcept;
Duration& operator%=(const Duration& rhs) noexcept;
Duration& operator%=(uint64_t rhs) noexcept;
bool operator==(const Duration& rhs) const noexcept;
bool operator!=(const Duration& rhs) const noexcept;
bool operator<(const Duration& rhs) const noexcept;
bool operator<=(const Duration& rhs) const noexcept;
bool operator>(const Duration& rhs) const noexcept;
bool operator>=(const Duration& rhs) const noexcept;
private:
std::chrono::duration<uint64_t, std::milli> duration_;
};
Duration operator*(uint64_t lhs, const Duration& rhs) noexcept;
} // namespace franka