#ifndef CPP_REDIS_WINSOCK_INITIALIZER_H_ #define CPP_REDIS_WINSOCK_INITIALIZER_H_ #ifdef _WIN32 #include #include class winsock_initializer { public: winsock_initializer() { //! Windows network DLL init WORD version = MAKEWORD(2, 2); WSADATA data; if (WSAStartup(version, &data) != 0) { throw std::runtime_error("WSAStartup() failure"); } } ~winsock_initializer() { WSACleanup(); } }; #define WINSOCK_INITIALIZER() winsock_initializer winsock_init; #else class winsock_initializer {}; #define WINSOCK_INITIALIZER() #endif /* _WIN32 */ #endif // !CPP_REDIS_WINSOCK_INITIALIZER_H_