--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/javaextensions/pim/cntadapter/src.s60/cpimcmadapteraccess.cpp Tue Apr 27 16:30:29 2010 +0300
@@ -0,0 +1,160 @@
+/*
+* 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: Provides access to Contacts Model adapter
+ *
+*/
+
+
+// INCLUDE files
+#include "cpimcmadapteraccess.h"
+#include "cpimcmadaptermanager.h"
+#include "cpimcontactlistadapter.h"
+#include "mpimlocalizationmanager.h"
+#include "mpimlocalizationdata.h"
+#include "pimlocalizationids.h"
+#include "logger.h"
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+const CDesCArray& CPIMCMAdapterAccess::ListNamesL(const TPIMListType aListType)
+{
+ JELOG2(EPim);
+ if (aListType == EPIMContactList)
+ {
+ return *iContactListNames;
+ }
+ else
+ {
+ // no Event or ToDo lists
+ return *iNoListNames;
+ }
+}
+
+TBool CPIMCMAdapterAccess::OpenContactListL(const TDesC* aListName,
+ MPIMContactAdapterManager** aRetAdapterManager,
+ MPIMContactListAdapter** aRetListAdapter,
+ MPIMLocalizationData** aRetLocalizationData)
+{
+ JELOG2(EPim);
+ // There is exactly one Contact list, which is the default contact list.
+
+ // If name is given, check that it matches the existing list name
+ if (aListName && (*aListName != (*iContactListNames)[0]))
+ {
+ // Not found
+ return EFalse;
+ }
+
+ // OK, got this far - Open the Contact list
+
+ CPIMCMAdapterManager* adapterManager = CPIMCMAdapterManager::NewL(
+ (*iContactListNames)[0]);
+
+ CleanupStack::PushL(adapterManager);
+
+ CPIMContactListAdapter* listAdapter = CPIMContactListAdapter::NewL(
+ iFuncServer);
+
+ CleanupStack::Pop(adapterManager);
+
+ *aRetAdapterManager = adapterManager;
+ *aRetListAdapter = listAdapter;
+ *aRetLocalizationData = iContactLocalizationData;
+
+ return ETrue;
+}
+
+TBool CPIMCMAdapterAccess::OpenEventListL(const TDesC* /*aListName*/,
+ MPIMEventAdapterManager** /*aRetAdapterManager*/,
+ MPIMEventListAdapter** /*aRetListAdapter*/, MPIMLocalizationData** /*aRetLocalizationData */)
+{
+ JELOG2(EPim);
+ // no Event lists
+ return EFalse;
+}
+
+TBool CPIMCMAdapterAccess::OpenToDoListL(const TDesC* /*aListName*/,
+ MPIMToDoAdapterManager** /*aRetAdapterManager*/,
+ MPIMToDoListAdapter** /*aRetListAdapter*/, MPIMLocalizationData** /*aRetLocalizationData */)
+{
+ JELOG2(EPim);
+ // no ToDo lists
+ return EFalse;
+}
+
+// -----------------------------------------------------------------------------
+// CPIMCMAdapterAccess::NewL
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+//
+CPIMCMAdapterAccess* CPIMCMAdapterAccess::NewL(
+ MPIMLocalizationManager* aLocalizationManager,
+ java::util::FunctionServer* aFuncServer)
+{
+ JELOG2(EPim);
+ CPIMCMAdapterAccess* self =
+ new(ELeave) CPIMCMAdapterAccess(aLocalizationManager, aFuncServer);
+
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+
+ return self;
+}
+
+// destructor
+CPIMCMAdapterAccess::~CPIMCMAdapterAccess()
+{
+ JELOG2(EPim);
+ delete iContactListNames;
+ delete iNoListNames;
+ delete iContactLocalizationData;
+}
+
+// -----------------------------------------------------------------------------
+// CPIMCMAdapterAccess::CPIMCMAdapterAccess
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// -----------------------------------------------------------------------------
+//
+CPIMCMAdapterAccess::CPIMCMAdapterAccess(
+ MPIMLocalizationManager* aLocalizationManager,
+ java::util::FunctionServer* aFuncServer) :
+ iLocalizationManager(aLocalizationManager), iFuncServer(aFuncServer)
+{
+ JELOG2(EPim);
+}
+
+// -----------------------------------------------------------------------------
+// CPIMCMAdapterAccess::ConstructL
+// Symbian 2nd phase constructor can leave.
+// -----------------------------------------------------------------------------
+//
+void CPIMCMAdapterAccess::ConstructL()
+{
+ JELOG2(EPim);
+ // there will be one Contact list name
+ iContactListNames = new(ELeave) CDesCArrayFlat(1);
+
+ // will be left empty
+ iNoListNames = new(ELeave) CDesCArrayFlat(1);
+
+ iContactLocalizationData = iLocalizationManager->GetPIMLocalizationDataL(
+ KPIMLocalizationIdContacts);
+
+ HBufC* listName = iContactLocalizationData->GetListNameL();
+ CleanupStack::PushL(listName);
+ iContactListNames->AppendL(*listName);
+ CleanupStack::PopAndDestroy(listName);
+}