multimediacommsengine/mmcefloorctrlplugin/inc/fctbcpfloorcontrolimpl.h
changeset 0 1bce908db942
--- /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 <e32base.h>
+#include <e32std.h>
+#include <e32def.h>
+#include <in_sock.h>
+#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