diff -r f1578314b8da -r 505ad3f0ce5c Msrp/MsrpServer/inc/CMSRPConnection.h --- /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 iSubsessions; + + MMSRPConnector* iConnector; + + MMSRPReader* iReader; + + MMSRPParser* iParser; + + MMSRPWriter* iWriter; + + CMSRPBufPool iBufPool; + + RSocket* iSocket; + + CMSRPTimeOutTimer* iListenTimer; + + }; + +#endif // CMSRPCONNECTION_H + +// End of File