123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- #ifndef FUNCLIB_HPP
- #define FUNCLIB_HPP
- #ifdef _WIN32
- #ifdef FUNC_LIBRARY_EXPORTS
- #define FUNC_LIBRARY_API __declspec(dllexport)
- #else
- #define FUNC_LIBRARY_API __declspec(dllimport)
- #ifdef _DEBUG
- #pragma comment (lib, "funclibd.lib")
- #else
- #pragma comment (lib, "funclib.lib")
- #endif
- #endif
- #else
- #define FUNC_LIBRARY_API
- #endif
- #include <map>
- #include <cmath>
- #include <vector>
- #include <string>
- namespace rettype
- {
- enum type :std::int32_t
- {
- ini = 0,
- absent,
- exist,
- except
- };
- }
- struct mulparam
- {
- std::string strname = "";
- std::string strvalue = "";
- };
- namespace funclib {
- //字符串转数字, 失败返回0
- template<class T>
- FUNC_LIBRARY_API T strtonum(std::string strtemp);
- //字符串转数字, 失败返回1
- template<class T>
- FUNC_LIBRARY_API T strtonumzero(std::string strtemp);
- //字符串转数字, 失败返回1
- template<class T>
- FUNC_LIBRARY_API inline T strtonumone(std::string strtemp);
- //获取unix时间戳
- FUNC_LIBRARY_API std::int64_t gettimestamp();
- //获取本地时间戳
- FUNC_LIBRARY_API std::int64_t getlocaltimestamp();
- //unix时间戳转本地时间戳
- FUNC_LIBRARY_API std::int64_t getunixtolocalstamp(std::int64_t itime);
- //本地时间戳转unix时间戳
- FUNC_LIBRARY_API std::int64_t getlocaltounixstamp(std::int64_t& itime);
- //unix时间戳获取本地从1970_01_05开始到现在的天数
- FUNC_LIBRARY_API std::int32_t getlocalday(std::int64_t& itime);
- //unix时间戳获取本地从1970_01_05开始到现在的周数
- FUNC_LIBRARY_API std::int32_t getlocalweekday(std::int64_t& itime);
- //获取本地时间当月的天数
- FUNC_LIBRARY_API std::int32_t getcurmonthday(std::int64_t itime);
- //得到本地时间戳字符串
- FUNC_LIBRARY_API std::string getlocalstampstring();
- //从unix时间戳得到本地时间戳字符串,精确到秒
- FUNC_LIBRARY_API std::string getsectimefromunixstamp(std::int64_t itimestamp);
- //从unix时间戳获取本地时间字符串
- FUNC_LIBRARY_API std::string gettimefromstamp(std::int64_t itimestamp);
- //整型缩小10000倍保留两位小数,最后两位舍去
- FUNC_LIBRARY_API std::string getdouble(std::int64_t itemp);
- //base64位编码
- FUNC_LIBRARY_API bool Base64Encode(const std::string& input, std::string& output);
- //base64位编码
- FUNC_LIBRARY_API bool Base64Decode(const std::string& input, std::string& output);
- //转出json字符串
- template <class T>
- FUNC_LIBRARY_API std::string doctojson(T& doc);
- //转出json字符串保留4为小数
- template <class T>
- FUNC_LIBRARY_API std::string doctojsonfd(T& doc);
- //错误码转出json {erro:1}
- FUNC_LIBRARY_API std::string errotojson(std::int32_t ierro);
- //错误码转出json {ret:1, info:"ok"}
- FUNC_LIBRARY_API std::string rettojson(std::int32_t iret, std::string strinfo);
- //根据key从map中获取数值类型
- template<typename T>
- FUNC_LIBRARY_API rettype::type funnum(std::map<std::string, std::string>& getdata, T& iretdata, std::string strkey);
- //整型转36进制字符串
- FUNC_LIBRARY_API std::string decimalToBase36(std::int64_t num);
- //36进制字符串转整型
- FUNC_LIBRARY_API std::int64_t base36ToDecimal(const std::string& str);
- //判断字符串是否是json
- FUNC_LIBRARY_API bool isValidJson(const std::string& jsonString);
- //tmulparam参数转post请求参数
- FUNC_LIBRARY_API std::string geturl_mulparam(std::string& strpath, std::string& strhost, std::vector<mulparam>& tmulparam);
- template<typename F>
- inline FUNC_LIBRARY_API rettype::type getjsonvalue(const F& doc, std::string strdata, std::string& tvalue);
- template<typename F>
- inline FUNC_LIBRARY_API rettype::type getjsonvalue(const F& doc, std::string strdata, std::uint32_t& tvalue);
- template<typename F>
- inline FUNC_LIBRARY_API rettype::type getjsonvalue(const F& doc, std::string strdata, std::int32_t& tvalue);
- template<typename F>
- inline FUNC_LIBRARY_API rettype::type getjsonvalue(const F& doc, std::string strdata, std::uint64_t& tvalue);
- template<typename F>
- inline FUNC_LIBRARY_API rettype::type getjsonvalue(const F& doc, std::string strdata, std::int64_t& tvalue);
- template<typename F>
- inline FUNC_LIBRARY_API rettype::type getjsonvalue(const F& doc, std::string strdata, std::double_t& tvalue);
- template<typename F>
- inline FUNC_LIBRARY_API rettype::type getjsonvalue(const F& doc, std::string strdata, bool& tvalue);
- template<typename F>
- inline FUNC_LIBRARY_API rettype::type getjsonscore(const F& doc, std::string strdata, std::int64_t& tvalue);
- template<typename F>
- inline FUNC_LIBRARY_API rettype::type getjsonscore(const F& doc, std::string strjson, std::string strfindvalue, std::int64_t& iscore);
- // AES加密字符串函数
- FUNC_LIBRARY_API std::string AESEncryptString(const char* instr);
- // AES解密字符串函数
- FUNC_LIBRARY_API std::string AESDecryptString(const char* instr);
- //获取从bsoncxx::document::elemen中mongoid
- template<typename T>
- FUNC_LIBRARY_API std::string getmongoid(T& id_ele);
- //str转wstr输出为utf16
- FUNC_LIBRARY_API std::wstring strtowstr(const std::string& str);
- //wstr转str输出为utf8
- FUNC_LIBRARY_API std::string wstrtostr(const std::wstring& wstr);
- //json加密
- FUNC_LIBRARY_API std::string funjsonencode(std::string strdata);
- //把wchar_t转成std::string,返回长度不能超过ilen
- FUNC_LIBRARY_API std::string getwchartostr(wchar_t* tcTemp, int ilen);
- //获取程序唯一标识符
- FUNC_LIBRARY_API inline std::uint32_t getcurid();
- //获取唯一标识符
- FUNC_LIBRARY_API inline std::string getonlytoken(std::int32_t tindex, std::uint32_t icurid);
- //gb2312转utf8
- FUNC_LIBRARY_API std::string getutf8(std::string strdata);
- //url解码
- FUNC_LIBRARY_API inline std::string urlDecode(const std::string& encodedText);
- //chunkd encode
- FUNC_LIBRARY_API inline bool zibcompress(const std::string& datain, std::string& dataout, int level);
- //chunkd decode
- FUNC_LIBRARY_API inline bool zibuncompress(const std::string& datain, std::string& dataout);
- //判断chunkd
- FUNC_LIBRARY_API inline void dechunk(const char* chunked_data, std::string& dechunked_data);
- //网站字符转义
- FUNC_LIBRARY_API inline void htmlescape(std::string& input);
-
- FUNC_LIBRARY_API inline void* getmsgqueue();
- FUNC_LIBRARY_API inline void delmsgqueue(void* pdata);
- FUNC_LIBRARY_API inline void msgqueuesend(void* pmsg, std::string& url, void* pdata, std::int32_t ilen);
- template<class T>
- FUNC_LIBRARY_API inline void msgqueuerecv(void* pmsg, T& tfun);
-
- FUNC_LIBRARY_API inline std::string getmyip();
- FUNC_LIBRARY_API inline std::string getdatainfo();
- }
- #endif
|