www.pudn.com > Bluetooth_PMP_Example_v1_0.zip > Connector.h
/* * ============================================================================ * Name : CConnector from Connector.h * Part of : BluetoothPMPExample * Created : 14.01.2004 by Forum Nokia * Description: * Declares connector for application * Version : * Copyright: Nokia Corporation * ============================================================================ */ #ifndef CONNECTOR_H #define CONNECTOR_H // INCLUDES #include#include #include #include class MConnectorObserver { public: /*! * HandleConnectorDataReceivedL() * * discussion Observer interface for handling connector data reception event. */ virtual void HandleConnectorDataReceivedL(THostName aName, TDesC& aData)=0; }; class CConnector : public CActive { public: /*! * NewL() * * discussion Create new CConnector object * return a pointer to the created instance of CConnector */ static CConnector* NewL(MConnectorObserver *aObserver, RSocketServ *aSocketServ); /*! * NewLC() * */ static CConnector* NewLC(MConnectorObserver *aObserver, RSocketServ *aSocketServ); /*! * ~CConnector() * * discussion Destroy the object and release all memory objects */ ~CConnector(); /*! * ConnectL() * * discussion Creates a connection to given remote address on given port. * * param aName the name of the slave to connect to. * param aAddr the address of the slave to connect to. * param aPort the port on slave to connect to. * * return the status of connection attempt */ TRequestStatus ConnectL(THostName aName, TBTDevAddr aAddr, TInt aPort); /*! * DisconnectL() * * discussion Disconnects connector from slave. */ void DisconnectL(); /*! * SendDataL() * * discussion Sends given data to slave. * * param aData the message to send to slave. */ void SendDataL(const TDesC8& /*aData*/); protected: /*! * RunL() * * discussion Handle the active objects request completion. */ void RunL(); /*! * DoCancel() * * discussion Cancels the outstanding request on active object. */ void DoCancel(); private: /*! * CConnector() * * discussion Perform the first phase of two phase construction * * param aObserver reference to observer handling the connector events * param aSocketServ reference to socket server */ CConnector(MConnectorObserver *aObserver, RSocketServ *aSocketServ); /*! * ConstructL() * */ void ConstructL(); /*! * HandleConnectedDataReceivedL() * * discussion Handles the data received from a slave. the handling request * will be passed onto handling observer. * * param aName the name of the slave that sent the data. * param aData the data received. */ void HandleConnectorDataReceivedL(THostName aName, TDesC& aData); /*! * WaitAndReceiveL() * * discussion Wait for and receive data from slave. */ void WaitAndReceiveL(); public: // data // name of the device connector connects THostName iName; // address of the device connector connects TBTDevAddr iAddr; // port of the device connector connects TInt iPort; // connecting socket RSocket iSock; // buffer holding received data TBuf8<40> iBuffer; // length of received data TSockXfrLength iLen; // reference to observer MConnectorObserver* iObserver; // socket server handle RSocketServ *iSocketServ; // the state of the connector enum TState { ENone = 1, EConnecting, EWaiting, ESending }; TState iState; }; #endif