pushmtm/MtmCliSrvInc/PushMtmClient.h
branchRCL_3
changeset 65 8e6fa1719340
parent 0 84ad3b177aa3
--- /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 <e32std.h>
+#include <msvstd.h>
+#include <mtclbase.h>
+
+// 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.