103 lines
2.3 KiB
C++
103 lines
2.3 KiB
C++
|
/**********************************************************************/
|
||
|
/** Microsoft Windows NT **/
|
||
|
/** Copyright(c) Microsoft Corp., 1993 **/
|
||
|
/**********************************************************************/
|
||
|
|
||
|
/*
|
||
|
aap.hxx
|
||
|
|
||
|
This file contains the global declarations for the Asynchronous
|
||
|
Accept Pool package.
|
||
|
|
||
|
The Asynchronous Accept Pool (AAP) package enables applications
|
||
|
requiring incoming data connections to operate as well behaved
|
||
|
citizens of the Asynchronous Thread Queue (ATQ) environment.
|
||
|
|
||
|
|
||
|
FILE HISTORY:
|
||
|
KeithMo 01-Mar-1995 Created.
|
||
|
|
||
|
*/
|
||
|
|
||
|
|
||
|
#ifndef _AAP_HXX_
|
||
|
#define _AAP_HXX_
|
||
|
|
||
|
|
||
|
//
|
||
|
// AAP_HANDLE is an opaque pointer to an AAP_CONTEXT structure.
|
||
|
//
|
||
|
|
||
|
typedef struct _AAP_CONTEXT * AAP_HANDLE;
|
||
|
|
||
|
//
|
||
|
// LPAAP_CALLBACK is a pointer to an AAP callback. The callback
|
||
|
// receives the following parameters:
|
||
|
//
|
||
|
// UserContext - A user-specified context value associated
|
||
|
// with a given AAP_HANDLE.
|
||
|
//
|
||
|
// SocketStatus - The status of the accept operation. This
|
||
|
// will either be 0 (success) or one of the WSA* error
|
||
|
// codes.
|
||
|
//
|
||
|
// The remaining parameters are only valid if SocketStatus
|
||
|
// is zero.
|
||
|
//
|
||
|
// AcceptedSocket - The new connected socket returned by the
|
||
|
// accept() API. It is the callback's responsibility to
|
||
|
// close this socket.
|
||
|
//
|
||
|
// RemoteAddress - The address of the remote connecting client.
|
||
|
//
|
||
|
// RemoteAddressLength - The length (in BYTEs) of RemoteAddress.
|
||
|
//
|
||
|
// The callback returns TRUE if it wants additional callbacks on
|
||
|
// the current listening socket.
|
||
|
//
|
||
|
|
||
|
typedef BOOL (* LPAAP_CALLBACK)( LPVOID UserContext,
|
||
|
SOCKERR SocketStatus,
|
||
|
SOCKET AcceptedSocket,
|
||
|
LPSOCKADDR RemoteAddress,
|
||
|
INT RemoteAddressLength );
|
||
|
|
||
|
|
||
|
//
|
||
|
// Public prototypes.
|
||
|
//
|
||
|
|
||
|
APIERR
|
||
|
AapInitialize(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
AapTerminate(
|
||
|
VOID
|
||
|
);
|
||
|
|
||
|
AAP_HANDLE
|
||
|
AapAcquire(
|
||
|
LPAAP_CALLBACK AapCallback,
|
||
|
LPVOID UserContext
|
||
|
);
|
||
|
|
||
|
VOID
|
||
|
AapRelease(
|
||
|
AAP_HANDLE AapHandle
|
||
|
);
|
||
|
|
||
|
APIERR
|
||
|
AapAccept(
|
||
|
AAP_HANDLE AapHandle
|
||
|
);
|
||
|
|
||
|
APIERR
|
||
|
AapAbort(
|
||
|
AAP_HANDLE AapHandle
|
||
|
);
|
||
|
|
||
|
#endif // _AAP_HXX_
|
||
|
|