gitignore update
[apps/agl-service-can-low-level.git] / src / utils / timer.hpp
index a3cbecd..b34fdf6 100644 (file)
 
 #pragma once
 
-#include <sys/timeb.h>
-
 /*
  * @brief return epoch in milliseconds
  *
  * @return long long int epoch in milliseconds
  */
-typedef long long int (*TimeFunction)();
+typedef long long int (*time_function_t)();
+
+long long int system_time_us();
+long long int system_time_ms();
+long long int system_time_s();
 
 /**
  * @class frequency_clock_t 
@@ -43,8 +45,18 @@ class frequency_clock_t
 private:
        float frequency_;
        unsigned long last_tick_;
-       TimeFunction time_function_;
+       time_function_t time_function_;
 
 public:
        frequency_clock_t();
+       frequency_clock_t(float frequency);
+       frequency_clock_t(float frequency, unsigned long last_tick, time_function_t time_function);
+
+       float get_frequency() const;
+       static float frequency_to_period(float frequency);
+       bool started();
+       time_function_t get_time_function();
+       bool elapsed(bool stagger);
+
+       void tick();
 };
\ No newline at end of file