--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/msgerrorwatcher/inc/MsgSentItemsObserver.h Wed Nov 03 09:52:46 2010 +0530
@@ -0,0 +1,185 @@
+/*
+* 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:
+* CMsgSentItemsObserver declaration file
+*
+*/
+
+
+
+#ifndef MSGSENTITEMSOBSERVER_H
+#define MSGSENTITEMSOBSERVER_H
+
+// INCLUDES
+#include <e32base.h>
+#include <msvapi.h>
+#include <cenrepnotifyhandler.h> // link against CenRepNotifHandler.lib
+
+#include "MsgErrorWatcher.h"
+
+// FORWARD DECLARATIONS
+
+class CRepository;
+
+// CLASS DECLARATION
+
+/**
+* CMsgSentItemsObserver
+*
+* @lib msgerrorwatcher.dll
+* @since 2.0
+*/
+class CMsgSentItemsObserver : public CActive,
+ public MMsvEntryObserver,
+ public MCenRepNotifyHandlerCallback
+ {
+ public: // Constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ *
+ * @param aWatcher A pointer to CMsgErrorWatcher
+ * @param aSession A pointer to CMsvSession
+ */
+ static CMsgSentItemsObserver* NewL(
+ CMsgErrorWatcher* aWatcher,
+ CMsvSession* aSession );
+
+ /**
+ * Destructor.
+ */
+ ~CMsgSentItemsObserver();
+
+ public: // from base classes
+
+ /**
+ * From MMsvEntryObserver
+ *
+ * Call back from msg that the sent items folder has changed
+ * so check if messages need to be deleted.
+ */
+ void HandleEntryEventL(
+ TMsvEntryEvent aEvent,
+ TAny* aArg1,
+ TAny* aArg2,
+ TAny* aArg3 );
+
+ /**
+ * From MCenRepNotifyHandlerCallback
+ *
+ * Notifications from CenRep
+ */
+ void HandleNotifyInt(TUint32 aId, TInt aNewValue);
+ void HandleNotifyError(TUint32 aId, TInt error, CCenRepNotifyHandler* aHandler);
+ void HandleNotifyGeneric(TUint32 aId);
+
+ private:
+
+ enum TCleanupFlags
+ {
+ EMsvSessionOpened =0x00000001,
+ ESentItemsFolderObserverAdded =0x00000002,
+ EUserSettingsConnected =0x00000004,
+ EUserSettingsNotifierSet =0x00000010
+ };
+ private:
+
+ /**
+ * By default Symbian OS constructor is private.
+ */
+ void ConstructL();
+
+ /**
+ * Private C++ constructor.
+ *
+ * @param aWatcher A pointer to CMsgErrorWatcher
+ * @param aSession A pointer to CMsvSession
+ */
+ CMsgSentItemsObserver(
+ CMsgErrorWatcher* aWatcher,
+ CMsvSession* aSession );
+
+ /**
+ * Returns the user setting for use of the sent folder. If there
+ * is an error then the default value of ON (i.e ETrue) will
+ * be returned.
+ *
+ * @return ETrue, Sent folder is in use
+ * EFalse, Sent foler is not in use
+ */
+ TBool SentFolderIsBeingUsed();
+
+ /**
+ * Returns the user setting for max limit to the number of messages
+ * in the sent folder. If there is an error then the default value of
+ * 15 will be returned
+ *
+ * @return Maximum amount of messages in Sent folder
+ */
+ TInt SentFolderUpperLimit();
+
+ /**
+ * If there are more messages in the sent folder than the upper
+ * limit set by the user then delete the oldest messages.
+ */
+ void DeleteOldMessagesFromSentFolderL();
+
+ /**
+ * Delete the messages specified by aSelection
+ *
+ * @param aSelection Enties to be deleted
+ */
+ void DeleteMessagesFromSentFolderL( CMsvEntrySelection* aSelection );
+
+ /**
+ * Delete the messages specified by aSelection
+ * aSelection is expected to have count 1
+ * @param aSelection Enties to be deleted
+ */
+ void DeleteSingleEntryL(CMsvEntrySelection* aSelection);
+
+ private: //from CActive
+
+ /**
+ * From CActive
+ */
+ void RunL();
+
+ /**
+ * From CActive
+ */
+ void DoCancel();
+
+ private: // Data
+
+ CMsgErrorWatcher* iWatcher;
+ CMsvSession* iSession;
+ CMsvEntry* iSentItemsFolder;
+ CMsvEntry* iEntry;
+ CCenRepNotifyHandler* iNotifyHandler;
+ CRepository* iRepository;
+ TInt8 iCleanupFlags;
+ CMsvOperation* iOp;
+ TUint iRetryCounter;
+ TInt iMsgStoreDrive;
+
+ class CMsvEntrySelection* iQudUPEntryBeingDeleted;
+ class CMsvEntrySelection* iQueuedUPEntriesToBeDeleted;
+ TInt iRetryCounterIfEntryDelFailed;
+
+ };
+
+#endif // MSGSENTITEMSOBSERVER_H
+
+// End of File