176 lines
4.7 KiB
C++
176 lines
4.7 KiB
C++
/**
|
||
* @file wTurtle.h
|
||
* @brief 常用Windows系统API封装类,继承统一的TurtleAPI接口基类,封装实现常用Windows系统API
|
||
* @date 2014-04-15
|
||
* @author Bronco
|
||
*/
|
||
|
||
#ifndef WTURTLEAPI_H_
|
||
#define WTURTLEAPI_H_
|
||
#include "TurtleAPI.h"
|
||
|
||
namespace pai {
|
||
namespace turtle {
|
||
/**
|
||
* @class wTurtleAPI
|
||
* @brief 常用Windows系统API封装类,继承统一的TurtleAPI接口基类,封装实现常用Windows系统API
|
||
*
|
||
*/
|
||
class wTurtleAPI : public TurtleAPI{
|
||
public:
|
||
/**
|
||
* @brief 构造函数
|
||
*/
|
||
wTurtleAPI();
|
||
/**
|
||
* @brief 析构函数
|
||
*/
|
||
virtual ~wTurtleAPI();
|
||
/**
|
||
* @brief 挂起指定时间
|
||
* @param[in] sleepTime 以毫秒为单位的睡眠时间
|
||
*/
|
||
virtual void Sleep(unsigned long long sleepTime);
|
||
/**
|
||
* @brief 系统调用
|
||
* @param[in] oper 要执行的命令
|
||
* @param[in] name 指定要打开的文件或程序
|
||
* @param[in] param 传递给要打开的程序的参数
|
||
* @param[in] path 缺省目录
|
||
* @param[in] cmd 打开选项
|
||
*/
|
||
virtual void SysCall(const std::string& oper, const std::string& name, const std::string& param, const std::string& path, int cmd);
|
||
/**
|
||
* @brief
|
||
* @param[]
|
||
* @param[]
|
||
* @return
|
||
*/
|
||
virtual unsigned int CreateThread(LPTHREAD_START_ROUTINE pFunction, void * param);
|
||
/**
|
||
* @brief 删除一个目录
|
||
* @param[in] path 要删除的目录
|
||
*/
|
||
virtual bool DeletePath(std::string &path);
|
||
/**
|
||
* @brief 检查路径
|
||
* @param[in] path 要检查的路径
|
||
*/
|
||
virtual bool CheckPath(std::string& path);
|
||
/**
|
||
* @brief 创建目录
|
||
* @param path 要创建的目录
|
||
* @return 成功返回 true,失败返回false
|
||
*/
|
||
virtual bool MkDir(std::string &path);
|
||
/**
|
||
* @brief 获取path下的文件列表
|
||
* @param[in] path 目录
|
||
* @param[out] filelist 文件名列表
|
||
* @return 成功返回true,失败返回false.
|
||
*/
|
||
virtual bool ScanDir(const std::string &path,std::vector<std::string> &filelist);
|
||
/**
|
||
* @brief 读取一行数据
|
||
* @param[in] file 文件指针
|
||
* @param[out] str 读取到的数据
|
||
* @return 成功返回true,失败返回false.
|
||
*/
|
||
virtual bool Readline(FILE *file,std::string &str);
|
||
/**
|
||
* @brief 获取系统时间
|
||
* @return 得到的系统时间,单位为微秒
|
||
*/
|
||
virtual unsigned long long GetSystemTime();
|
||
/**
|
||
* @brief 获取系统时间
|
||
* @param[out] tv timeval结构提指针
|
||
* @param[out] tz 返回时区信息(windows下暂未实现)
|
||
* @return 执行成功返回0,失败返回-1
|
||
*/
|
||
virtual int GetTimeOfDay(struct timeval *tv, void *tz);
|
||
/**
|
||
* @brief 获取系统时间 纳秒级
|
||
* @param[out] time 获取到的纳秒级计数
|
||
* @return cpu频率支持纳秒级计数 返回true,否则返回false.
|
||
*/
|
||
virtual bool GetNSTime(long long &time);
|
||
/**
|
||
* @brief 把字符串转换成long long 类型数据
|
||
* @param[in] str 要转换的字符串
|
||
* @return 得到的long long型数据
|
||
*/
|
||
virtual long long StringToLong(const std::string &str);
|
||
/* @brief 改变或增加环境变量,如果环境变量已经存在,原内容会被改为strEnvValue
|
||
* @param[in] strEnvName 环境变量名称字符串
|
||
* @param[in] strEnvValue 环境变量的值
|
||
* @return 执行成功返回0,有错误发生返回-1
|
||
*/
|
||
virtual int SetEnv(std::string &strEnvName,std::string &strEnvValue);
|
||
/**
|
||
* @brief 将value的值付给pt
|
||
* @param[in] pt 待赋值的pthread_t
|
||
* @param[in] value 欲赋给pt的值
|
||
*/
|
||
virtual void SetValue(pthread_t& pt, int value);
|
||
/**
|
||
* @brief 验证pt是否大于0
|
||
* @param[in] pt 待验证的 pthread_t
|
||
* @return 等于0 返回true,不等于0 返回false.
|
||
*/
|
||
virtual bool IsValid(pthread_t& pt);
|
||
|
||
/**
|
||
*
|
||
*/
|
||
virtual int GetOpt(int argc, char *argv[], char *opstring);
|
||
/**
|
||
* @brief 用于关闭指定句柄的动态链接库
|
||
* @return 只有当此动态链接库的使用计数为0时,才会真正被系统卸载。
|
||
*/
|
||
virtual void * OpenLibrary(const std::string &strlibrary);
|
||
|
||
/**
|
||
* @brief 当动态链接库操作函数执行失败时,该方法可以返回出错信息
|
||
* @return std::string 返回值为NULL时表示操作函数执行成功
|
||
*/
|
||
virtual long CloseLibrary(void *library);
|
||
/**
|
||
* @brief 当动态链接库操作函数执行失败时,该方法可以返回出错信息
|
||
* @return std::string 返回值为NULL时表示操作函数执行成功
|
||
*/
|
||
virtual std::string ErrorLibrary();
|
||
/**
|
||
* @brief 获取进程ID
|
||
* @return 进程ID.
|
||
*/
|
||
virtual int GetPid();
|
||
|
||
|
||
|
||
/**
|
||
* @brief 判断是否是有效数字
|
||
* @return
|
||
*/
|
||
virtual int isNAN(double x);
|
||
/**
|
||
* @brief 判断是否是INF
|
||
* @return
|
||
*/
|
||
virtual int isINF(double x);
|
||
/**
|
||
* @brief 得到当前操作系统的动态库文件的后缀,windows平台返回.dll
|
||
* @return
|
||
*/
|
||
virtual std::string GetLibraryFileExt();
|
||
private:
|
||
|
||
protected:
|
||
|
||
};
|
||
|
||
}
|
||
}
|
||
|
||
#endif /* WTURTLEAPI_H_ */
|