Msrp/MsrpServer/inc/CMSRPConnectionManager.h
branchMSRP_FrameWork
changeset 25 505ad3f0ce5c
child 58 cdb720e67852
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Msrp/MsrpServer/inc/CMSRPConnectionManager.h	Sat Jun 12 14:30:11 2010 +0530
@@ -0,0 +1,118 @@
+/*
+* Copyright (c) 2009-2010 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:
+* MSRP Implementation
+*
+*/
+
+#ifndef CMSRPCONNECTIONMANAGER_H
+#define CMSRPCONNECTIONMANAGER_H
+
+// INCLUDES
+#include "MMSRPConnectionManager.h"
+#include "MMSRPConnectionManagerObserver.h"
+#include "MMSRPListenerObserver.h"
+#include "MMSRPListener.h"
+#include "MMSRPConnection.h"
+
+
+// FORWARD DECLARATIONS
+class MMSRPConnectionManagerObserver;
+class MMSRPConnection;
+
+// CLASS DECLARATION
+
+/**
+*  MSRP Connection Manager
+*/
+class CMSRPConnectionManager : public CBase, public MMSRPConnectionManager
+										, public MMSRPListenerObserver
+    {
+    
+    public:  
+        
+    /* Constructors and destructor*/
+    
+        static CMSRPConnectionManager* NewL( const TUint32 aIapID, MMSRPConnectionManagerObserver& aServer );
+        
+        virtual ~CMSRPConnectionManager();
+
+
+    /*Functions from base classes*/   
+        /* from MMSRPConnectionManager*/
+        
+        virtual void ResolveLocalIPAddressL( TInetAddr& aLocalAddr );
+       
+        virtual MMSRPConnection& getConnectionL( TDesC8& aHost, TUint aPort );
+          
+        
+     //called by conn   
+        virtual void ListenL(MMSRPConnection* aConnection);
+        
+        virtual void ListenCancel(MMSRPConnection* aConnection);
+        
+        virtual void Remove(MMSRPConnection* aConnection);
+	    
+        virtual RSocketServ& SocketServer();	            
+	    
+        virtual RConnection& SocketServerConn() ;        
+        
+        //virtual TBool MatchIapId(TUint32 aIapID);
+        
+        
+        /* from MMSRPListenerObserver  */
+        virtual void ListenerStateL( TInt aNewState, RSocket* aDataSocket, TInt aStatus );
+                
+        
+
+	private: 
+	    
+    // internal functions
+	    /**
+	     *  remote address resolution
+	     */
+	    void ResolveIPAddressL( const TDesC8& aHost, TInetAddr& aAddress );
+	    
+	    /**
+	     * check if we have a connection to the same host and port
+	     */
+	    MMSRPConnection* CheckConnection( TInetAddr& aHostAddress ,TBool aListenOnly);
+	    
+	    /**
+	     * start up the connection on iap 
+	     */
+	    TInt StartInterface();
+	    
+
+	// constructors
+
+	    CMSRPConnectionManager( const TUint32 aIapID, MMSRPConnectionManagerObserver& aServer );
+        
+        void ConstructL();
+
+	private: // data
+
+	    RPointerArray<MMSRPConnection> iConnectionArray;
+		MMSRPListener* iConnListener;
+				
+		RSocketServ       iSocketServer;
+		RConnection       iConnection;	
+		RHostResolver     iHostResolver;
+		TUint32           iIapID;
+		TInetAddr         iLocalAddr;
+		
+		MMSRPConnectionManagerObserver& iObserver;
+    };
+
+#endif      // CMSRPCONNECTIONMANAGER_H
+
+// End of File