--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pushmtm/MtmCliSrvInc/PushMtmClient.h Mon Mar 30 12:49:49 2009 +0300
@@ -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.