diff -r 000000000000 -r 094583676ce7 PECengine/AttributeLibrary2/Src/CPEngPresenceAttrManager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PECengine/AttributeLibrary2/Src/CPEngPresenceAttrManager.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,146 @@ +/* +* 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: Concrete presence attribute manager implementation. +* +*/ + +#ifndef CPENGPRESENCEATTRMANAGER_H +#define CPENGPRESENCEATTRMANAGER_H + +// INCLUDES +#include "CPEngSessionSlotObject.h" +#include "MPEngPresenceAttrManager.h" +#include + + +// FORWARD DECLARATIONS +class MPEngStorageManager; +class CPEngAttrConstructorCon; + + + + + +// CLASS DECLARATION + +/** + * Presence attribute manager implementation. + * + * @since 3.0 + */ +NONSHARABLE_CLASS( CPEngPresenceAttrManager ) : public CPEngSessionSlotObject, + public MPEngPresenceAttrManager + + { +public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CPEngPresenceAttrManager* NewLC( const CPEngSessionSlotId& aSlotId ); + + /** + * Destructor. + */ + ~CPEngPresenceAttrManager(); + + +private: + + /** + * By default Symbian OS constructor is private. + */ + void ConstructL( const CPEngSessionSlotId& aSlotId ); + + /** + * C++ default constructor. + */ + CPEngPresenceAttrManager(); + + + +public: // Functions from MPEngPresenceAttrManager + + + /** + * From MPEngPresenceAttrManager. + * + * @since 3.0 + */ + void Close(); + + void InstantiateAttributeLC( MPEngPresenceAttrModel2*& aModel, + const TDesC& aPresenceID, + TUint32 aType, + TInt aInstanceOptions ); + + + TInt LoadAttributeLC( MPEngPresenceAttrModel2*& aModel, + const TDesC& aPresenceID, + TUint32 aType, + TInt aInstanceOptions ); + + void StoreEditLockedAttributeL( const MPEngPresenceAttrModel2& aModel ); + TInt StopEditSupport( MPEngPresenceAttrModel2& aModel ) const; + void ModelEditLockedFromThisSlotL( const MPEngPresenceAttrModel2& aModel ) const; + + TInt ValidNetworkAttribute( TUint32 aType ) const; + TArray KnownAttributeTypes() const; + + TInt GetAttributeXmlNameAndNameSpace( TUint32 aType, + TPtrC8& aAttributeName, + TPtrC8& aAttributeNameSpace ) const; + + + + HBufC16* PackModelArrayL( const RPointerArray& aModels ) const; + void UnpackModelArrayL( const TDesC16& aModelPkg, + TInt aInstanceOptions, + RPointerArray& aModels ); + + + HBufC16* PackFetchRequestL( const MDesCArray& aPresenceIDs, + const TArray& aTypes ) const; + void UnpackFetchRequestL( const TDesC16& aFetchRequestPkg, + CDesCArray& aPresenceIDs, + RArray& aTypes ) const; + + + HBufC* GenerateStoreIdL( TUint32 aAttributeType, + const TDesC& aPresenceId ) const; + TInt ResolveStoreId( const TDesC& aStoreId, + TUint32& aAttributeType, + TPtrC& aPresenceId ) const; + + void ForceStoreBatchL( const RPointerArray aModels ); + void ForceRemoveFromStoreBatchL( RPointerArray aModels ); + + + +private: // Data + + //OWN: Storage manager + MPEngStorageManager* iStorageManager; + + //OWNn: Attribute type constructors + CPEngAttrConstructorCon* iTypeConstructors; + + + }; + +#endif // CPENGPRESENCEATTRMANAGER_H + +// End of File + +