diff -r 666f914201fb -r 2fe1408b6811 epoc32/include/sipprofileregistry.h --- a/epoc32/include/sipprofileregistry.h Tue Nov 24 13:55:44 2009 +0000 +++ b/epoc32/include/sipprofileregistry.h Tue Mar 16 16:12:26 2010 +0000 @@ -1,1 +1,180 @@ -sipprofileregistry.h +/* +* 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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members +* which accompanies this distribution, and is available +* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Name : sipprofileregistry.h +* Part of : SIP Profile Client +* Interface : SDK API, SIP Profile API +* The class for using SIP profiles +* Version : 1.0 +* +*/ + + + +#ifndef CSIPPROFILEREGISTRY_H +#define CSIPPROFILEREGISTRY_H + +// INCLUDES +#include +#include +#include +#include "sipprofileregistrybase.h" + +// FORWARD DECLARATIONS +class CSIP; +class CSIPConnection; +class CSIPProfile; +class MSIPProfileRegistryObserver; +class MSIPConnectionObserver; + + +// CLASS DECLARATION +/** +* @publishedAll +* @released +* +* The class for retrieving SIP profiles from permanent storage. +* This class provides services for retreiving SIP profiles +* and enabling/disabling them for the usage. +* +* The user can create only one instance of this class (a singleton class). +* +* @lib sipprofilecli.lib +*/ +class CSIPProfileRegistry: public CSIPProfileRegistryBase + { + public: // Constructors and destructor + /** + * Two-phased constructor. + * This constructor should be used if the client intends + * to use SIP services with profiles. + * @param aSip a SIP client providing connection to SIP stack. + * @param aObserver a observer for SIP profile change events. + */ + IMPORT_C static CSIPProfileRegistry* NewL( + CSIP& aSip, + MSIPProfileRegistryObserver& aObserver); + + /** + * Two-phased constructor. + * This constructor should be used if the client intends + * to use SIP services with profiles. + * Constructs an object and adds the pointer to the cleanup stack; + * @param aSip a SIP client providing connection to SIP stack. + * @param aObserver a observer for SIP profile change events. + */ + IMPORT_C static CSIPProfileRegistry* NewLC( + CSIP& aSip, + MSIPProfileRegistryObserver& aObserver); + + /** + * Destructor + */ + IMPORT_C ~CSIPProfileRegistry(); + + public: // New functions + /** + * Gets handle to the SIP server + * @return handle to the SIP server + */ + IMPORT_C CSIP& SIP() const; + + /** + * Gets the SIP connection to be used with this SIP profile. + * @pre IsEnabled() == ETrue + * @param aProfile a sip profile + * @return a SIP connection to be used; the owneship is transfered + * @leave KErrNoMemory if out of memory + * @capability NetworkServices + */ + IMPORT_C CSIPConnection* ConnectionL( + CSIPProfile& aProfile); + + /** + * Enables the SIP profile for use. + * Enabling the SIP profile will cause the SIP profile to + * be registered if its status was unregistered. + * The user must check the profile status after calling this + * function. In case the profile is not registered the user must + * wait until the it is notified about profile registration + * on MSIPProfileRegistryObserver-callback interface. + * @param aProfile a sip profile to enable + * @param aObserver a observer for SIP connection events + * @leave KErrNotFound if non-existing profile is provided + * @capability NetworkServices + */ + IMPORT_C void EnableL( + CSIPProfile& aProfile, + MSIPConnectionObserver &aObserver); + + /** + * Disables the usage of SIP profile + * @param aProfile a sip profile to disable + * @return KErrNone if SIP profile was successfully disabled; + * system wide error otherwise + * @capability NetworkServices + */ + IMPORT_C TInt Disable(CSIPProfile& aProfile); + + /** + * Tests is the SIP profile enabled for the use + * @param aProfile a SIP profile to be checked + * @return ETrue if SIP profile is enabled; EFalse otherwise + */ + IMPORT_C TBool IsEnabled(const CSIPProfile& aProfile) const; + + /** + * Force disables the usage of SIP profile + * All Profile related activities will be stopped ungracefully + * @param aProfile a sip profile to disable + * @return KErrNone if SIP profile was successfully disabled; + * system wide error otherwise + * @capability NetworkControl + */ + IMPORT_C TInt ForceDisable(CSIPProfile& aProfile); + + /** + * Refreshes the Enabled SIP profile for use. + * Refreshing the Enabled Profile will cause the SIP Profile to + * get Registered if its status was not registered. + * This function has to be used when the profile is in Enabled state and + * might be unregistered due to a connection loss. + * @param aProfile a sip profile to enable + * @leave KErrNotFound if non-existing profile is provided + * @leave KErrArgument if the profile is not previously Enabled and in Unregistered state. + * @capability NetworkServices + */ + + IMPORT_C void RefreshEnableL(CSIPProfile& aProfile); + + public: + + /** + * @internalComponent + */ + CSIPProfile* NewInstanceL(); + + private: + + CSIPProfileRegistry(); + CSIPProfileRegistry(CSIP& aSip, MSIPProfileRegistryObserver& aObserver); + void ConstructL(); + + private: + + CSIP& iSip; + MSIPConnectionObserver* iConnectionObserver; + }; + +#endif // CSIPPROFILEREGISTRY_H