mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/sipprofilestub/inc/sipprofile.h
branchRCL_3
changeset 22 73a1feb507fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/livecommsui/lcui/tsrc/mustester/Stubs/sipprofilestub/inc/sipprofile.h	Tue Aug 31 15:12:07 2010 +0300
@@ -0,0 +1,343 @@
+/*
+* Copyright (c) 2003 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:  The class providing profile data of SIP service provider
+*
+*/
+
+
+#ifndef CSIPPROFILE_H
+#define CSIPPROFILE_H
+
+//  INCLUDES
+#include <e32base.h>
+#include <e32std.h>
+#include <badesca.h>
+#include "sipregistrationcontext.h"
+#include "sipprofiletypeinfo.h"
+
+// FORWARD DECLARATIONS
+class CSIPConcreteProfile;
+class CSIPProfileRegistry;
+class CSIPProfileRegistryBase;
+
+/** 
+* SIP Profile ID which value is type of TUint32
+*/
+const TUint32 KSIPProfileId = 1;
+
+/** 
+* SIP Provider Name which value is type of TDesC8
+*/
+const TUint32 KSIPProviderName = 2;
+
+/** 
+* Access Point ID which value is type of TUint32
+*/
+const TUint32 KSIPAccessPointId = 3;
+
+/** 
+* Signaling compression (SigComp) which value is type of TBool. 
+* ETrue indicates that SigComp is enabled
+*/
+const TUint32 KSIPSigComp = 4;
+
+/** 
+* Security Negotiation which value is type of TBool. ETrue indicates that
+* Security Negotiation is enabled
+*/
+const TUint32 KSIPSecurityNegotiation = 5;
+
+/** 
+* Auto Registration which value is type of TBool. ETrue indicates that 
+* profile is enabled for auto registration
+*/
+const TUint32 KSIPAutoRegistration = 6;
+
+/** 
+* Defined user's address-of-record which value is type of TDesC8 
+*/
+const TUint32 KSIPUserAor = 7;
+
+/** 
+* Registration which value is type of TBool. ETrue indicates that
+* profile is registered 
+*/
+const TUint32 KSIPProfileRegistered = 8;
+
+/** 
+* Uers's registered address-of-records which value is of type MDesC8Array.
+* Note that array will contain AORs only in case the profile is registered.
+*/
+const TUint32 KSIPRegisteredAors = 9;
+
+/** 
+* Negotiated security mechanism during registration procedure which value
+* is of type TDesC8.
+* Note that descriptor will contain value only in case the profile is 
+* registered.
+*/
+const TUint32 KSIPNegotiatedSecurityMechanism = 10;
+
+/** 
+* Default profile which value is type of TBool. 
+* ETrue indicates that profile is default  
+*/
+const TUint32 KSIPDefaultProfile = 11;
+
+/** 
+* "Contact" header parameters used during registration which value
+*is of type MDesC8Array. Array element contains one "Contact" header
+* parameter.
+*/
+const TUint32 KSIPContactHeaderParams = 12;
+
+/** 
+* SIP Registrar  
+*/
+const TUint32 KSIPRegistrar = 130;
+
+/** 
+* SIP Outbound Proxy
+*/
+const TUint32 KSIPOutboundProxy = 131;
+
+/** 
+* HTTP Digest user name which value is type of TDesC8 
+*/
+const TUint32 KSIPDigestUserName = 150;
+
+/** 
+* HTTP Digest realm which value is type of TDesC8
+*/
+const TUint32 KSIPDigestRealm = 151;
+
+/** 
+* SIP server's address which value is of type TDesC8
+*/
+const TUint32 KSIPServerAddress = 152;
+
+// CLASS DECLARATION
+/**
+* @publishedAll
+* @released
+*
+* Class contains profile information of particular SIP service
+* provider. Class provides functions for quering profile parameter
+* values.
+*  @lib sipprofilecli.lib
+*/
+class CSIPProfile: public CBase, public MSIPRegistrationContext
+    {    
+    public:  // Constructors and destructor
+        /**
+        * Destructor.
+        * @capability NetworkServices
+        */
+        IMPORT_C ~CSIPProfile();
+
+    public: // New functions
+        /**
+        * Gets profile type information
+        * @return profile type information
+        */
+        IMPORT_C const TSIPProfileTypeInfo& Type() const;
+
+        /** 
+        * Gets profile parameter
+        * @param aParam a parameter to get
+        * @param aVal on return will contain parameter value
+        * @return KErrNotFound if parameter was not found, KErrNone otherwise
+        */
+        IMPORT_C TInt GetParameter(TUint32 aParam, TDesC8 const *& aVal) const; 
+
+        /** 
+        * Gets profile parameter
+        * @param aParam a parameter to get
+        * @param aVal on return will contain parameter value
+        * @return KErrNotFound if parameter was not found, KErrNone otherwise
+        */
+        IMPORT_C TInt GetParameter(TUint32 aParam, TUint32& aVal) const;
+
+        /** 
+        * Gets profile parameter
+        * @param aParam a parameter to get
+        * @param aVal on return will contain parameter value
+        * @return KErrNotFound if parameter was not found, KErrNone otherwise
+        */
+        IMPORT_C TInt GetParameter(TUint32 aParam, TBool& aVal) const;
+
+        /** 
+        * Gets profile parameter
+        * @param aParam a parameter to get
+        * @param aVal on return will contain parameter value
+        * @return KErrNotFound if parameter was not found, KErrNone otherwise
+        */
+        IMPORT_C TInt GetParameter(TUint32 aParam, MDesC8Array const *& aVal) const;
+
+        /** 
+        * Gets profile parameter that is defined for a particular SIP server
+        * @param aServer a SIP server type
+        * @param aParam a parameter to get
+        * @param aVal on return will contain parameter value
+        * @return KErrNotFound if parameter was not found, KErrNone otherwise
+        */
+        IMPORT_C TInt GetParameter(TUint32 aServerType, TUint32 aParam, TDesC8 const *& aVal) const;
+
+    public: //Functions from base class
+        /**
+        * Tests if the registration context can be
+        * used for creating SIP messages/dialogs
+        * Profile can be used, when CSIPProfileRegistry::IsEnabled() == ETrue
+        * and Status() == ERegistered.
+        * @return ETrue if can be used, EFalse otherwise
+        */
+        TBool IsContextActive() const;
+
+        /**
+        * 
+        * For internal use only
+        * @return context id
+        */
+        TUint32 ContextId() const;
+        
+
+    public: //New functions
+
+        /**
+        * Two-phased constructor.
+        * @param aSIPRegistry a SIP profile client providing connection to SIP 
+        *         profile server.
+        */
+
+        static CSIPProfile* NewL(CSIPProfileRegistry* aSIPRegistry);
+
+        /**
+        * Two-phased constructor.
+        * @param aSIPRegistry a SIP profile client providing connection to SIP 
+        *         profile server.
+        * Constructs an object and adds the pointer to the cleanup stack;
+        */
+
+        static CSIPProfile* NewLC(CSIPProfileRegistry* aSIPRegistry);
+
+        /**
+        * Sets profiles enabled state
+        * @param aEnabled ETrue if enabled
+        */
+
+        void SetEnabled(TBool aEnabled);
+
+        /**
+        * Sets concrete profile that holds actual data 
+        * @param aProfile profile instance containing data
+        */
+
+        void SetConcreteProfile(CSIPConcreteProfile* aProfile);
+
+        /**
+        * Clears concrete profile that holds actual data 
+        */
+
+        void ClearConcreteProfile();
+
+        /**
+        * Gets concrete profile that holds actual data
+        * @return concrete profile holding data
+        */
+
+        CSIPConcreteProfile& ConcreteProfile();
+
+        /**
+        * Gets concrete profile that holds actual data
+        * @return concrete profile holding data
+        */
+
+        const CSIPConcreteProfile& ConcreteProfile() const;
+
+        /**
+        * Checks if the profile is enabled
+        * @return ETrue if enabled, EFalse otherwise
+        */
+
+        TBool IsEnabled() const;
+
+        /**
+        * Gets last occurred error during registration
+        * @return last occurred error code, KErrNone if no error
+        */
+        TInt LastRegistrationError() const;
+
+        /**
+        * Checks if two profiles are equal
+        * @return ETrue if equal
+        */
+        TBool operator==(const CSIPProfile& 
+                                 aProfile) const;
+
+        /**
+        * sets pointer to registry for profile
+        */
+        void SetRegistry(CSIPProfileRegistryBase* aRegistry);
+        
+        /**
+        * Clears pointer to registry from profile
+        */
+        void ClearRegistry();
+        
+    protected:
+
+        /**
+        * Constructor. 
+        */                
+        CSIPProfile(CSIPProfileRegistryBase* aRegistry);
+        
+        /**
+        * 2nd phase constructor. 
+        */                
+        void ConstructL();
+
+    protected:
+    
+        CSIPConcreteProfile* iSIPProfile;
+        CSIPProfileRegistryBase* iSIPProfileRegistry;
+
+    // Stub data
+
+    public:
+    
+        TBool iEnabled;
+        TBool iIsDefaultProfile;
+        
+        TSIPProfileTypeInfo iTypeInfo;
+        
+        // Value iTUint32Value is set to aVal when calling
+        // GetParameter(TUint32 aParam, TUint32& aVal)
+        // if iTUint32ValueError == KErrNone. 
+        // iTUint32ValueError is returned in any case
+        TUint32 iTUint32Value;
+        TInt iTUint32ValueError;
+        
+        // Value iTBoolValue is set to aVal when calling
+        // GetParameter(TUint32 aParam, TBool& aVal)
+        // if iTBoolValueError == KErrNone. 
+        // iTBoolValueError is returned in any case
+        TBool iTBoolValue;
+        TInt iTBoolValueError;
+        
+        CDesC8Array* iArray;
+        
+        //
+    };
+
+#endif // CSIPPROFILE_H