--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PECengine/AttributeLibrary2/SrcAttributeBase/CPEngPresenceAttrModel.h Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,279 @@
+/*
+* 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 implementation.
+*
+*/
+
+#ifndef CPENGPRESENCEATTRMODEL_H
+#define CPENGPRESENCEATTRMODEL_H
+
+//INCLUDES
+#include "MPEngPresenceAdvancedAttrModel2.h"
+#include "MPEngPresenceAttrModel2.h"
+#include "MPEngPresenceAttrManager.h"
+#include <E32Base.h>
+
+
+
+// FORWARD DECLARATIONS
+class MPEngPresenceAttrModelTypeImp;
+class CPEngPresenceAttrConstructor;
+class CPEngAttrModelAsyncDataSetHook;
+class CPEngPresenceAttrModelStorageProxy;
+
+
+
+/**
+ * Attribute model implementation.
+ *
+ * @lib PEngAttrLib
+ * @since 3.0
+ */
+NONSHARABLE_CLASS( CPEngPresenceAttrModel ) : public CBase,
+ public MPEngPresenceAdvancedAttrModel2
+ {
+public: // Construction
+
+ /**
+ * Instantiates CPEngPresenceAttrModel object.
+ *
+ * @param aTypeConstruct The attribute type specific construct.
+ * @return New CPEngPresenceAttrModel instance.
+ */
+ static CPEngPresenceAttrModel* NewL(
+ CPEngPresenceAttrConstructor& aTypeConstructor,
+ const TDesC& aPresenceID,
+ MPEngPresenceAttrModelTypeImp* aTypeImp );
+
+
+ /**
+ * Destructor.
+ * Virtual by CBase.
+ */
+ ~CPEngPresenceAttrModel();
+
+
+
+private:
+
+ /**
+ * C++ default constructor.
+ */
+ CPEngPresenceAttrModel( CPEngPresenceAttrConstructor& aTypeConstructor );
+
+
+ /**
+ * Symbian OS constructor.
+ */
+ void ConstructL( const TDesC& aPresenceID );
+
+
+
+public: // Functions from MPEngPresenceAttrModel2
+
+
+ /**
+ * From MPEngPresenceAttrModel2.
+ *
+ * Attribute type details.
+ * @since 3.0
+ */
+ TUint32 Type() const;
+ const MPEngPresenceAttrTypeProperties2& TypeProperties() const;
+
+
+ /**
+ * From MPEngPresenceAttrModel2.
+ *
+ * Attribute instance details.
+ * @since 3.0
+ */
+ const TDesC& PresenceID() const;
+ TPEngAttrDataSource DataSource() const;
+
+
+ /**
+ * From MPEngPresenceAttrModel2.
+ *
+ * Attribute data getters.
+ * @since 3.0
+ */
+ TBool Qualifier() const;
+ TInt DataInt( TInt aField,
+ TInt aGroup ) const;
+
+ const TPtrC8 DataDesC8( TInt aField,
+ TInt aGroup ) const;
+
+ const TPtrC16 DataDesC16( TInt aField,
+ TInt aGroup ) const;
+
+
+
+ /**
+ * From MPEngPresenceAttrModel2.
+ *
+ * Attribute data setters.
+ * @since 3.0
+ */
+ void SetQualifier( TBool aQualifier );
+ void SetDataIntL( TInt aData,
+ TInt aField,
+ TInt aGroup );
+
+ void SetDataDesC8L( const TDesC8& aData,
+ TInt aField,
+ TInt aGroup );
+
+ void SetDataDesC16L( const TDesC16& aData,
+ TInt aField,
+ TInt aGroup );
+
+
+ /**
+ * From MPEngPresenceAttrModel2.
+ *
+ * Attribute async data setters.
+ * @since 3.0
+ */
+ void SetDataDesC8AsyncL( const TDesC8& aData,
+ TRequestStatus& aRequestStatus,
+ TInt aField,
+ TInt aGroup );
+
+ void SetDataDesC16AsyncL( const TDesC16& aData,
+ TRequestStatus& aRequestStatus,
+ TInt aField,
+ TInt aGroup );
+
+
+ /**
+ * From MPEngPresenceAttrModel2.
+ *
+ * Attribute async data set cancel.
+ * @since 3.0
+ */
+ void CancelSetDataAsync();
+
+
+
+ /**
+ * From MPEngPresenceAttrModel2.
+ *
+ * Extensions interfaces.
+ * @since 3.0
+ */
+ const MPEngAttrModelExtension2* Extension() const;
+ MPEngAttrModelExtension2* Extension();
+ TAny* TypeExtension( TUint32 aType );
+
+
+
+ /**
+ * From MPEngPresenceAttrModel2.
+ *
+ * Presence Engine internal interface.
+ * @since 3.0
+ */
+ const MPEngPresenceAdvancedAttrModel2* Advanced() const;
+ MPEngPresenceAdvancedAttrModel2* Advanced();
+
+
+
+ /**
+ * From MPEngPresenceAttrModel2.
+ *
+ * Clone support .
+ * @since 3.0
+ */
+ MPEngPresenceAttrModel2* CloneLC() const;
+
+
+
+ /**
+ * From MPEngPresenceAttrModel2.
+ *
+ * Cleanup support .
+ * @since 3.0
+ */
+ void Close();
+
+
+
+public: //From MPEngPresenceAdvancedAttrModel2
+
+
+ /**
+ * From MPEngPresenceAdvancedAttrModel2.
+ *
+ * @since 3.0
+ */
+ void EncodeToXmlL( MPEngXMLSerializer& aSerializer ) const;
+ void DecodeFromXmlL( MPEngXMLParser& aParser,
+ const TDesC8& aDataBlock );
+
+ const CPEngPresenceAttrModelStorageProxy& Storage() const;
+ CPEngPresenceAttrModelStorageProxy& Storage();
+
+
+ TInt ExternalizeSize() const;
+ void ExternalizeL( RWriteStream& aStream ) const;
+ void InternalizeL( RReadStream& aStream );
+
+
+ void HandleAttributeUpdatedToNetwork();
+ void HandleNetworkSessionStateChangeL( TBool aSessionOpen );
+
+
+private: //Helpers
+
+
+ /**
+ * Lazy initializes the async set hook.
+ * @since 3.0
+ */
+ void LazyInitAsyncSetHookL();
+
+
+
+private: // Base model maintained attribute data
+
+
+ //REF: Model type constructor
+ CPEngPresenceAttrConstructor& iTypeConstructor;
+
+ //OWN: Async set hook. Lazy initialized when needed.
+ CPEngAttrModelAsyncDataSetHook* iAsyncSetHook;
+
+ //OWN: Model storage proxy
+ CPEngPresenceAttrModelStorageProxy* iStorage;
+
+ //OWN: Attribute instances presence Id
+ HBufC* iPresenceId;
+
+ //OWN: Attribute data source
+ TPEngAttrDataSource iDataSource;
+
+ //OWN: Attribute qualifier value
+ TBool iQualifier;
+
+ //OWN: Attribute model type instance
+ MPEngPresenceAttrModelTypeImp* iTypeImp;
+
+ };
+
+#endif // CPENGPRESENCEATTRMODEL_H
+
+// End of File
+