diff -r ebe688cedc25 -r 7fdbb852d323 messagingappbase/ncnlist/inc/CNcnSession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/ncnlist/inc/CNcnSession.h Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,141 @@ +/* +* Copyright (c) 2002 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: Server session class. +* +*/ + + + +#ifndef __CNCNSESSION_H__ +#define __CNCNSESSION_H__ + +// INCLUDES +#include + +// ENUMERATIONS +enum TNcnSessionPanic + { + EPanicNcnRequestActive + }; + +// FORWARD DECLARATIONS +class MNcnNotificationObserver; + +// CLASS DECLARATION + +/** + * Server session class for handling client messages from + * NCN Notification API. + * + */ +class CNcnSession : public CSession2 + { + public: // Constructor and destructor + + /** + * Two-phased constructor. + * + * @return CNcnSession object + */ + static CNcnSession* NewL( MNcnNotificationObserver& aObserver ); + + /** + * Destructor. + */ + ~CNcnSession(); + + public: // From CSession2 + + void ServiceL( const RMessage2 &aMessage ); + + private: + + void ServiceNewInternalMessages1L( const RMessage2& aMessage ); + + void ServiceNewInternalMessages2L( const RMessage2& aMessage ); + + void ServiceInternalMarkUnread1L( const RMessage2& aMessage ); + + void ServiceInternalMarkUnread2L( const RMessage2& aMessage ); + + void ServiceNewMessages1L( const RMessage2& aMessage ); + + void ServiceMarkUnread1L( const RMessage2& aMessage ); + + void CancelRequest(); + + /** + * Completes and resets a request message, if any. + * After completion message is reset. + * @param aError Completion error code. + */ + void CompleteRequestMessage( TInt aError ); + + /** + * Sets the current request message. + * @param aMessage + */ + void SetRequestMessage( const RMessage2& aMessage ); + + /** + * Return ETrue if there is a pending request. + * @return ETrue if there is a pending request. + */ + TBool IsRequestPending() const; + + /** + * Service implementation. + * @param aMessage Request message. + */ + void HandleServiceL( const RMessage2& aMessage ); + + /** + * Internal mark unread service implementation. + * @param aMessage Request message. + */ + void HandleMarkUnreadServiceL( const RMessage2& aMessage ); + + /** + * Panics the client with specified panic code. + * @param aMessage The request message. + * @param aPanic Panic code. + */ + void PanicClient( const RMessage2& aMessage, TNcnSessionPanic aPanic ); + + private: + + /** + * C++ default constructor. + */ + CNcnSession( MNcnNotificationObserver& aObserver ); + + /** + * Constructor, second phase + */ + void ConstructL(); + + private: // data + + MNcnNotificationObserver& iObserver; + + /** + * Pointer to request message. + */ + RMessagePtr2 iRequestMessage; + }; + + +#endif // __CNCNSESSION_H__ + +// End of File