PECengine/ListLibrary2/AttrListSrc/CPEngAttributeListTransBase.cpp
changeset 0 094583676ce7
--- /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
+