diff -r 000000000000 -r ff3b6d0fd310 phonesrv_plat/cbs_mcn_client_api/inc/RMcnSubSession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phonesrv_plat/cbs_mcn_client_api/inc/RMcnSubSession.h Tue Feb 02 01:11:09 2010 +0200 @@ -0,0 +1,121 @@ +/* +* Copyright (c) 2003 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: This file contains the header file of the RMcnSubSession class. +* +* Client-side MCN Subsession. Responsible for specifying topics +* to route and posting a routing request at CbsServer. +* +*/ + + +#ifndef RMCNSUBSESSION_H +#define RMCNSUBSESSION_H + +// INCLUDES +#include "CbsMcnCommon.h" + +// FORWARD DECLARATIONS +class CMcnTopicArray; +class RCbsMcnSession; + +// CLASS DECLARATION + +/** +* This class represents a MCN session with CBS server. +*/ +class RMcnSubSession + : public RSubSessionBase + { +public: // New functions + /** + * Constructor. + */ + RMcnSubSession(); + + /** + * Destructor. + */ + ~RMcnSubSession(); + + /** + * Creates a MCN subsession to CbsServer. + * + * @param aMcnSession Open MCN session + * @return Result code + */ + TInt Open( RCbsMcnSession& aMcnSession ); + + /** + * Closes the subsession. + * + * @return Result code + */ + TInt Close(); + + /** + * Request next subscribed MCN message to be delivered to this session. + * + * The delivered message will be copied into aBuffer. + * + * @param aStatus Request status, indicates the result of + * the operation. + * @param aMcnPckg MCN message package, + * includes msg and parameters + */ + void ReadMcnMessage( TRequestStatus& aStatus, TPckg& aMcnPckg ); + + /** + * Cancels an outstanding request. + * + * @return Result code from server. + */ + TInt ReadMcnMessageCancel(); + + /** + * Subscribes topics given in aArray. + * + * Leave reasons: + * KErrNoMemory Client- or server-side out-of-memory. + * Others Leave occured while accessing EPOC Telephony Sever. + * In this case, the leave reason from EPOC Telephony Sever + * is returned here. + * + * @param aArray Subscribed topics. + */ + void RegisterL( const CMcnTopicArray& aArray ); + + /** + * Clears topic subscriptions of this session in CbsServer + * + * Leaves if server reports any error. + */ + void ClearSubscriptionsL(); + +private: // Prohibited operators and methods + /// Assignment operator. + RMcnSubSession& operator=( const RMcnSubSession& ); + + /// Copy constructor. + RMcnSubSession( const RMcnSubSession& ); + +private: // Data + /// ETrue, if a connection has been established. + TBool iConnected; + }; + +#endif // RMCNSubSession_H + +// End of File + +