diff -r 6385c4c93049 -r 8e6fa1719340 pushmtm/MtmCliSrvInc/PushMtmClient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pushmtm/MtmCliSrvInc/PushMtmClient.h Wed Sep 01 12:31:04 2010 +0100 @@ -0,0 +1,226 @@ +/* +* 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 the License "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: Client Mtm class declaration +* +*/ + + + +#ifndef PUSHMTMCLIENT_H +#define PUSHMTMCLIENT_H + +// INCLUDE FILES + +#include +#include +#include + +// FORWARD DECLARATIONS + +class CMsvOperation; +class CMsvEntrySelection; + +// CLASS DECLARATION + +/** +* Client MTM for pushed messages. +*/ +class CPushMtmClient : public CBaseMtm + { + public: // construction + + /** + * Two-phased constructor (exported factory function). + * Leaves on failure. + * @param aRegisteredMtmDll Registration data for the MTM DLL. + * @param CMsvSession Message Server Session to be used by this client. + * @return The constructed client. + */ + IMPORT_C static CPushMtmClient* NewL + ( CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aMsvSession ); + + /** + * Destructor. + */ + virtual ~CPushMtmClient(); + + private: // construction + + /** + * Constructor. + * @param aRegisteredMtmDll Registration data for the MTM DLL. + * @param CMsvSession Message Server Session to be used by this client. + */ + CPushMtmClient + ( CRegisteredMtmDll& aRegisteredMtmDll, CMsvSession& aMsvSession ); + + /** + * Second phase constructor. Derivde classes should call this first + * during construction. + */ + void ConstructL(); + + private: // from CBaseMtm + + /** + * (Not supported) Save the message. + */ + void SaveMessageL(); + + /** + * (Not supported) Load the message. + */ + void LoadMessageL(); + + /** + * Validate the current context. + * @param aPartList Message parts for which validation is requested. + * @return + * - Bitmask of the TMsvPartList IDs for each invalid part, or + * - KErrNone if all parts are valid. + */ + TMsvPartList ValidateMessage( TMsvPartList aPartList ); + + /** + * (Not supported) Find text in the current context. + * @param aTextToFind Text to find. + * @param aPartList Message parts to search. + * @return 0 (not supported). + */ + TMsvPartList Find + ( const TDesC& aTextToFind, TMsvPartList aPartList ); + + /** + * (Not supported) Create a reply to the current context. + * @param aReplyEntryId The entry to which to assign the reply. + * @param aPartList Message parts to include in the reply. + * @param aCompletionStatus Completion request status. + * @return A completed operation with status KErrNotSupported. + */ + CMsvOperation* ReplyL + ( + TMsvId aReplyEntryId, + TMsvPartList aPartlist, + TRequestStatus& aCompletionStatus + ); + + /** + * (Not supported) Create a reply to the current context. + * @param aReplyEntryId The entry to which to assign the forwarded + * message. + * @param aPartList Message parts to include in the forwarded message. + * @param aCompletionStatus Completion request status. + * @return A completed operation with status KErrNotSupported. + */ + CMsvOperation* ForwardL + ( + TMsvId aForwardEntryId, + TMsvPartList aPartList, + TRequestStatus& aCompletionStatus + ); + + /** + * (Not supported) Add an addressee. + * @param aRealAddress Real address. + * @throw KErrNotSupported The specified function is not supported. + */ + void AddAddresseeL( const TDesC& aRealAddress ); + + /** + * (Not supported) Add an addressee. + * @param aRealAddress Real address. + * @param aAlias Alias information. + * @throw KErrNotSupported The specified function is not supported. + */ + void AddAddresseeL( const TDesC& aRealAddress, + const TDesC& aAlias ); + + /** + * (Not supported) Remove an addressee. + * @param aIndex Index of addressee. + */ + void RemoveAddressee( TInt aIndex ); + + /** + * Call CBaseMtmUiData::QueryCapability. + * @param aCapability UID of capability to be queried. + * @param aResponse Response value. + * @return + * - KErrNone: aCapability is a recognised value + * and a response is returned. + * - KErrNotSupported: aCapability is not a recognised value. + */ + TInt QueryCapability( TUid aCapability, TInt& aResponse ); + + /** + * Invoke synchronous functions. + * Supported function(s): + * - EPushMtmCmdCollectGarbage Deleting expired SIs + * @param aFunctionId ID of the requested operation. + * @param aSelection Selection of message entries to operate on. + * EPushMtmCmdFetchContent does not use it. It operates on the + * current MTM context. + * EPushMtmCmdCollectGarbage uses it. If it is not empty, then + * the first element is used as folder specifier, otherwise + * if the list s empty then KMsvNullIndexEntryId is passed to + * the GC operation. + * @param aParameter Ignored. + * @return None. + * @throw KErrNotSupported The specified function is not supported. + */ + void InvokeSyncFunctionL + ( + TInt aFunctionId, + const CMsvEntrySelection& aSelection, + TDes8& aParameter + ); + + /** + * Invoke asynchronous operation. + * Supported functions: + * - EPushMtmCmdFetchContent (SL specific!) + * - EPushMtmCmdCollectGarbage Deleting expired SIs + * @param aFunctionId ID of the requested operation. + * @param aSelection Selection of message entries to operate on. + * EPushMtmCmdFetchContent does not use it. It operates on the + * current MTM context. + * EPushMtmCmdCollectGarbage uses it. If it is not empty, then + * the first element is used as folder specifier, otherwise + * if the list s empty then KMsvNullIndexEntryId is passed to + * the GC operation. + * @param aParameter Buffer containing input and output parameters. + * @param aCompletionStatus Completion status. + * @return + * - If successful, an asynchronously completing operation. + * - If failed, a completed operation, with status set to the + * relevant error code. + * @throw KErrNotSupported The specified function is not supported. + */ + CMsvOperation* InvokeAsyncFunctionL + ( + TInt aFunctionId, + const CMsvEntrySelection& aSelection, + TDes8& aParameter, + TRequestStatus& aCompletionStatus + ); + + /** + * Context changed callback function. It does nothing. + */ + void ContextEntrySwitched(); + }; + +#endif // PUSHMTMCLIENT_H + +// End of file.