RAII.cpp 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #include "hplatform.h"
  2. #ifdef OS_WIN
  3. class WsaRAII {
  4. public:
  5. WsaRAII() { WSADATA wsadata; WSAStartup(MAKEWORD(2,2), &wsadata);
  6. }
  7. ~WsaRAII() {
  8. WSACleanup();
  9. }
  10. };
  11. static WsaRAII s_wsa;
  12. #endif
  13. #ifdef WITH_CURL
  14. #include "curl/curl.h"
  15. #ifdef _MSC_VER
  16. //#pragma comment(lib, "libcurl.a")
  17. #pragma comment(lib, "ws2_32.lib")
  18. #pragma comment(lib, "wldap32.lib")
  19. #pragma comment(lib, "advapi32.lib")
  20. #pragma comment(lib, "crypt32.lib")
  21. #endif
  22. class CurlRAII {
  23. public:
  24. CurlRAII() {
  25. curl_global_init(CURL_GLOBAL_ALL);
  26. }
  27. ~CurlRAII() {
  28. curl_global_cleanup();
  29. }
  30. };
  31. static CurlRAII s_curl;
  32. #endif
  33. #ifdef WITH_OPENSSL
  34. #include "openssl/ssl.h"
  35. #include "openssl/err.h"
  36. #ifdef _MSC_VER
  37. //#pragma comment(lib, "libssl.a")
  38. //#pragma comment(lib, "libcrypto.a")
  39. #endif
  40. class OpensslRAII {
  41. public:
  42. OpensslRAII() {
  43. //OPENSSL_init_ssl(OPENSSL_INIT_SSL_DEFAULT, NULL);
  44. SSL_load_error_strings();
  45. SSL_library_init();
  46. }
  47. ~OpensslRAII() {
  48. }
  49. };
  50. static OpensslRAII s_openssl;
  51. #endif