Main Page Modules Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# deTCPConnectionProvider.hpp

Go to the documentation of this file.

    00001 ///////////////////////////////////////////////////////////////////////////////
    00002 /// @file deTCPConnectionProvider.hpp
    00003 ///
    00004 /// @brief
    00005 ///
    00006 /// @author trajar
    00007 ///
    00008 /// This file is the intellectual property of Novus Delta, LLC.. Usage of the
    00009 /// contents of this file is subject to the Destiny3D Member License which
    00010 /// can be found at http://www.destiny3d.com.  Any other usage is prohibited.
    00011 ///
    00012 /// This file is distributed "AS IS" without warranty of any kind.  Novus
    00013 /// Delta, LLC. does not guarantee the fitness of the contents of this file
    00014 /// for any particular purpose.
    00015 ///
    00016 /// Copyright (C) 2001-2003 Novus Delta, LLC. All Rights Reserved.
    00017 ///
    00018 /// <hr>
    00019 ///                                 Change History
    00020 /// <hr>
    00021 ///
    00022 /// @date Jun 2002
    00023 /// @author trajar
    00024 /// @remarks Creation
    00025 ///
    00026 ///////////////////////////////////////////////////////////////////////////////
    00027
    00028 #ifndef _DETCPCONNECTIONPROVIDER_HPP
    00029 #define _DETCPCONNECTIONPROVIDER_HPP
    00030
    00031 #include    <WINSOCK2.H>
    00032
    00033 #ifndef     _DECONNECTIONPROVIDER_HPP
    00034  #include   "deConnectionProvider.hpp"
    00035 #endif
    00036
    00037 typedef class DENET_API deTCPConnectionProvider : public deConnectionProvider
    00038 {
    00039 public:
    00040
    00041     deTCPConnectionProvider(void);
    00042     virtual ~deTCPConnectionProvider(void);
    00043
    00044     struct ProviderInfo
    00045     {
    00046         DWORD               dwVersion;
    00047         WSADATA             wsDeviceData;
    00048         WSAPROTOCOL_INFO *  wsProtocolInfo; // we will hold a dozend protocols
    00049         int                 iNumProtocols;
    00050     };
    00051
    00052     virtual deConnection *           GetConnectionAt( DWORD pIndex );
    00053     static deTCPConnectionProvider * GetMgr(void)   { return m_Singleton; }
    00054
    00055 protected:
    00056
    00057     virtual deConnectionBin *   GetAvailableBin(void);
    00058     virtual deConnection *      GetUnusedConnection(void);
    00059
    00060     virtual eNetError   OnInit( DWORD dwFlags = NULL );
    00061     virtual eNetError   OnShutdown( DWORD dwFlags = NULL );
    00062     virtual eNetError   OnCreateConnection( deConnection ** pOut, void * pProviderInfo = NULL, DWORD dwFlags = NULL );
    00063     virtual eNetError   OnCloseConnection( deConnection ** pConn, DWORD dwFlags = NULL );
    00064
    00065 private:
    00066
    00067     ProviderInfo        m_ProviderInfo;
    00068
    00069     static deTCPConnectionProvider * m_Singleton;
    00070
    00071 } deTCPConnectionProvider, *pdeTCPConnectionProvider;
    00072
    00073
    00074 #endif