diff -r 000000000000 -r c8caa15ef882 simpleengine/siputils/inc/simplesipprofileobserver.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/simpleengine/siputils/inc/simplesipprofileobserver.h Tue Feb 02 01:05:17 2010 +0200 @@ -0,0 +1,140 @@ +/* +* Copyright (c) 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: profile observer +* +*/ + + + + +#ifndef CSImpleSipProfileObserver_H +#define CSImpleSipProfileObserver_H + +// INCLUDES +#include +#include + +#include "simplesipconnectionobserver.h" + +// FORWARD DECLARATIONS +class CSIPProfileRegistry; +class CSIPProfile; + +// CLASS DECLARATIONS + +class CSimpleSipProfileObserver: public CBase, public MSIPProfileRegistryObserver +{ + +public: + + ~CSimpleSipProfileObserver(); + + /** + * Two phase constructor + * @param aSIP SIP core connection + * @param aObs SIP connection observer for callbacks + */ + static CSimpleSipProfileObserver* NewL( CSIP* aSIP, CSimpleSipConnectionObserver& aObs ); + + /** + * Register default profile + * This start the registering and later the GiveConnectionL can be + * used to get the ready connection. + */ + void RegisterDefaultProfileL(); + + /** + * Register specified profile + * This start the registering and later the GiveConnectionL can be + * used to get the ready connection. + * @param aId SIP Profile ID + */ + void RegisterGivenProfileL( TUint32 aID ); + + /** + * Give the registered connection. + * Leaves with KErrNotReady if not ready. + * MSimpleSipConnCallback::ConnectionStateChange() is called when + * the registeration is ready. + * @return SIP connection, ownership is changed + */ + CSIPConnection* GiveConnectionL(); + + /** + * Is the SIP Profile active + * @return ETrue if active. + */ + TBool IsProfileActive(); + + /** + * Give current registered user's AOR. + * Leaves with KErrNotReady if profile is not registered. + * @return AOR URI + */ + TPtrC8 GiveUserAorL(); + + /** + * Current profile accessor + */ + MSIPRegistrationContext* ProfileContext(); + +public://functions from MSIPProfileObserver + /** + * An event related to SIP Profile has accorred + * @param aProfileId a profile Id + * @param aEvent an occurred event + **/ + void ProfileRegistryEventOccurred(TUint32 aProfileId, TEvent aEvent); + + /** + * An asynchronous error has occurred related to SIP profile + * Event is send to those observers, who have the + * corresponding profile instantiated. + * @param aProfileId the id of failed profile + * @param aError an occurred error + */ + void ProfileRegistryErrorOccurred(TUint32 aProfileId, TInt aError); + +protected: + + /** + * Second-phase constructor. + */ + void ConstructL( CSIP* aSIP ); + + CSimpleSipProfileObserver( CSimpleSipConnectionObserver& aObs ); + +private: // data + + /** + * Next observer class where to send the events. + */ + CSimpleSipConnectionObserver& iObs; + + /** + * Own. SIP profile registry. + */ + CSIPProfileRegistry* iRegistry; + + /** + * Own. SIP profile + */ + CSIPProfile* iProfile; + +#ifdef _DEBUG + friend class T_CSimpleSipConnection; +#endif +}; + +#endif