Msrp/MsrpServer/inc/CMSRPConnection.h
branchMSRP_FrameWork
changeset 25 505ad3f0ce5c
child 58 cdb720e67852
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Msrp/MsrpServer/inc/CMSRPConnection.h	Sat Jun 12 14:30:11 2010 +0530
@@ -0,0 +1,134 @@
+/*
+* 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 CMSRPCONNECTION_H
+#define CMSRPCONNECTION_H
+
+// INCLUDES
+
+#include "MMSRPConnector.h"
+#include "MMSRPConnection.h"
+#include "MMSRPReader.h"
+#include "MMSRPReaderObserver.h"
+#include "MMSRPParser.h"
+#include "MMSRPWriter.h"
+#include "MMSRPConnectionObserver.h"
+#include "MMSRPTimeOutObserver.h"
+#include "CMSRPTimeOutTimer.h"
+
+// FORWARD DECLARATIONS
+class CMSRPMessageHandler;
+class MMSRPConnection;
+class MMSRPConnectionObserver;
+class MMSRPReaderObserver;
+class MMSRPWriterObserver;
+class MMSRPReader;
+class MMSRPConnectionManager;
+
+// CLASS DECLARATION
+
+/**
+*  MSRP Connection Manager
+*/
+class CMSRPConnection : public CBase, public MMSRPConnection, public MMSRPConnectorObserver, 
+							 public MMSRPReaderObserver, public MMSRPParserObserver, 
+							 public MMSRPWriterErrorObserver, public MMSRPTimeOutObserver
+    {
+	public:
+
+	    // Constructors and destructor
+	    
+	    static MMSRPConnection* NewL( TInetAddr& aRemoteAddr, MMSRPConnectionManager& aConnMngr);
+	    
+        virtual ~CMSRPConnection();
+
+    public: // Functions from base classes
+
+		// From MMSRPConnection
+        virtual TBool CheckConnection(TInetAddr& aRemoteAddr, TBool aOnlyListen);
+           
+        virtual TInt ConnectL(MMSRPConnectionObserver& aSubsession);
+        
+        virtual TInt ListenL(MMSRPConnectionObserver& aSubsession);
+
+        virtual void ReleaseConnection(MMSRPConnectionObserver& aSubsession);
+                                    
+        virtual void SendL( MMSRPWriterObserver& aMsg /*, MMSRPConnectionObserver& aSubsession*/  );
+                                                             
+        virtual void ConnectionEstablishedL( TInt aNewState, RSocket* aSocket, TInt aStatus );
+
+		virtual TInt getConnectionState();
+        
+        //from MMSRPConnectorObserver 
+        
+        //virtual void ConnectionEstablishedL( TInt aNewState, RSocket* aDataSocket, TInt aStatus );
+        
+        //from MMSRPReaderObserver
+
+        virtual void ReadStatusL(RMsrpBuf& aBuf, TInt aStatus);
+        
+        //from MMSRPParserObserver
+        virtual void ParseStatusL (CMSRPMessageHandler* aMsg, TInt aStatus);
+                                        
+        //from MMSRPWriterErrorObserver
+        virtual void WriteSocketError(TInt aError);
+        
+        //from timeout
+        void TimerExpiredL();
+        
+
+	private: // constructor
+
+        CMSRPConnection(TInetAddr& aRemoteAddr, MMSRPConnectionManager& aConnMngr );
+
+        void ConstructL( );
+        
+        void Remove(MMSRPConnectionObserver* aSubsession);
+        
+        void NotifyAllL(TInt aNewState, TInt aStatus );
+        
+        void CloseConnection( );
+
+
+	private: // data
+		
+		TInetAddr iHostAddress;
+		
+		MMSRPConnectionManager& iConnMngr;
+		
+		TInt iConnectionState;
+		
+		RPointerArray<MMSRPConnectionObserver> iSubsessions;
+		
+		MMSRPConnector* iConnector; 
+		
+		MMSRPReader* iReader;
+		
+		MMSRPParser* iParser;
+		
+		MMSRPWriter* iWriter;
+		
+		CMSRPBufPool iBufPool;
+										
+		RSocket* iSocket;
+		
+		CMSRPTimeOutTimer*  iListenTimer;
+
+    };
+
+#endif      // CMSRPCONNECTION_H
+
+// End of File