realtimenetprots/sipfw/ProfileAgent/Client/Inc/SipProfileItem.h
changeset 0 307788aac0a8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/realtimenetprots/sipfw/ProfileAgent/Client/Inc/SipProfileItem.h	Tue Feb 02 01:03:15 2010 +0200
@@ -0,0 +1,173 @@
+/*
+* Copyright (c) 2003-2009 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:
+* Name        : sipprofileitem.h
+* Part of     : SIP Profile Client
+* Interface   : private
+* The class providing profile caching for client
+* Version     : 1.0
+*
+*/
+
+
+
+
+/**
+ @internalComponent
+*/
+
+#ifndef CSIPPROFILEITEM_H
+#define CSIPPROFILEITEM_H
+
+//  INCLUDES
+
+#include <e32base.h>
+
+#include "sipconcreteprofile.h"
+
+// FORWARD DECLARATIONS
+
+class CSIPProfile;
+
+// CLASS DECLARATION
+
+/**
+*  The class provides profile caching and reference counting
+*
+*  @lib sipprofilecli.lib
+*/
+class CSIPProfileItem: public CBase
+	{
+	public : 
+
+	    /**
+        * Two-phased constructor.
+		* @return new instance
+        */
+		static CSIPProfileItem* NewL();
+
+	    /**
+        * Two-phased constructor.
+		* @return new instance
+        */
+		static CSIPProfileItem* NewLC();
+
+		/**
+        * Destructor.
+        */
+		~CSIPProfileItem();
+
+		/**
+        * Set profile id
+		* @param aProfileId profile id
+        */
+		void SetProfileId(TUint aProfileId);
+
+		/**
+        * Set proxy profile
+		* @param aProfile profile accessed by application
+        */
+		void SetProfile(CSIPProfile& aProfile);
+
+		/**
+        * Set concrete profile
+		* @param aProfile profile to be cached
+        */
+		void SetConcreteProfile(CSIPConcreteProfile* aProfile);
+
+		/**
+        * Get proxy profile
+		* @return proxy profile accessed by application
+        */
+		CSIPProfile* Profile() const;
+
+		/**
+        * Get concrete profile
+		* @return concrete profile holding profile data
+        */
+		const CSIPConcreteProfile& ConcreteProfile() const;
+
+		/**
+        * Get concrete profile
+		* @return concrete profile holding profile data
+        */
+		CSIPConcreteProfile& ConcreteProfile();
+
+		/**
+        * Enables and disables profile
+		* @param aEnabled, ETrue if enabled
+        */
+		void SetEnabled(TBool aEnabled);
+
+		/**
+        * Check if enabled
+		* @return ETrue if enabled
+        */
+		TBool IsEnabled() const;
+
+		/**
+        * Increment concrete profile reference count
+		* @param aProfile instance of proxy profile pointing concrete profile
+        */
+		void IncrementReferenceCountL(CSIPProfile& aProfile);
+
+		/**
+        * Decrement concrete profile reference count
+		* @param aProfile instance of proxy profile that is deleted
+        */
+		void DecrementReferenceCount(CSIPProfile& aProfile);
+
+		/**
+        * Get count of proxy profiles pontinc concrete profile
+		* @return count of proxy profiles
+        */
+		TUint ReferenceCount() const;
+
+		/**
+        * Stores last occurred registration error
+		* @param aStatus status indicating if error occurred
+		*		  during registering (EURegistrationInProgress)
+		*		  or deregistering (EUnregistrationInProgress)
+		* @param aError occurred error code
+        */
+		void ErrorOccurred(CSIPConcreteProfile::TStatus aStatus, TInt aError);
+
+		/**
+        * Compare two items
+		* @return ETrue, if profile id equals
+        */
+		static TBool Compare(const CSIPProfileItem& aItem,
+				const CSIPProfileItem& aItem2);
+
+	private:
+
+		/**
+        * Default constructor
+        */
+		CSIPProfileItem();
+
+		/**
+        * Symbian 2nd phase constructor
+        */
+		void ConstructL();
+
+	private:
+		TUint iProfileId;
+		TBool iEnabled;
+
+		CSIPConcreteProfile* iConcreteProfile;
+		RPointerArray<CSIPProfile> iProfiles;
+	};
+
+#endif