Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

182 lines
10 KiB

#ifdef ENABLE_PC
/****************************************************************************/
/* */
/* ERNCPC.HPP */
/* */
/* Physical Connection class for the Reference System Node Controller. */
/* */
/* Copyright Data Connection Ltd. 1995 */
/* */
/****************************************************************************/
/* Changes: */
/* */
/* 16Jun95 NFC Created. */
/* */
/****************************************************************************/
#ifndef __ERNCPC_HPP_
#define __ERNCPC_HPP_
#include "events.hpp"
/****************************************************************************/
/* */
/* CONSTANTS */
/* */
/****************************************************************************/
/****************************************************************************/
/* States */
/****************************************************************************/
typedef enum
{
PC_ST_UNINITIALIZED,
PC_ST_CONNECTING,
PC_ST_CONNECTED,
PC_ST_DISCONNECTING,
PC_ST_REMOVED,
}
PC_STATE;
/****************************************************************************/
/* Return codes */
/****************************************************************************/
#define PC_RC_BAD_STATE 1
#define PC_RC_INTERNAL_ERROR 3
class CONFERENCE;
class PC_MANAGER;
class DCRNCPhysicalConnection : public CRefCount, public CPendingEventList
{
friend class PC_MANAGER;
friend class NCUI;
protected:
/************************************************************************/
/* State of this connection. */
/************************************************************************/
PC_STATE conState;
BOOL bDisconnectPending;
/************************************************************************/
/* Address we are calling/connected to. */
/************************************************************************/
RNC_NODE_DETAILS UserNodeDetails;
UINT asymmetry_type;
public:
/************************************************************************/
/* FUNCTION: DCRNCPhysicalConnection Constructor. */
/* */
/* DESCRIPTION: */
/* */
/* This is the constructor for physical connection class. */
/* */
/* This function */
/* - saves the supplied transport drivers. */
/* */
/* PARAMETERS: */
/* */
/* pManager - pointer to the physical connection manager class. */
/* */
/* pSuccess - pointer to BOOL holding result of constructor on return. */
/* */
/* RETURNS: */
/* */
/* Nothing (result is returned in the pSuccess parameter). */
/* */
/************************************************************************/
DCRNCPhysicalConnection(PRNC_NODE_DETAILS pNodeDetails,
UINT _asymmetry_type,
PBOOL pSuccess);
/************************************************************************/
/* FUNCTION: DCRNCPhysicalConnection Destructor. */
/* */
/* DESCRIPTION: */
/* */
/* This is the destructor for the transport driver wrapper clas. */
/* */
/* PARAMETERS: */
/* */
/* None. */
/* */
/* RETURNS: */
/* */
/* Nothing. */
/* */
/************************************************************************/
virtual ~DCRNCPhysicalConnection();
void AddRefEvent(CEvent * pEvent);
/*
* The Core does not currently do anything with the status we report.
* We leave the code though, in case it starts using the status info
* we provide. See file erncpc.cpp
*/
void ReportStatus(PC_STATE _conState, NCSTATUS Reason = NO_ERROR) { conState = _conState; };
UINT AsymmetryType() {return asymmetry_type;};
/************************************************************************/
/* FUNCTION: Connect(). */
/* */
/* DESCRIPTION: */
/* */
/* This function is called to start this physical connection. */
/* */
/* PARAMETERS: */
/* */
/* RETURNS: */
/* */
/************************************************************************/
void Connect();
/************************************************************************/
/* FUNCTION: Disconnect(). */
/* */
/* DESCRIPTION: */
/* */
/* This function is called to end this physical connection. */
/* */
/* PARAMETERS: */
/* */
/* None. */
/* */
/* RETURNS: */
/* */
/************************************************************************/
NCSTATUS Disconnect(void);
/************************************************************************/
/* FUNCTION: GetNodeDetails */
/* */
/* DESCRIPTION: */
/* */
/* This function returns details of the node that this physical */
/* connection refers to. */
/* */
/* PARAMETERS: */
/* */
/* Pointer to hold the node details on return. */
/* */
/* RETURNS: */
/* */
/* None. */
/* */
/************************************************************************/
PRNC_NODE_DETAILS GetUserNodeDetails();
PRNC_NODE_DETAILS GetTransportNodeDetails() { return &UserNodeDetails; };
};
/****************************************************************************/
/* MACROS */
/****************************************************************************/
#endif /* __ERNCPC_HPP_ */
#endif // ENABLE_PC