--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PECengine/ListLibrary2/AttrListSrc/CPEngAttributeListTransBase.cpp Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,250 @@
+/*
+* 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: Base class for attribute list transactions
+*
+*/
+
+// INCLUDE FILES
+#include "CPEngAttributeListTransBase.h"
+#include "CPEngAttributeListItem.h"
+#include "MPEngAttributeListTransactionManager.h"
+
+#include "CPEngContactListTransactionManager.h"
+#include "CPEngContactListSettings.h"
+
+#include "MPEngXMLSerializer.h"
+#include "MPEngXMLParser.h"
+
+#include "CPEngTransactionStatus.h"
+#include "MPEngPresenceAttrManager.h"
+
+#include <e32std.h>
+#include <bamdesca.h>
+
+
+// MACROS
+// call continue if condition is fulfilled
+#define CONTINUE_IF( a )\
+ if ( a )\
+ {\
+ continue;\
+ }
+
+
+// ============================ MEMBER FUNCTIONS ===============================
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::CPEngAttributeListTransBase()
+// -----------------------------------------------------------------------------
+//
+CPEngAttributeListTransBase::CPEngAttributeListTransBase(
+ MPEngAttributeListTransactionManager& aAttrListTransManager,
+ CPEngContactListTransactionManager& aCntListTransManager,
+ TPEngWVCspVersion& aCSPVersion,
+ TInt aOperationId )
+ : iTransactionCompleted( EFalse ),
+ iAttributeListTransManager( aAttrListTransManager ),
+ iCntListTransManager( aCntListTransManager ),
+ iCSPVersion( aCSPVersion ),
+ iOperationId( aOperationId )
+ {
+
+ }
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::ConstructL()
+// -----------------------------------------------------------------------------
+//
+void CPEngAttributeListTransBase::ConstructL()
+ {
+ iTransactionStatus = CPEngTransactionStatus::NewL();
+ }
+
+
+// Destructor
+CPEngAttributeListTransBase::~CPEngAttributeListTransBase()
+ {
+ delete iTransactionStatus;
+ }
+
+
+// ==============================================================================
+// =============From MPEngOutgoingTransactionHandler ============================
+// ==============================================================================
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::LastRunningTransactionHandler()
+// -----------------------------------------------------------------------------
+//
+void CPEngAttributeListTransBase::LastRunningTransactionHandler()
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::ProcessResponseL()
+// -----------------------------------------------------------------------------
+//
+void CPEngAttributeListTransBase::ProcessResponseL(
+ const TDesC8& aResponse,
+ TRequestStatus& /* aStatus */ )
+ {
+ DoConsumeMessageFromServerL( aResponse );
+ iTransactionCompleted = ETrue;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::CancelProcessing()
+// -----------------------------------------------------------------------------
+//
+void CPEngAttributeListTransBase::CancelProcessing()
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::NewTransactionHandlersL()
+// -----------------------------------------------------------------------------
+//
+void CPEngAttributeListTransBase::NewTransactionHandlersL(
+ RPointerArray<MPEngOutgoingTransactionHandler>& /* aTransactionsArray */ )
+ {
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::TransactionCompleted()
+// -----------------------------------------------------------------------------
+//
+TBool CPEngAttributeListTransBase::TransactionCompleted()
+ {
+ return iTransactionCompleted;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::TransactionResult()
+// -----------------------------------------------------------------------------
+//
+CPEngTransactionStatus* CPEngAttributeListTransBase::TransactionResult()
+ {
+ CPEngTransactionStatus* temp = iTransactionStatus;
+ iTransactionStatus = NULL;
+ return temp;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::ReleaseHandler()
+// -----------------------------------------------------------------------------
+//
+void CPEngAttributeListTransBase::ReleaseHandler()
+ {
+ iTransactionCompleted = ETrue;
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::XMLAppendContactListsL()
+// -----------------------------------------------------------------------------
+//
+void CPEngAttributeListTransBase::XMLAppendContactListsL(
+ MPEngXMLSerializer& aXmlSerializer,
+ const MDesCArray& aContactLists )
+ {
+ // append Contact lists one by one
+ TInt count ( aContactLists.MdcaCount() );
+ for ( TInt i( 0 ) ; i < count ; i++ )
+ {
+ CPEngContactListSettings* cntSettings =
+ iCntListTransManager.ContactListSettingsOrNull(
+ aContactLists.MdcaPoint( i ) );
+
+ CONTINUE_IF( ( !cntSettings
+ ||
+ !( cntSettings->Property( KPEngListExistsOnServer,
+ KPEngCntLstPropertyNativeCached ) )
+ ) );
+
+ TPtrC listServerName( cntSettings->ServerName() );
+ // <ContactList>
+ // contact list name
+ // </ContactList>
+ aXmlSerializer.StartTagL( KContactList
+ ).WvAddressL( listServerName
+ ).EndTagL( KContactList );
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::XMLAppendContactIdsL()
+// -----------------------------------------------------------------------------
+//
+void CPEngAttributeListTransBase::XMLAppendContactIdsL(
+ MPEngXMLSerializer& aXmlSerializer,
+ const MDesCArray& aContactIds )
+ {
+ // append WV IDs one by one
+ TInt count ( aContactIds.MdcaCount() );
+ for ( TInt x( 0 ); x < count ; x++ )
+ {
+ // <UserID>
+ aXmlSerializer.StartTagL( KUserIDXMLTag );
+
+ aXmlSerializer.WvAddressL( aContactIds.MdcaPoint( x ) );
+
+ // </UserID>
+ aXmlSerializer.EndTagL( KUserIDXMLTag );
+ }
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::XMLAppendDefaultFlagL()
+// -----------------------------------------------------------------------------
+//
+void CPEngAttributeListTransBase::XMLAppendDefaultFlagL(
+ MPEngXMLSerializer& aXmlSerializer,
+ const TBool aFlag )
+ {
+ // <DefaultList>
+ aXmlSerializer.StartTagL( KDefaultList );
+
+ // write attribute list default flag
+ aXmlSerializer.RawValueL( aFlag ? KXMLValueTrue : KXMLValueFalse );
+
+ // </DefaultList>
+ aXmlSerializer.EndTagL( KDefaultList );
+ }
+
+
+// -----------------------------------------------------------------------------
+// CPEngAttributeListTransBase::CopyDesArrayL()
+// -----------------------------------------------------------------------------
+//
+void CPEngAttributeListTransBase::CopyDesArrayL(
+ const MDesC16Array& aOldDesArray,
+ CDesC16Array& aNewArray )
+ {
+ TInt count ( aOldDesArray.MdcaCount() );
+ for ( TInt x ( 0 ) ; x < count ; x++ )
+ {
+ aNewArray.AppendL( aOldDesArray.MdcaPoint( x ) );
+ }
+ }
+
+// End of File
+