--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/meetingrequest/mrmbutilsextension/src/cmrmbutilsextensionimpl.cpp Wed Mar 31 21:08:33 2010 +0300
@@ -0,0 +1,179 @@
+/*
+* Copyright (c) 2008 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: MBUtils ECOM implementation
+*
+*/
+
+//INCLUDE FILES
+#include "cmrmbutilsextensionimpl.h"
+#include "cmrmbutilsmailboxlistener.h"
+#include "cmrmbutilssettings.h"
+#include "CFSMailClient.h"
+
+#include "emailtrace.h"
+
+#include <ct/rcpointerarray.h>
+#include <cmrmailboxutils.h>
+
+// ----------------------------------------------------------------------------
+// CMRMbUtilsExtensionImpl::CMRMbUtilsExtensionImpl
+//
+// Constructor.
+// ----------------------------------------------------------------------------
+//
+CMRMbUtilsExtensionImpl::CMRMbUtilsExtensionImpl(
+ MMRMailboxUtilsObserver& aObserver )
+: iMRMailboxObserver( aObserver )
+ {
+ // No implementation
+ }
+
+// ----------------------------------------------------------------------------
+// CMRMbUtilsExtensionImpl::~CMRMbUtilsExtensionImpl
+//
+// Destructor.
+// ----------------------------------------------------------------------------
+//
+CMRMbUtilsExtensionImpl::~CMRMbUtilsExtensionImpl()
+ {
+ FUNC_LOG;
+
+ iMailboxes.ResetAndDestroy();
+
+ if ( iMailClient )
+ {
+ iMailClient->RemoveObserver( *iMailboxListener );
+ iMailClient->Close();
+ }
+
+ delete iSettings;
+ delete iMailboxListener;
+ }
+
+// ----------------------------------------------------------------------------
+// CMRMbUtilsExtensionImpl::NewL
+// ----------------------------------------------------------------------------
+//
+CMRMbUtilsExtensionImpl* CMRMbUtilsExtensionImpl::NewL(
+ TAny* aMRMailboxObserver )
+ {
+ FUNC_LOG;
+
+ MMRMailboxUtilsObserver* mrMailboxObserver =
+ static_cast<MMRMailboxUtilsObserver*>( aMRMailboxObserver );
+
+ CMRMbUtilsExtensionImpl* self =
+ new (ELeave) CMRMbUtilsExtensionImpl( *mrMailboxObserver );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ----------------------------------------------------------------------------
+// CMRMbUtilsExtensionImpl::ConstructL
+// ----------------------------------------------------------------------------
+//
+void CMRMbUtilsExtensionImpl::ConstructL()
+ {
+ FUNC_LOG;
+
+ iMailClient = CFSMailClient::NewL();
+
+ iMailboxListener =
+ CMRMBUtilsMailboxListener::NewL(
+ iMailboxes,
+ *iMailClient,
+ iMRMailboxObserver );
+
+ iSettings = CMRMBUtilsSettings::NewL( *iMailClient );
+
+ iMailClient->AddObserverL( *iMailboxListener );
+ }
+
+// ----------------------------------------------------------------------------
+// CMRMbUtilsExtensionImpl::SettingsMgr
+// ----------------------------------------------------------------------------
+//
+MMRMBUtilsSettings* CMRMbUtilsExtensionImpl::SettingsMgr()
+ {
+ return iSettings;
+ }
+
+// ----------------------------------------------------------------------------
+// CMRMbUtilsExtensionImpl::MRMailBoxes
+// ----------------------------------------------------------------------------
+//
+const RPointerArray<CMRMailBoxInfo>&
+ CMRMbUtilsExtensionImpl::MRMailBoxes() const
+ {
+ FUNC_LOG;
+
+ return iMailboxes;
+ }
+
+// ----------------------------------------------------------------------------
+// CMRMbUtilsExtensionImpl::NewL
+// ----------------------------------------------------------------------------
+//
+const CMRMailBoxInfo* CMRMbUtilsExtensionImpl::MRMailBoxInfoL(
+ TInt aEntryId ) const
+ {
+ FUNC_LOG;
+
+ const CMRMailBoxInfo* KInfo = NULL;
+
+ TInt mailboxCount( iMailboxes.Count() );
+ for ( TInt i(0); i < mailboxCount && !KInfo; ++i )
+ {
+ if ( aEntryId == iMailboxes[i]->EntryId() )
+ {
+ KInfo = iMailboxes[i];
+ }
+ }
+ return KInfo;
+ }
+
+// ----------------------------------------------------------------------------
+// CMRMbUtilsExtensionImpl::ListMRMailBoxesL
+// ----------------------------------------------------------------------------
+//
+void CMRMbUtilsExtensionImpl::ListMRMailBoxesL(
+ RArray<CMRMailboxUtils::TMailboxInfo>& aMailBoxes )
+ {
+ FUNC_LOG;
+
+ TInt mailboxCount( iMailboxes.Count() );
+ for ( TInt i(0); i < mailboxCount; ++i )
+ {
+ CMRMailboxUtils::TMailboxInfo info;
+ info.iName.Set( iMailboxes[i]->Name() );
+ info.iEmailAddress.Set( iMailboxes[i]->Address() );
+ info.iMtmUid = iMailboxes[i]->MtmUid();
+ info.iEntryId = iMailboxes[i]->EntryId();
+
+ aMailBoxes.Append( info );
+ }
+ }
+
+// ----------------------------------------------------------------------------
+// CMRMbUtilsExtensionImpl::ExtensionL
+// ----------------------------------------------------------------------------
+//
+TAny* CMRMbUtilsExtensionImpl::ExtensionL( TUid /*aExtensionUid*/ )
+ {
+ return NULL;
+ }
+
+// EOF