diff -r 000000000000 -r 307788aac0a8 realtimenetprots/sipfw/ProfileAgent/Client/Inc/SipProfileItem.h --- /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 + +#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 iProfiles; + }; + +#endif