--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/pop3andsmtpmtm/imapservermtm/src/IMPSUTIL.CPP Mon May 03 12:29:07 2010 +0300
@@ -0,0 +1,103 @@
+// Copyright (c) 1998-2009 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:
+// IMAP4 utils.
+//
+//
+
+#include <e32base.h>
+#include <msvstd.h>
+#include <miuthdr.h>
+#include <imcvutil.h>
+#include <msventry.h>
+#include <logwrap.h>
+
+#include "impsutil.h"
+
+CImap4Utils* CImap4Utils::NewL(CMsvServerEntry* aEntry)
+ {
+ CImap4Utils* self=new (ELeave) CImap4Utils();
+ CleanupStack::PushL(self);
+ self->ConstructL(aEntry);
+ CleanupStack::Pop();
+ return self;
+ }
+
+CImap4Utils::~CImap4Utils()
+ {
+ delete iLogMessage;
+ }
+
+void CImap4Utils::ConstructL(CMsvServerEntry* aEntry)
+ {
+ iEntry = aEntry;
+
+ // get the logger (discard errors)
+ TRAPD(err,iLogMessage=CImLogMessage::NewL(iEntry->FileSession()));
+ }
+
+void CImap4Utils::ClearLogMessage()
+ {
+ if (iLogMessage)
+ iLogMessage->LogEvent().SetLink(KLogNullLink);
+ }
+
+// Helper function to set up the iLogEntry object
+void CImap4Utils::SetUpLogMessageL(TMsvId aId)
+ {
+ if (iLogMessage)
+ {
+ TBuf<KLogMaxSharedStringLength> string;
+
+ // if the entry isn't there then setup what we can of the log
+ // message anyway
+ if (iEntry->SetEntry(aId) == KErrNone)
+ {
+ TMsvEmailEntry entry = iEntry->Entry();
+ iLogMessage->LogEvent().SetRemoteParty(entry.iDetails);
+ iLogMessage->LogEvent().SetSubject(entry.iDescription);
+ }
+ else
+ {
+ iLogMessage->GetString(string, R_LOG_REMOTE_UNKNOWN);
+ iLogMessage->LogEvent().SetRemoteParty(string);
+
+ iLogMessage->GetString(string, R_LOG_SUBJECT_NONE);
+ iLogMessage->LogEvent().SetSubject(string);
+ }
+
+ // Set up the log event.
+ iLogMessage->LogEvent().SetEventType(KLogMailEventTypeUid);
+
+ iLogMessage->GetString(string, R_LOG_DIR_FETCHED);
+ iLogMessage->LogEvent().SetDirection(string);
+
+ iLogMessage->LogEvent().SetLink(aId);
+ }
+ }
+
+// Send the log message set up by SetUpLogMessageL()
+TBool CImap4Utils::SendLogMessageL(TInt aError, TRequestStatus &aStatus)
+ {
+ if (iLogMessage && iLogMessage->LogEvent().Link() != KLogNullLink)
+ {
+ // Run the iLogMessage operation.
+ iLogMessage->Start(aError, aStatus);
+
+ return ETrue;
+ }
+
+ return EFalse;
+ }
+
+// eof IMPSUTIL.CPP