mirror of https://github.com/PurpleI2P/i2pd.git
I2P: End-to-End encrypted and anonymous Internet
https://i2pd.website/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
916 B
49 lines
916 B
#ifndef TIMESTAMP_H__ |
|
#define TIMESTAMP_H__ |
|
|
|
#include <inttypes.h> |
|
#include <thread> |
|
#include <vector> |
|
#include <string> |
|
#include <boost/asio.hpp> |
|
|
|
namespace i2p |
|
{ |
|
namespace util |
|
{ |
|
uint64_t GetMillisecondsSinceEpoch (); |
|
uint32_t GetHoursSinceEpoch (); |
|
uint64_t GetSecondsSinceEpoch (); |
|
|
|
void GetCurrentDate (char * date); // returns date as YYYYMMDD string, 9 bytes |
|
void GetDateString (uint64_t timestamp, char * date); // timestap is seconds since epoch, returns date as YYYYMMDD string, 9 bytes |
|
|
|
class NTPTimeSync |
|
{ |
|
public: |
|
|
|
NTPTimeSync (); |
|
~NTPTimeSync (); |
|
|
|
void Start (); |
|
void Stop (); |
|
|
|
private: |
|
|
|
void Run (); |
|
void Sync (); |
|
|
|
private: |
|
|
|
bool m_IsRunning; |
|
std::unique_ptr<std::thread> m_Thread; |
|
boost::asio::io_service m_Service; |
|
boost::asio::deadline_timer m_Timer; |
|
int m_SyncInterval; |
|
std::vector<std::string> m_NTPServersList; |
|
}; |
|
} |
|
} |
|
|
|
#endif |
|
|
|
|