中间件底层,websocket

DingDing.h 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #pragma once
  2. #include <codecvt>
  3. #include "IDingDing.h"
  4. class CDingDing :public IDingDing
  5. {
  6. public:
  7. // 推送信息到钉钉
  8. virtual bool Push(const std::string& strInfo) override;
  9. // 推送心跳提醒消息到钉钉
  10. virtual bool PushHeart(const std::string& strDev)override;
  11. virtual bool PushHeart(const std::string& strDev, const bool& bIsPush, const bool& bIsRm = false)override;
  12. // 推送连接断开消息到钉钉
  13. virtual bool PushDisConn(const std::string& strDev)override;
  14. // 推送IVR流程节点超时提醒到钉钉
  15. virtual bool PushIVRCellTimeOut()override;
  16. // 推送SQL执行失败语句到钉钉
  17. virtual bool PushFailSQL(const std::string&strSql, const std::string& strErrInfo = "")override;
  18. // 推送fslink不能找到对应通道消息到钉钉
  19. virtual bool PushFindFailChan() override;
  20. static CDingDing* GetInstance() { return &instance; }
  21. virtual ~CDingDing() = default;
  22. private:
  23. CDingDing() = default;
  24. CDingDing(const CDingDing&) = default;
  25. CDingDing& operator=(const CDingDing&) = default;
  26. private:
  27. static std::wstring string_to_wstring(const std::string &s)
  28. {
  29. using default_convert = std::codecvt<wchar_t, char, std::mbstate_t>;
  30. static std::wstring_convert<default_convert>conv(new(std::nothrow) default_convert("CHS"));
  31. return conv.from_bytes(s);
  32. }
  33. static std::string ansi_to_utf8(const std::string &s)
  34. {
  35. static std::wstring_convert<std::codecvt_utf8<wchar_t> > conv;
  36. return conv.to_bytes(string_to_wstring(s));
  37. }
  38. static std::string wstring_to_string(const std::wstring &s)
  39. {
  40. using default_convert = std::codecvt<wchar_t, char, std::mbstate_t>;
  41. static std::wstring_convert<default_convert>conv(new(std::nothrow) default_convert("CHS"));
  42. return conv.to_bytes(s);
  43. }
  44. static std::string utf8_to_ansi(const std::string& s)
  45. {
  46. static std::wstring_convert<std::codecvt_utf8<wchar_t> > conv;
  47. return wstring_to_string(conv.from_bytes(s));
  48. }
  49. private:
  50. static CDingDing instance;
  51. };