epoc32/include/sipprofileregistry.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
--- 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 <e32base.h>
+#include <e32std.h>
+#include <badesca.h>
+#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