diff -r 000000000000 -r 1bce908db942 multimediacommsengine/mmcefloorctrlplugin/inc/fctbcpfloorcontrolimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/multimediacommsengine/mmcefloorctrlplugin/inc/fctbcpfloorcontrolimpl.h Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,186 @@ +/* +* Copyright (c) 2005-2006 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: fctbcpfloorcontrolimpl.h +* +*/ + + + + +#ifndef __CTBCPFLOORCONTROLIMPL_H__ +#define __CTBCPFLOORCONTROLIMPL_H__ + +// INCLUDES +#include +#include +#include +#include +#include "fcconnectioncontainer.h" +#include "fcsender.h" +#include "fcreceiver.h" +#include "fcmessageobserver.h" +#include "fcconnectionnotifier.h" +#include "fcnotifier.h" +#include "fcinterface.h" + +_LIT8(KTBCP, "TBCP"); + +// FORWARD DECLARATIONS +class MFCMessageObserver; +class CFCConnectionContainer; +class CFCSender; +class CFCReceiver; + +/** + * Class provides functions for connecting, sending and receiving + * + * CTBCPFloorControlImpl Class provides functions for Sending + * + * @lib FCTBCP.lib + * @since S60 v3.0 + */ +class CTBCPFloorControlImpl : public CFCInterface, + public MFCConnectionNotifier, public MFCNotifier + { + public: + /** + * Constructs an object; leaves on failure. + * @param aInitParams an interface for requesting floor control events + * @return new instance + */ + static CTBCPFloorControlImpl* NewL(TAny* aInitParams); + + /** + * Destructor + */ + ~CTBCPFloorControlImpl(); + + public: //From MFCPlugIn + /** + * Gets supported Floor contrl PlugIn Name (e.g. TBCP); + * @return supported Floor control plugins name + * + */ + const TDesC8& Name () const; + + /** + * Sends the Data to the predefined addresses + * @param aData, sending via this plugIn + * + */ + void SendToNetL(HBufC8* aData); + + /** + * Opens the connection with the predefined IAP id and socket server + */ + void ConnectL(TBool aReceiver); + + /** + * Sets IAPID + * @param aIapId + * + */ + void SetIapId(TUint32 aIapId); + + /** + * Sets Specified Address and Port which will connect to + * @param aAddr, aRemote Addr + * @param aPort, aRemote Port + */ + void SetAddressL(const TDesC& aAddr, TUint aPort); + + /** + * Sets Specified Local Port + * @param aPort, aLocal Port + */ + void SetLocalPort(TUint aPort); + + /** + * Stops the connection, Sending and Receving + * Socket is not closed yet + */ + void Stop(); + + public: //FRom MFCConnectionNotifier + /** + * CallBack function for ConnectionConainer + * @param aError, aError for the connection status + */ + void ConnectionStarted( TInt aError ); + + /** + * function for ConnectionStarted + * @param aError, aError for the connection status + */ + void ConnectionStartedL(TInt aError); + + public: // From MFCNotifier + /** + * CallBack function for Sending and Receiving + * @param aError, aError for the sending status + */ + void ErrorNotify( TInt aErrCode); + + /** + * Receives the Data from predefined addr and port + * @param aData, Receving Data + */ + void ReceivedData(HBufC8* aData); + + private: // New functions + + /** + * Starts to Listen to the predefined Addr and Port + */ + void StartListen(); + + /** + * Socket is reset and open again + */ + void ResetSocketL(); + + /** + * CancelSending + */ + void CancelSend(); + + private: + /** + * Constructor + * @param aObserver, MFCMessageObserver + * @return An initialized instance of this class. + */ + CTBCPFloorControlImpl(MFCMessageObserver &aObserver); + + void ConstructL(); + + private://data + RSocketServ iSocketServ; + RSocket iSocket; + CFCSender* iSender; + CFCReceiver* iReceiver; + CFCConnectionContainer* iConnection; + MFCMessageObserver& iMsgObserver; + TUint32 iIapId; + TInetAddr iRemoteAddr; + TUint iLocalPort; + TBool iStartListen; + + private: // For testing purposes + friend class UT_CTBCPFloorControlImpl; + }; + +#endif // end of __CTBCPFLOORCONTROLIMPL_H__ + +// End of File