--- /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