diff -r 000000000000 -r 094583676ce7 PECengine/AttributeLibrary2/SrcAttributeBase/CPEngPresenceAttrConstructor.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PECengine/AttributeLibrary2/SrcAttributeBase/CPEngPresenceAttrConstructor.cpp Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,225 @@ +/* +* Copyright (c) 2004 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: Attribute model constuctor. +* +*/ + +// INCLUDE FILES +#include "CPEngPresenceAttrConstructor.h" +#include "CPEngAttrConstructorCon.h" +#include "MPEngPresenceAttrConstructorTypeImp.h" + +#include "CPEngPresenceAttrModel.h" +#include "MPEngPresenceAttrModelTypeImp.h" + + +#include + + +// ================= MEMBER FUNCTIONS ======================= + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::NewL() +// Two-phased constructor. +// ----------------------------------------------------------------------------- +// +CPEngPresenceAttrConstructor* CPEngPresenceAttrConstructor::NewL( + CPEngAttrConstructorCon& aContainer, + MPEngPresenceAttrConstructorTypeImp& aTypeConstructor, + TUint32 aType, + TPEngAttributeOriginator aOrigin ) + { + CPEngPresenceAttrConstructor* self = new ( ELeave ) CPEngPresenceAttrConstructor( + aContainer, + aTypeConstructor, + aType, + aOrigin ); + return self; + } + + + +// C++ default constructor can NOT contain any code, that +// might leave. +// +CPEngPresenceAttrConstructor::CPEngPresenceAttrConstructor( + CPEngAttrConstructorCon& aContainer, + MPEngPresenceAttrConstructorTypeImp& aTypeConstructor, + TUint32 aType, + TPEngAttributeOriginator aOrigin ) + : iType( aType ), + iContainer( aContainer ), + iTypeConstructor( &aTypeConstructor ), + iOrigin( aOrigin ) + { + } + + +// Destructor +CPEngPresenceAttrConstructor::~CPEngPresenceAttrConstructor() + { + delete iTypeConstructor; + } + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::NewAttributeInstanceLC() +// ----------------------------------------------------------------------------- +// +MPEngPresenceAdvancedAttrModel2* CPEngPresenceAttrConstructor::NewAttributeInstanceLC( + TBool aUserModel, + const TDesC& aPresenceID ) + { + MPEngPresenceAttrModelTypeImp* typeImp = iTypeConstructor->NewAttributeInstanceLC( aUserModel ); + CPEngPresenceAttrModel* model = CPEngPresenceAttrModel::NewL( *this, + aPresenceID, + typeImp ); + CleanupStack::Pop(); //typeImp + CleanupStack::PushL( model ); + + return model; + } + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::OpenRef() +// ----------------------------------------------------------------------------- +// +void CPEngPresenceAttrConstructor::OpenRef() + { + iContainer.OpenRef(); + } + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::CloseRef() +// ----------------------------------------------------------------------------- +// +void CPEngPresenceAttrConstructor::CloseRef() + { + iContainer.CloseRef(); + } + + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::GetCurrentXmlNames() +// ----------------------------------------------------------------------------- +// +TInt CPEngPresenceAttrConstructor::GetCurrentXmlNames( TPtrC8& aAttributeName, + TPtrC8& aAttributeNameSpace ) const + { + return iTypeConstructor->GetCurrentCspName( aAttributeName, aAttributeNameSpace ); + } + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::Type() +// ----------------------------------------------------------------------------- +// +TUint32 CPEngPresenceAttrConstructor::Type() const + { + return iType; + } + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::Originator() +// ----------------------------------------------------------------------------- +// +TPEngAttributeOriginator CPEngPresenceAttrConstructor::Originator() const + { + return iOrigin; + } + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::GetProperty() +// ----------------------------------------------------------------------------- +// +TInt CPEngPresenceAttrConstructor::GetProperty( TUint aPropertyName, + TUint aPropertyLevel, + TInt& aProperty ) const + { + return iTypeConstructor->GetProperty( aPropertyName, aPropertyLevel, aProperty ); + } + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::GetProperty() +// ----------------------------------------------------------------------------- +// +TInt CPEngPresenceAttrConstructor::GetProperty( TUint aPropertyName, + TUint aPropertyLevel, + TDes8& aProperty ) const + { + return iTypeConstructor->GetProperty( aPropertyName, aPropertyLevel, aProperty ); + } + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::GetProperty() +// ----------------------------------------------------------------------------- +// +TInt CPEngPresenceAttrConstructor::GetPropertyPtr( TUint aPropertyName, + TUint aPropertyLevel, + TPtrC16& aProperty ) const + { + return iTypeConstructor->GetPropertyPtr( aPropertyName, aPropertyLevel, aProperty ); + } + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::Extension() +// ----------------------------------------------------------------------------- +// +MPEngPresenceAttrTypePropertiesExt2* CPEngPresenceAttrConstructor::Extension() + { + return NULL; + } + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::TypeExtension() +// ----------------------------------------------------------------------------- +// +TAny* CPEngPresenceAttrConstructor::TypeExtension( TUint32 aType ) + { + return iTypeConstructor->TypeExtension( aType ); + } + + +// ----------------------------------------------------------------------------- +// CPEngPresenceAttrConstructor::__DbgPanicL() +// ----------------------------------------------------------------------------- +// +void CPEngPresenceAttrConstructor::__DbgPanicL( TPEngAttributeConstructorPanics aReason, + TInt aLeaveCode ) const + + { +#if defined(_DEBUG) + User::Panic( KPEngAttributeConstructorPanicCategory, aReason ); +#else + User::Leave( aLeaveCode ); +#endif + + // suppress the unreferenced variable warnings + ( void ) aReason; + ( void ) aLeaveCode; + } + + +// End of File +