diff -r 6ca72c0fe49a -r a941bc465d9f PECengine/ListLibrary2/AttrListSrc/CPEngAttributeListTransBase.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PECengine/ListLibrary2/AttrListSrc/CPEngAttributeListTransBase.cpp Wed Sep 01 12:31:13 2010 +0100 @@ -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 +#include + + +// 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& /* 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() ); + // + // contact list name + // + 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++ ) + { + // + aXmlSerializer.StartTagL( KUserIDXMLTag ); + + aXmlSerializer.WvAddressL( aContactIds.MdcaPoint( x ) ); + + // + aXmlSerializer.EndTagL( KUserIDXMLTag ); + } + } + + +// ----------------------------------------------------------------------------- +// CPEngAttributeListTransBase::XMLAppendDefaultFlagL() +// ----------------------------------------------------------------------------- +// +void CPEngAttributeListTransBase::XMLAppendDefaultFlagL( + MPEngXMLSerializer& aXmlSerializer, + const TBool aFlag ) + { + // + aXmlSerializer.StartTagL( KDefaultList ); + + // write attribute list default flag + aXmlSerializer.RawValueL( aFlag ? KXMLValueTrue : KXMLValueFalse ); + + // + 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 +