Class KomodiaDNS::CDNSSocket Base ClassesData ItemsConstructorsDestructorsFunctionsCustom CodeGo to hierarchy chart    Prev page: Custom Code in Source After IncludesNext page: m_aConnectionStatus    Show member index
Class Declared in:
DNSSocket.h

'Overview' icon -- Shortcut to top of page. Overview

Copyright (c) 2000-2003 Barak Weichselbaum <barak@komodia.com> All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS `AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Contact info:

Site:                  http://www.komodia.com Main contact:          barak@komodia.com For custom projects, consulting, or other paid services:         sales@komodia.com

Hierarchy Chart Hierarchy Chart

'Base Classes' icon -- Shortcut to top of page. Base Classes

Public base class CErrorHandler

'Data Items' icon -- Shortcut to top of page. Data Items

Private data ConnectionStatus m_aConnectionStatus Our connection status
Private data mutable PendingDeque m_aPendingData Our deque
Private data BOOL m_bAsync
Private data BOOL m_bAsyncConnect
Private data BOOL m_bOwners Do we own the thread manager ?
Private data BOOL m_bUseTCP Sockets settings
Private data int m_iTimeout timeout counter
Private data CGenericCriticalSection * m_pCSection Our critical section
Private data CGenericCriticalSection * m_pCSectionDeque Our CS for the deque
Private data CDNSManager * m_pFather Our father
Private data CDNSTCPSocket * m_pTCP Our sockets
Private data CThreadPool * m_pThreadManager Our worker thread manager
Private data CDNSUDPSocket * m_pUDP
Private data std::string m_strDNSServer Our DNS server

'Constructors' icon -- Shortcut to top of page. Constructors

Private constructor

CDNSSocket( const CDNSSocket& rSocket )

No copy Ctor
Public constructor

CDNSSocket( CDNSManager* pFather, const std::string strDNSServer, BOOL bTCP, BOOL bAsync, BOOL bAsyncConnect )

Ctor and Dtor

'Destructors' icon -- Shortcut to top of page. Destructors

Public destructor virtual

~CDNSSocket()

'Functions' icon -- Shortcut to top of page. Functions

Private function void

AddData( const char* pData, unsigned short usSize, LPVOID lpData )

Add data to the buffer
Private function static void

DeleteProc( WaitingRequests& rRequest )

Proc for deleting the vector data
Private function BOOL

Flush()

Flush the data
Private function CDNSSocket::WaitingRequests

GetData() const

Get data from the pending requests
Public function CThreadPool *

GetThreadManager() const

Get the thread manager
Public function BOOL

Initialize()

Initialize data
Private function CDNSSocket &

operator =( const CDNSSocket& rSocket )

No copy operator
Public function CDNSAnswers *

ParseAnswer( char* pBuffer, char* pOriginalBuffer, int iBufferLengh, BOOL bFromThread=FALSE, BOOL bTCP=FALSE )

Parse the answer
Public function CDNSAnswers *

Receive()

Receive for block sockets
Public function BOOL

Send( const char *pBuffer, unsigned short bufLen, LPVOID lpLocalIDData )

Send the buffer
Private function void

SetConnectionStatus( ConnectionStatus aStatus )

Set the connection status
Public function BOOL

SetConnectionTimeout( int iMS )

Set socket timeout
Public function void

SetMultithreaded( int iThreadNumber )

Set multithreaded support
Public function void

SetMultithreaded( CThreadPool* pThreadManager )

Private function void

SocketClosed()

Private function void

SocketConnected( int iErrorCode )

Private function void

SocketError( int iErrorCode )

Indicte errors and timeout
Public function CDNSAnswers *

SocketReceive( char* pBuffer, int iBufferLengh, BOOL bTCP=FALSE )

When we recieve an event
Private function static void

ThreadProc( LPVOID lpParam )

Our thread proc, for the thread manager

'Friends' icon -- Shortcut to top of page. Friends

class CDNSTCPSocket
class CDNSUDPSocket

'Custom Code' icon -- Shortcut to top of page. Custom Code

'Implementation Details' icon -- Shortcut to top of page. Implementation Details

File(s)
C:\dev\Komodia\KomodiaDNS\DNSSocket.cpp
C:\dev\Komodia\KomodiaDNS\DNSSocket.h
Header Includes
ErrorHandler.h     
UDPSocketAsync.h     
string     
deque     
Source Includes
stdafx.h     for precompiled header directive
DNSSocket.h     
ErrorHandlerMacros.h     
Array_Ptr.h     
OSManager.h     
ThreadPool.h     
GenericCriticalSection.h     
DNSManager.h     
DNSUDPSocket.h     
DNSTCPSocket.h     
algorithm     
Owner
tcpip4
Last Modified
23/02/2003 22:38:32 PM

Get Surveyor!This web site was generated using Surveyor V4.50.811.1.  Click here for more information. Site content copyright © 2003 Komodia LTD.. See the About page for additional notices. This page last updated: 24 Feb 2003.