x
Yes
No
Do you want to visit DriveHQ English website?
Inicio
Características
Precios
Prueba gratuita
Software cliente
Acerca de nosotros
Servidor de archivos
|
Solución de copias de seguridad
|
Servidor FTP
|
Servidor de correo electrónico
|
Alojamiento web
|
Software cliente
Servidor de archivos
Solución de copia de seguridad
Servidor FTP
Servidor de correo electrónico
Alojamiento web
Software cliente
winsock_init.hpp - Hosted on DriveHQ Cloud IT Platform
Arriba
Subir
Descargar
Compartir
Publicar
Nueva carpeta
Nuevo archivo
Copiar
Cortar
Eliminar
Pegar
Clasificación
Actualizar
Ruta de la carpeta: \\game3dprogramming\materials\GameFactory\GameFactoryDemo\references\boost_1_35_0\boost\asio\detail\winsock_init.hpp
Girar
Efecto
Propiedad
Historial
// // winsock_init.hpp // ~~~~~~~~~~~~~~~~ // // Copyright (c) 2003-2008 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // #ifndef BOOST_ASIO_DETAIL_WINSOCK_INIT_HPP #define BOOST_ASIO_DETAIL_WINSOCK_INIT_HPP #if defined(_MSC_VER) && (_MSC_VER >= 1200) # pragma once #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) #include
#include
#include
#include
#include
#if defined(BOOST_WINDOWS) || defined(__CYGWIN__) #include
#include
#include
#include
#include
#include
#include
namespace boost { namespace asio { namespace detail { template
class winsock_init : private noncopyable { private: // Structure to perform the actual initialisation. struct do_init { do_init() { WSADATA wsa_data; result_ = ::WSAStartup(MAKEWORD(Major, Minor), &wsa_data); } ~do_init() { ::WSACleanup(); } int result() const { return result_; } // Helper function to manage a do_init singleton. The static instance of the // winsock_init object ensures that this function is always called before // main, and therefore before any other threads can get started. The do_init // instance must be static in this function to ensure that it gets // initialised before any other global objects try to use it. static boost::shared_ptr
instance() { static boost::shared_ptr
init(new do_init); return init; } private: int result_; }; public: // Constructor. winsock_init() : ref_(do_init::instance()) { // Check whether winsock was successfully initialised. This check is not // performed for the global instance since there will be nobody around to // catch the exception. if (this != &instance_ && ref_->result() != 0) { boost::system::system_error e( boost::system::error_code(ref_->result(), boost::asio::error::get_system_category()), "winsock"); boost::throw_exception(e); } } // Destructor. ~winsock_init() { } private: // Instance to force initialisation of winsock at global scope. static winsock_init instance_; // Reference to singleton do_init object to ensure that winsock does not get // cleaned up until the last user has finished with it. boost::shared_ptr
ref_; }; template
winsock_init
winsock_init
::instance_; } // namespace detail } // namespace asio } // namespace boost #endif // defined(BOOST_WINDOWS) || defined(__CYGWIN__) #include
#endif // BOOST_ASIO_DETAIL_WINSOCK_INIT_HPP
winsock_init.hpp
Dirección de la página
Dirección del archivo
Anterior
75/76
Siguiente
Descargar
( 3 KB )
Comments
Total ratings:
0
Average rating:
No clasificado
of 10
Would you like to comment?
Join now
, or
Logon
if you are already a member.