2025-04-27 07:49:33 -04:00

109 lines
2.1 KiB
C++

/*++
Copyright (C) 1997-2001 Microsoft Corporation
Module Name:
TCPIP.H
Abstract:
Defines the functions used for tcpip transport.
History:
a-davj 16-june-97 Created.
--*/
/////////////////////////////////////////////////////////////////////
//
//
//
/////////////////////////////////////////////////////////////////////
#ifndef _WBEMTCPIP_
#define _WBEMTCPIP_
//***************************************************************************
//
// CLASS NAME:
//
// CComLink_Tcpip
//
// DESCRIPTION:
//
// TCPIP implementation of the CComLink.
//
//***************************************************************************
//***************************************************************************
//
// CLASS NAME:
//
// CComLink_Tcpip
//
// DESCRIPTION:
//
// Unnamed pipe implementation of the CComLink.
//
//***************************************************************************
class CComLink_Tcpip : public CComLink
{
friend DWORD LaunchReadTcpipThread ( LPDWORD pParam ) ;
public:
CComLink_Tcpip (
LinkType Type ,
SOCKET a_Socket
) ;
// Destructor for Tcpip
// Sends a COMLINK_MSG_NOTIFY_DESTRUCT to
// its partner, if any.
// Does a Release() on the CMsgHandler as well.
~CComLink_Tcpip () ;
DWORD Call ( IN IOperation &a_Operation ) ;
DWORD Transmit ( CTransportStream &a_WriteStream ) ;
DWORD StrobeConnection () ;
DWORD ProbeConnection () ;
DWORD HandleCall ( IN IOperation &a_Operation ) ;
DWORD Shutdown () ;
void DropLink () ;
CObjectSinkProxy* CreateObjectSinkProxy (IN IStubAddress& dwStubAddr,
IN IWbemServices* pServices);
private:
DWORD DoReading () ;
void ProcessRead ( PACKET_HEADER *ph , BYTE *pData , DWORD dwDataSize ) ;
/*
* Tcpip Handles
*/
SOCKET m_Socket ; // Handle used to read from PIPE
/*
* Thread Handle of Reader thread
*/
HANDLE m_ReadThread; // Thread Handle created for Synchronous listening
HANDLE m_ReadThreadDoneEvent ; // Event Handle used to indicate thread has shutdown, based on hTermEvent.
} ;
#endif