--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PECengine/ListLibrary2/ContactListSrc/CPEngContactListMngTransProperties.cpp Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,273 @@
+/*
+* Copyright (c) 2005 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: Plus delta list outgoing update handler
+*
+*/
+
+// INCLUDE FILES
+
+#include "CPEngContactListMngTransProperties.h"
+#include "MPEngContactListSettingsManager.h"
+#include "CPEngContactListSettings.h"
+#include "CPEngContactListModBase.h"
+#include "MPEngContactListTransactionManager.h"
+
+#include "PEngListLibTools.h"
+#include "MPEngXMLParser.h"
+#include "MPEngXMLSerializer.h"
+
+#include "CPEngTransactionStatus.h"
+#include "PEngWVPresenceErrors2.h"
+#include "PresenceDebugPrint.h"
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CPEngContactListMngTransProperties::CPEngContactListMngTransProperties()
+// -----------------------------------------------------------------------------
+//
+CPEngContactListMngTransProperties::CPEngContactListMngTransProperties(
+ CPEngContactListModBase& aContactList,
+ MPEngContactListTransactionManager& aManager,
+ TPEngWVCspVersion& aCSPVersion,
+ TInt aOperationId )
+ : iContactList( aContactList ),
+ iManager( aManager ),
+ iTransactionCompleted( EFalse ),
+ iCSPVersion( aCSPVersion ),
+ iOperationId( aOperationId )
+
+ {
+ PENG_DP( D_PENG_LIT( "CPEngContactListMngTransProperties::CPEngContactListMngTransProperties" ) );
+ iContactList.Open(); // CSI: 65 #
+ iContactList.Lock( EStorageLockLevelHigh );
+ }
+
+// -----------------------------------------------------------------------------
+// CPEngContactListMngTransProperties::ConstructL()
+// -----------------------------------------------------------------------------
+//
+void CPEngContactListMngTransProperties::ConstructL()
+ {
+ iTransactionStatus = CPEngTransactionStatus::NewL();
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngContactListMngTransProperties::NewLC()
+// -----------------------------------------------------------------------------
+//
+CPEngContactListMngTransProperties* CPEngContactListMngTransProperties::NewLC(
+ CPEngContactListModBase& aContactList,
+ MPEngContactListTransactionManager& aManager,
+ TPEngWVCspVersion& aCSPVersion,
+ TInt aOperationId )
+ {
+ CPEngContactListMngTransProperties* self =
+ new ( ELeave ) CPEngContactListMngTransProperties(
+ aContactList,
+ aManager,
+ aCSPVersion,
+ aOperationId );
+ CleanupStack::PushL( self );
+ self->ConstructL( );
+ return self;
+ }
+
+// Destructor
+CPEngContactListMngTransProperties::~CPEngContactListMngTransProperties()
+ {
+ iContactList.Unlock();
+ iContactList.Close();
+ delete iTransactionStatus;
+ }
+
+
+// ============================================================================
+// =============Function from MPEngOutgoingTransactionHandler =================
+// ============================================================================
+
+// -----------------------------------------------------------------------------
+// CPEngContactListMngTransProperties::RequestL()
+// -----------------------------------------------------------------------------
+//
+void CPEngContactListMngTransProperties::RequestL(
+ TDes8& aSendBuffer )
+ {
+ aSendBuffer.Zero();
+ MPEngXMLSerializer* xmlSerializer = CreateXmlSerializerL( aSendBuffer );
+ CleanupClosePushL( *xmlSerializer );
+
+ // <TransactionContent xmlns="http://www.wireless -village.org/TRC1.1">
+ NListLibTools::AppendTransactionContentTagXmlL( *xmlSerializer, iCSPVersion );
+
+ // <ListManage-Request>
+ xmlSerializer->StartTagL( KListMnageRequest );
+
+ NListLibTools::AppendContactListNameXmlL( *xmlSerializer, iContactList.Settings() );
+
+ NListLibTools::AppendContactListPropertiesXmlL( *xmlSerializer, iContactList.Settings() );
+
+ // <ReceiveList>T</ReceiveList>
+ NListLibTools::ApppendReceiveListTagL( *xmlSerializer, iCSPVersion, ETrue );
+
+ // </ListManage-Request>
+ xmlSerializer->EndTagL( KListMnageRequest );
+
+ // end of transaction
+ // </TransactionContent>
+ xmlSerializer->EndTagL( KTransactionContent );
+ CleanupStack::PopAndDestroy( ); // xmlSerializer
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngContactListMngTransProperties::LastRunningTransactionHandler()
+// -----------------------------------------------------------------------------
+//
+void CPEngContactListMngTransProperties::LastRunningTransactionHandler()
+ {
+ }
+
+// -----------------------------------------------------------------------------
+// CPEngContactListMngTransProperties::ProcessResponseL()
+// -----------------------------------------------------------------------------
+//
+void CPEngContactListMngTransProperties::ProcessResponseL(
+ const TDesC8& aResponse,
+ TRequestStatus& /* aStatus */ )
+ {
+ // parse contact list property update
+
+ MPEngXMLParser* XMLparser = CreateXMLParserLC();
+ CPEngContactListSettings& settings = iContactList.Settings();
+ TInt err ( XMLparser->ParseContactListResultL( aResponse,
+ iOperationId,
+ settings.Name(),
+ *iTransactionStatus ) );
+ switch ( err )
+ {
+ // parse success, same as partial success
+ case KErrNone:
+ case KPEngNwErrPartiallySuccessful:
+ {
+ MPEngXMLParser* XMLparser2 = CreateXMLParserLC();
+ NListLibTools::ParseContactListPropertiesL( aResponse,
+ settings,
+ *XMLparser,
+ *XMLparser2 );
+
+ CleanupStack::PopAndDestroy(); // XMLparser2
+ settings.DeletePropertyL( KPEngPropertiesUpdateNeeded,
+ KPEngCntLstPropertyNativeCached );
+
+ // update default list settings if needed
+ NListLibTools::HarmonizeDefaultContactListSettingsL( settings, iManager );
+ break;
+ }
+
+
+ case KPEngNwErrContactListDoesNotExist:
+ {
+ // Nothing was updated
+ // Update property
+ settings.SetPropertyL( KPEngListExistsOnServer,
+ KPEngCntLstPropertyNativeCached,
+ EFalse );
+ break;
+ }
+
+
+ default:
+ {
+ break;
+ }
+ }
+
+ CleanupStack::PopAndDestroy(); // XMLparser
+ iTransactionCompleted = ETrue;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngContactListMngTransProperties::CancelProcessing()
+// -----------------------------------------------------------------------------
+//
+void CPEngContactListMngTransProperties::CancelProcessing()
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngContactListMngTransProperties::NewTransactionHandlersL()
+// -----------------------------------------------------------------------------
+//
+void CPEngContactListMngTransProperties::NewTransactionHandlersL(
+ RPointerArray<MPEngOutgoingTransactionHandler>& /* aTransactionsArray*/ )
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngContactListMngTransProperties::TransactionCompleted()
+// -----------------------------------------------------------------------------
+//
+TBool CPEngContactListMngTransProperties::TransactionCompleted()
+ {
+ return iTransactionCompleted;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngContactListMngTransProperties::TransactionResult()
+// -----------------------------------------------------------------------------
+//
+CPEngTransactionStatus* CPEngContactListMngTransProperties::TransactionResult()
+ {
+ CPEngTransactionStatus* temp = iTransactionStatus;
+ iTransactionStatus = NULL;
+ return temp;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngContactListMngTransProperties::ReleaseHandler()
+// -----------------------------------------------------------------------------
+//
+void CPEngContactListMngTransProperties::ReleaseHandler()
+ {
+ }
+
+
+// End of File
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+