123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- //
- // Created by wk on 2020/9/25.
- //
- #ifndef PKGNAME_TIME_TOOL_H
- #define PKGNAME_TIME_TOOL_H
- #include <thread>
- #include <map>
- #include <iostream>
- #include<time.h>
- #include <queue>
- #include "tool/singleton.hpp"
- class Time_tool:public Singleton<Time_tool>
- {
- // 子类必须把父类设定为友元函数,这样父类才能使用子类的私有构造函数。
- friend class Singleton<Time_tool>;
- struct time_data
- {
- std::chrono::system_clock::time_point t_time_start;//计时开始
- std::chrono::system_clock::time_point t_time_end;//计时结束
- std::chrono::system_clock::duration t_time_difference;//时差
- };
- private:
- // 父类的构造函数必须保护,子类的构造函数必须私有。
- Time_tool();
- public:
- //必须关闭拷贝构造和赋值构造,只能通过 get_instance 函数来进行操作唯一的实例。
- Time_tool(const Time_tool& other) = delete;
- Time_tool& operator =(const Time_tool& other) = delete;
- ~Time_tool();
- public://API functions
- void Time_tool_uninit();
- //获取当前系统时间点
- std::chrono::system_clock::time_point get_system_point();
- //设置输出格式 保留小数点后几位 不设置默认为系统输出
- void set_points_digits(int);
- //获取当前时间 精确到秒
- std::string get_current_time_seconds();
- //获取当前时间 精确到毫秒
- std::string get_current_time_millisecond();
- //获取当前时间 精确到微妙
- std::string get_current_time_microsecond();
- //获取当前时间结构体
- tm get_current_time_struct();
- //计时开始
- void time_start(int key=1);
- //指定计时器计时结束
- void time_end(int key=1);
- //打印计时时差 精确到秒
- void cout_time_seconds(int key=1);
- //打印计时时差 精确到毫秒
- void cout_time_millisecond(int key=1);
- //打印计时时差 精确到微秒
- void cout_time_microsecond(int key=1);
- //打印计时时差 精确到纳秒
- void cout_time_nanosecond(int key=1);
- //清除计时器
- void clear_timer();
- public://get or set member variable
- protected://member variable
-
- private:
- std::map<int,time_data> timetool_map;
- };
- #endif //PKGNAME_TIME_TOOL_H
|