RAII.cpp 1002 B

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