mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
3.7 KiB
180 lines
3.7 KiB
/*++
|
|
|
|
Copyright (c) 1991 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
tranclnt.hxx
|
|
|
|
Abstract:
|
|
|
|
Author:
|
|
|
|
Steve Zeck (stevez) 06-May-1991
|
|
|
|
Revision History:
|
|
|
|
02-Mar-1992 mikemon
|
|
|
|
Rewrote parts of it, added comments, and generally cleaned it up.
|
|
|
|
--*/
|
|
|
|
#ifndef __TRANCLNT_HXX__
|
|
#define __TRANCLNT_HXX__
|
|
|
|
#include <memory.h>
|
|
|
|
#ifdef WIN
|
|
#define InqTransCConnection(RpcTransportConnection) \
|
|
((TRANS_CCONNECTION *) \
|
|
((char *) (long) RpcTransportConnection \
|
|
- sizeof(TRANS_CCONNECTION)))
|
|
#else // WIN
|
|
#define InqTransCConnection(RpcTransportConnection) \
|
|
((TRANS_CCONNECTION *) \
|
|
((char *) RpcTransportConnection - sizeof(TRANS_CCONNECTION)))
|
|
#endif // WIN
|
|
|
|
|
|
class TRANS_CCONNECTION : public OSF_CCONNECTION
|
|
/*++
|
|
|
|
Class Description:
|
|
|
|
Fields:
|
|
|
|
ClientInfo - Contains the pointers to the loadable transport routines
|
|
for the transport type of this connection.
|
|
|
|
ConnectionClosedFlag - Contains a flag which will be non-zero if the
|
|
connection is closed, and zero otherwise.
|
|
|
|
PreviousPacketLength - Contains the length of the previous packet. We
|
|
will use this piece of information to guess what the length of the
|
|
next packet will be.
|
|
|
|
--*/
|
|
{
|
|
private:
|
|
|
|
RPC_CLIENT_TRANSPORT_INFO * ClientInfo;
|
|
unsigned int ConnectionClosedFlag;
|
|
unsigned int PreviousPacketLength;
|
|
|
|
public:
|
|
|
|
TRANS_CCONNECTION (
|
|
IN RPC_CLIENT_TRANSPORT_INFO * RpcClientInfo,
|
|
IN RPC_CHAR * NetworkAddress,
|
|
IN RPC_CHAR * Endpoint,
|
|
IN RPC_CHAR * NetworkOptions,
|
|
IN RPC_CHAR * RpcProtocolSequence,
|
|
OUT RPC_STATUS PAPI * ErrorCode,
|
|
IN unsigned int Timeout,
|
|
IN CLIENT_AUTH_INFO * myAuthInfo
|
|
);
|
|
|
|
~TRANS_CCONNECTION (
|
|
);
|
|
|
|
RPC_STATUS
|
|
TransReceive (
|
|
OUT void PAPI * PAPI * Buffer,
|
|
OUT unsigned int PAPI * BufferLength
|
|
);
|
|
|
|
RPC_STATUS
|
|
TransSend (
|
|
IN void PAPI * Buffer,
|
|
IN unsigned int BufferLength
|
|
);
|
|
|
|
RPC_STATUS
|
|
TransSendReceive (
|
|
IN void PAPI * SendBuffer,
|
|
IN unsigned int SendBufferLength,
|
|
OUT void PAPI * PAPI * ReceiveBuffer,
|
|
OUT unsigned int PAPI * ReceiveBufferLength
|
|
);
|
|
|
|
RPC_STATUS
|
|
TransSendReceiveWithTimeout (
|
|
IN void PAPI * SendBuffer,
|
|
IN unsigned int SendBufferLength,
|
|
OUT void PAPI * PAPI * ReceiveBuffer,
|
|
OUT unsigned int PAPI * ReceiveBufferLength,
|
|
IN DWORD dwTimeout
|
|
) ;
|
|
|
|
RPC_STATUS
|
|
TransSetTimeout (
|
|
IN long Timeout
|
|
);
|
|
|
|
unsigned int
|
|
TransMaximumSend (
|
|
);
|
|
|
|
RPC_TRANSPORT_CONNECTION
|
|
InqRpcTransportConnection (
|
|
);
|
|
|
|
unsigned int
|
|
GuessPacketLength (
|
|
);
|
|
|
|
void * operator new (
|
|
unsigned int allocBlock,
|
|
char chInit,
|
|
unsigned int xtraBytes
|
|
);
|
|
};
|
|
|
|
|
|
inline RPC_TRANSPORT_CONNECTION
|
|
TRANS_CCONNECTION::InqRpcTransportConnection (
|
|
)
|
|
/*++
|
|
|
|
Return Value:
|
|
|
|
A pointer to the transport data for this connection will be returned.
|
|
|
|
--*/
|
|
{
|
|
return((RPC_TRANSPORT_CONNECTION)
|
|
(((char *) this) + sizeof(TRANS_CCONNECTION)));
|
|
}
|
|
|
|
inline void *
|
|
TRANS_CCONNECTION::operator new (
|
|
unsigned int allocBlock,
|
|
char chInit,
|
|
unsigned int xtraBytes
|
|
)
|
|
{
|
|
I_RPC_HANDLE pvTemp = (I_RPC_HANDLE) new char[allocBlock + xtraBytes];
|
|
|
|
if (pvTemp)
|
|
{
|
|
memset(pvTemp, chInit, allocBlock + xtraBytes);
|
|
}
|
|
|
|
return(pvTemp);
|
|
}
|
|
|
|
|
|
RPC_CLIENT_TRANSPORT_INFO *
|
|
LoadableTransportClientInfo (
|
|
IN RPC_CHAR * DllName,
|
|
IN RPC_CHAR PAPI * RpcProtocolSequence,
|
|
OUT RPC_STATUS PAPI * Status
|
|
);
|
|
|
|
RPC_CLIENT_TRANSPORT_INFO PAPI *
|
|
GetLoadedClientTransportInfoFromId (
|
|
IN unsigned short TransportId
|
|
);
|
|
|
|
#endif // __TRANCLNT_HXX__
|