[DEV] correct No STL
This commit is contained in:
parent
e245d1e92b
commit
53e8ce8afb
@ -21,7 +21,7 @@ echrono::Clock::Clock(int64_t _valNano) :
|
||||
|
||||
}
|
||||
|
||||
echrono::Clock::Clock(int64_t _valSec, int64_t _valNano) :
|
||||
echrono::Clock::Clock(int64_t _valSec, int32_t _valNano) :
|
||||
m_data(_valSec*1000000000LL +_valNano) {
|
||||
|
||||
}
|
||||
@ -94,7 +94,7 @@ void echrono::Clock::reset() {
|
||||
}
|
||||
|
||||
etk::Stream& echrono::operator <<(etk::Stream& _os, const echrono::Clock& _obj) {
|
||||
int64_t ns = _obj.get()
|
||||
int64_t ns = _obj.get();
|
||||
int64_t totalSecond = ns/1000000000;
|
||||
int64_t millisecond = (ns%1000000000)/1000000;
|
||||
int64_t microsecond = (ns%1000000)/1000;
|
||||
@ -141,7 +141,6 @@ etk::Stream& echrono::operator <<(etk::Stream& _os, const echrono::Clock& _obj)
|
||||
|
||||
namespace etk {
|
||||
template<> etk::String toString<echrono::Clock>(const echrono::Clock& _obj) {
|
||||
ns = std::chrono::duration_cast<std::chrono::nanoseconds>(_obj.get().time_since_epoch());
|
||||
return etk::toString(_obj.get());
|
||||
}
|
||||
template<> etk::UString toUString<echrono::Clock>(const echrono::Clock& _obj) {
|
||||
|
@ -21,11 +21,11 @@ namespace echrono {
|
||||
Clock();
|
||||
//Clock(const echrono::Duration& _val) {}; //value in second
|
||||
Clock(int64_t _valNano);
|
||||
Clock(int64_t _valSec, uint32_t _valNano);
|
||||
Clock(int64_t _valSec, int32_t _valNano);
|
||||
Clock(const echrono::Clock& _val);
|
||||
Clock(const echrono::Steady& _val);
|
||||
~Clock() {};
|
||||
const int64_t& get() const {
|
||||
int64_t get() const {
|
||||
return m_data;
|
||||
}
|
||||
/**
|
||||
|
@ -16,18 +16,18 @@ echrono::Duration::Duration() :
|
||||
}
|
||||
|
||||
echrono::Duration::Duration(int _val) :
|
||||
m_data(_val) { {
|
||||
m_data(_val) {
|
||||
|
||||
}
|
||||
|
||||
echrono::Duration::Duration(int64_t _valSec, int64_t _valNano) :
|
||||
echrono::Duration::Duration(int64_t _valSec, int32_t _valNano) :
|
||||
m_data(_valSec*1000000000LL +_valNano) {
|
||||
|
||||
}
|
||||
|
||||
echrono::Duration::Duration(int64_t _val) :
|
||||
m_data(0) { {
|
||||
m_data = std::chrono::nanoseconds(_val);
|
||||
m_data(_val) {
|
||||
|
||||
}
|
||||
|
||||
echrono::Duration::Duration(double _val) {
|
||||
@ -75,7 +75,7 @@ const echrono::Duration& echrono::Duration::operator*= (float _value) {
|
||||
return *this;
|
||||
}
|
||||
echrono::Duration echrono::Duration::operator* (float _value) const {
|
||||
return echrono::Duration(int64_t(double(m_data.count()) * _value));
|
||||
return echrono::Duration(int64_t(double(m_data) * _value));
|
||||
}
|
||||
|
||||
const echrono::Duration& echrono::Duration::operator+= (const echrono::Duration& _obj) {
|
||||
@ -108,7 +108,7 @@ echrono::Duration echrono::Duration::operator++(int _unused) {
|
||||
return tmp;
|
||||
}
|
||||
echrono::Duration& echrono::Duration::operator--() {
|
||||
m_data -= echrono::nanoseconds(1);
|
||||
m_data -= 1;
|
||||
return *this;
|
||||
}
|
||||
echrono::Duration echrono::Duration::operator--(int _unused) {
|
||||
|
@ -9,20 +9,20 @@
|
||||
#include <chrono>
|
||||
|
||||
namespace echrono {
|
||||
template<ECHRONO_FACTOR>
|
||||
template<int64_t ECHRONO_FACTOR>
|
||||
class genericOffsetTime {
|
||||
private:
|
||||
int64_t m_duration;
|
||||
public:
|
||||
genericOffsetTime(int32_t _offsetSinceEpock=0) :
|
||||
m_duration(_nanoSecondSinceEpock*int64_t(ECHRONO_FACTOR)) {
|
||||
genericOffsetTime(int64_t _offsetSinceEpock=0) :
|
||||
m_duration(_offsetSinceEpock*int64_t(ECHRONO_FACTOR)) {
|
||||
// nothing to do.
|
||||
}
|
||||
int64_t get() {
|
||||
int64_t get() const {
|
||||
return m_duration;
|
||||
}
|
||||
};
|
||||
using nanoseconds = genericOffsetTime<1LL>
|
||||
using nanoseconds = genericOffsetTime<1LL>;
|
||||
using microseconds = genericOffsetTime<1000LL>;
|
||||
using milliseconds = genericOffsetTime<1000000LL>;
|
||||
using seconds = genericOffsetTime<1000000000LL>;
|
||||
@ -37,15 +37,14 @@ namespace echrono {
|
||||
Duration();
|
||||
Duration(int _val); //value in nanosecond
|
||||
Duration(int64_t _val); //value in nanosecond
|
||||
Duration(int64_t _valSec, int64_t _valNano); //value in second and nanosecond
|
||||
Duration(int64_t _valSec, int32_t _valNano); //value in second and nanosecond
|
||||
Duration(double _val); //value in second
|
||||
template<ECHRONO_FACTOR>
|
||||
template<int64_t ECHRONO_FACTOR>
|
||||
Duration(const genericOffsetTime<ECHRONO_FACTOR>& _val) {
|
||||
m_data = _val.get();
|
||||
}
|
||||
~Duration() { };
|
||||
int64_t count() const;
|
||||
const int64_t& get() const {
|
||||
int64_t get() const {
|
||||
return m_data;
|
||||
}
|
||||
const Duration& operator= (const Duration& _obj);
|
||||
|
@ -20,13 +20,17 @@ static int64_t getTime() {
|
||||
|| defined(__TARGET_OS__Linux) \
|
||||
|| defined(__TARGET_OS__buildroot)
|
||||
struct timespec now;
|
||||
int ret = clock_gettime(CLOCK_UPTIME_RAW, &now);
|
||||
#ifdef CLOCK_BOOTTIME
|
||||
int ret = clock_gettime(CLOCK_BOOTTIME, &now);
|
||||
#else
|
||||
int ret = clock_gettime(CLOCK_UPTIME_RAW, &now);
|
||||
#endif
|
||||
if (ret != 0) {
|
||||
// Error to get the time ...
|
||||
now.tv_sec = time(nullptr);
|
||||
now.tv_nsec = 0;
|
||||
}
|
||||
m_data = int64_t(now.tv_sec)*1000000LL + int64_t(now.tv_nsec)/1000LL;
|
||||
return int64_t(now.tv_sec)*1000000LL + int64_t(now.tv_nsec)/1000LL;
|
||||
#elif defined(__TARGET_OS__MacOs) \
|
||||
|| defined(__TARGET_OS__IOs)
|
||||
struct timespec now;
|
||||
@ -50,20 +54,16 @@ echrono::Steady::Steady() :
|
||||
}
|
||||
|
||||
echrono::Steady::Steady(int64_t _valNano) {
|
||||
m_data = std::chrono::steady_clock::time_point(std::chrono::nanoseconds(_valNano));
|
||||
m_data = _valNano;
|
||||
}
|
||||
|
||||
echrono::Steady::Steady(int64_t _valSec, int64_t _valNano) :
|
||||
echrono::Steady::Steady(int64_t _valSec, int32_t _valNano) :
|
||||
m_data(_valSec*1000000000LL +_valNano) {
|
||||
|
||||
}
|
||||
|
||||
echrono::Steady::Steady(const std::chrono::steady_clock::time_point& _val) {
|
||||
m_data = _val;
|
||||
}
|
||||
|
||||
echrono::Steady echrono::Steady::now() {
|
||||
return echrono::Steady(std::chrono::steady_clock::now());
|
||||
return echrono::Steady(getTime());
|
||||
}
|
||||
|
||||
const echrono::Steady& echrono::Steady::operator= (const echrono::Steady& _obj) {
|
||||
@ -118,7 +118,7 @@ echrono::Steady echrono::Steady::operator- (const echrono::Duration& _obj) const
|
||||
}
|
||||
|
||||
echrono::Duration echrono::Steady::operator- (const echrono::Steady& _obj) const {
|
||||
return m_data - _obj.m_data;
|
||||
return echrono::Duration(int64_t(m_data - _obj.m_data));
|
||||
}
|
||||
|
||||
void echrono::Steady::reset() {
|
||||
@ -126,7 +126,7 @@ void echrono::Steady::reset() {
|
||||
}
|
||||
|
||||
etk::Stream& echrono::operator <<(etk::Stream& _os, const echrono::Steady& _obj) {
|
||||
int64_t ns = obj.get();
|
||||
int64_t ns = _obj.get();
|
||||
int64_t totalSecond = ns/1000000000;
|
||||
int64_t millisecond = (ns%1000000000)/1000000;
|
||||
int64_t microsecond = (ns%1000000)/1000;
|
||||
|
@ -20,10 +20,10 @@ namespace echrono {
|
||||
Steady();
|
||||
//Steady(const echrono::Duration& _val) {}; //value in second
|
||||
Steady(int64_t _valNano);
|
||||
Steady(int64_t _valSec, int64_t _valNano);
|
||||
Steady(int64_t _valSec, int32_t _valNano);
|
||||
Steady(const echrono::Steady& _obj);
|
||||
~Steady() {};
|
||||
const int64_t& get() const {
|
||||
int64_t get() const {
|
||||
return m_data;
|
||||
}
|
||||
/**
|
||||
|
@ -26,7 +26,7 @@ static int64_t getTime() {
|
||||
now.tv_sec = time(nullptr);
|
||||
now.tv_nsec = 0;
|
||||
}
|
||||
m_data = int64_t(now.tv_sec)*1000000LL + int64_t(now.tv_nsec)/1000LL;
|
||||
return int64_t(now.tv_sec)*1000000LL + int64_t(now.tv_nsec)/1000LL;
|
||||
#elif defined(__TARGET_OS__MacOs) \
|
||||
|| defined(__TARGET_OS__IOs)
|
||||
struct timespec now;
|
||||
@ -54,7 +54,7 @@ echrono::Time::Time(int64_t _valNano) :
|
||||
|
||||
}
|
||||
|
||||
echrono::Time::Time(int64_t _valSec, int64_t _valNano) :
|
||||
echrono::Time::Time(int64_t _valSec, int32_t _valNano) :
|
||||
m_data(_valSec*1000000000LL +_valNano) {
|
||||
|
||||
}
|
||||
@ -97,29 +97,29 @@ bool echrono::Time::operator>= (const echrono::Time& _obj) const {
|
||||
}
|
||||
|
||||
const echrono::Time& echrono::Time::operator+= (const echrono::Duration& _obj) {
|
||||
m_data += _obj.m_data;
|
||||
m_data += _obj.get();
|
||||
return *this;
|
||||
}
|
||||
|
||||
echrono::Time echrono::Time::operator+ (const echrono::Duration& _obj) const {
|
||||
echrono::Time tmp(m_data);
|
||||
tmp += _obj;
|
||||
tmp += _obj.get();
|
||||
return tmp;
|
||||
}
|
||||
|
||||
const echrono::Time& echrono::Time::operator-= (const echrono::Duration& _obj) {
|
||||
m_data -= _obj.m_data;
|
||||
m_data -= _obj.get();
|
||||
return *this;
|
||||
}
|
||||
|
||||
echrono::Time echrono::Time::operator- (const echrono::Duration& _obj) const {
|
||||
echrono::Time tmp(m_data);
|
||||
tmp -= _obj;
|
||||
tmp -= _obj.get();
|
||||
return tmp;
|
||||
}
|
||||
|
||||
echrono::Duration echrono::Time::operator- (const echrono::Time& _obj) const {
|
||||
return m_data - _obj.m_data;
|
||||
return echrono::Duration(int64_t(m_data - _obj.m_data));
|
||||
}
|
||||
|
||||
void echrono::Time::reset() {
|
||||
@ -128,7 +128,7 @@ void echrono::Time::reset() {
|
||||
|
||||
|
||||
etk::Stream& echrono::operator <<(etk::Stream& _os, const echrono::Time& _obj) {
|
||||
int64_t ns = _obj.get()
|
||||
int64_t ns = _obj.get();
|
||||
int64_t totalSecond = ns/1000000000;
|
||||
int64_t millisecond = (ns%1000000000)/1000000;
|
||||
int64_t microsecond = (ns%1000000)/1000;
|
||||
@ -178,7 +178,7 @@ namespace etk {
|
||||
return etk::toString(_obj.get());
|
||||
}
|
||||
template<> etk::UString toUString<echrono::Time>(const echrono::Time& _obj) {
|
||||
return etk::toString(_obj.get());
|
||||
return etk::toUString(_obj.get());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -20,10 +20,10 @@ namespace echrono {
|
||||
Time();
|
||||
//Time(const echrono::Duration& _val) {}; //value in second
|
||||
Time(int64_t _valNano);
|
||||
Time(int64_t _valSec, int64_t _valNano);
|
||||
Time(const echrono::Timet& _val);
|
||||
Time(int64_t _valSec, int32_t _valNano);
|
||||
Time(const echrono::Time& _val);
|
||||
~Time() {};
|
||||
const int64_t& get() const {
|
||||
int64_t get() const {
|
||||
return m_data;
|
||||
}
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user