diff -r ccd8e69b5392 -r 496ad160a278 mmsharing/mmshavailability/inc/musavasip.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsharing/mmshavailability/inc/musavasip.h Fri Jun 11 13:36:18 2010 +0300 @@ -0,0 +1,311 @@ +/* +* Copyright (c) 2005-2006 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: This is client interface class for SIP-server +* Version : %version: 24 % << Don't touch! Updated by Synergy at check-out. +* +*/ + + +#ifndef __MUSAVASIP_H__ +#define __MUSAVASIP_H__ + +// INCLUDES + +#include "musunittesting.h" + +#include +#include + +class CMusAvaSipConnectionObserver; +class CMusAvaSipObserver; +class CMusAvaSipProfileRegistryObserver; +class CSIP; +class CSIPProfile; +class CSIPProfileRegistry; +class MMusAvaSipConnectionAdapter; +class MMusAvaSipProfileRegistryAdapter; +class MSIPConnectionObserver; +class MMusAvaSipAdapter; +class CSIPProfileRegistryBase; +class CMusAvaClientResolverUtil; + +/** + * CMusAvaSip class represent the interface for module fetcher. + * + * This interface class encapsulates module selection for availability Plug-in. + * + * @lib musavailabilityplugin.lib + + */ + +class CMusAvaSip : public CBase + { +public: + + /** + * Two-phased constructor + * + * @since S60 v3.2 + * @param aCMusAvaSharedObj Pointer to CMusAvaSharedObject + * @return Returns pointer to CMusAvaSip object + */ + static CMusAvaSip* NewL(); + + /** + * Destructor + * + + * @param + * @return + */ + + ~CMusAvaSip(); + + protected: + + /** + * Constructor + * + * @since S60 v3.2 + * @param aCMusAvaSharedObj Pointer to CMusAvaSharedObject + * @return + */ + + CMusAvaSip(); + + /** + * Perform the second phase construction of a + * CMusAvaSip object + * + * @since S60 v3.2 + * @param + * @return + */ + + void ConstructL(); + +public: + /** + * + * + * @param + */ + void AddAdapterL( MMusAvaSipProfileRegistryAdapter& aAdapter ); + + /** + * + * + * @param + */ + void RemoveAdapter( MMusAvaSipProfileRegistryAdapter& aAdapter ); + + /** + * + * + * @param + */ + void AddAdapterL( MMusAvaSipConnectionAdapter& aAdapter, TInt aIndex = KErrNotFound ); + + /** + * Returns CSip object + * + * @param + */ + void RemoveAdapter( MMusAvaSipConnectionAdapter& aAdapter ); + + /** + * + * + * @param + */ + void AddAdapterL( MMusAvaSipAdapter& aAdapter, TInt aIndex = KErrNotFound ); + + /** + * Returns CSip object. + * + * @param + */ + void RemoveAdapter( MMusAvaSipAdapter& aAdapter ); + +public: + + /** + * Returns CSIPConnection object. + * Ownership is not transferred. + * @param aForceCreation, ETrue if connection should be created + * if it does not exists yet. + * @return referense to Sip Object. + */ + CSIPConnection* ConnectionL( TBool aForceCreation = ETrue ); + + /** + * Returns CSIPConnection object . + * Ownership is not transferred. + * + * @return referense to Sip Object. + */ + MSIPConnectionObserver& ConnectionObserver(); + + /** + * Create Profile object. + * + * return EFalse if Profile was not created, + * ETrue otherwise. + */ + TBool CreateProfileL(); + + /** + * Create CSIPProfile object. + * + * return EFalse if CSIPProfile was not created, + * ETrue otherwise. + */ + TBool CreateSipProfile(); + + /** + * Returns CSIPProfile object. + * Ownership is not transferred. + * + * @since S60 v3.2 + * @return referense to Sip Object. + */ + CSIPProfile* Profile(); + + /** + * Returns CSIPProfileRegistry object. + * Ownership is not transferred. + * + * @return reference to Sip Object. + */ + CSIPProfileRegistry& ProfileRegistryL(); + + /** + * Returns a buffer containing the own domain, if profile registered. + * Ownership is transferred. + * + * @return Pointer to a buffer containing the own domain name. + */ + HBufC* OwnDomainLC(); + + /** + * Returns CSip object + * Ownership is not transferred. + * + * @return reference to Sip Object. + */ + CSIP& Sip(); + + /** + * Returns SipProfileId + * + * @param aSipProfileId on return will contain SipProfileId value + * @return KErrNotFound if parameter was not found, KErrNone otherwise. + */ + TInt SipProfileId( TUint32& aSipProfileId ); + + /** + * Returns a pointer to utility object that handles special client resolving + * in __VOIP enabled terminals. In __VOIP disabled terminals this will + * return a NULL pointer. This function does not transfer ownership. + * + * @return Pointer to resolver utility object. Make sure to be prepared + * that this pointer is NULL. + */ + CMusAvaClientResolverUtil* ClientResolverUtil() const; + + +private: + + /** + * Create SIPConnection object. + * + */ + void CreateSIPConnectionL(); + + /** + * Gets profile to be used with Mus. + * + * @param Reference to used profile registry. + * @return Pointer to profile meant to be used with Mus. If not possible, + * returns poiner to default profile. Ownership is transferred. + * @leave KErrNotFound if not able to return even default profile. + */ + CSIPProfile* GetMusProfileL( CSIPProfileRegistryBase& aRegistry ); + + +private: + + /** + * Pointer to CSIP object. + * Owns. + */ + CSIP* iSip; + + /** + * + * Owns. + */ + CSIPConnection* iSipConnection; + + /** + * + * Owns. + */ + CSIPProfile* iSipProfile; + + /** + * + * Owns. + */ + CSIPProfileRegistry* iSipProfileRegistry; + + /** + * Pointer to CMusAvaSipObserver object. + * Owns. + */ + CMusAvaSipObserver* iSipObserver; + + /** + * Pointer to CMusAvaSipConnectionObserver object + * Owns. + */ + CMusAvaSipConnectionObserver* iSipConnectionObserver; + + /** + * Pointer to CMusAvaSipProfileRegistryObserver object + * Owns. + */ + CMusAvaSipProfileRegistryObserver* iSipProfileRegistryObserver; + + /** + * Pointer to utility object that handles special client resolving in + * __VOIP enabled terminals. In __VOIP disabled terminals creation of + * this object will fail because of missing UID in CenRep and thus this + * pointer can be NULL. If this object does not exist, standard client + * resolving will be used. + */ + CMusAvaClientResolverUtil* iClientResolverUtil; + + TUint32 iIapId; + + MUS_UNITTEST( UT_CMusAvaOptionHandler ) + MUS_UNITTEST( UT_CMusAvaSip ) + MUS_UNITTEST( UT_CMusAvaRegisterAvailability ) + MUS_UNITTEST( UT_CMusAvaConnectionMonitor ) + MUS_UNITTEST( UT_CMusAvaCapabilitySipAgent ) + MUS_UNITTEST( UT_CMusAvaCapabilityExchange ) + }; + +#endif +