diff -r 000000000000 -r 1bce908db942 ipappsrv_plat/comms_event_api/inc/mceoutrefer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ipappsrv_plat/comms_event_api/inc/mceoutrefer.h Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,172 @@ +/* +* Copyright (c) 2005 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: +* +*/ + + + + +#ifndef CMCEOUTREFER_H +#define CMCEOUTREFER_H + +// INCLUDES +#include +#include + +// FORWARD DECLARATIONS +class CSIPProfile; + +// CLASS DECLARATION + +/** +* Class for mobile originated MCE refers. +* +* CMceOutRefer represents outgoing request to remote terminal to perform an action. +* This request may or may not also implicitically generate an event. This is +* indicated by type while instantiating the class. If event is generated, instance +* of CMceOutEvent is returned in ReferL function call. This will lead to notifications +* send by remote terminal received through MMceEventObserver::NotifyReceived() function. +* +* The refer is finally terminated by the remote endpoint. +* +* If for any reason instance of this class is deleted while in active state, +* refer is automatically terminated by MCE server. +* +* @lib mceclient.lib +*/ +class CMceOutRefer: public CMceRefer + { + public: // Constructors and destructor + + /** + * Two-phased constructor. + * @param aManager, reference to event manager + * @param aProfile, reference to used SIP profile + * @param aRecipient, recipient of the refer. + * @param aReferTo, value placed into refer-to header. + * @param aType, type of the refer. + * @param aOriginator, originator of the refer. + */ + IMPORT_C static CMceOutRefer* NewL( + CMceManager& aManager, + CSIPProfile& aProfile, + const TDesC8& aRecipient, + const TDesC8& aReferTo, + TType aType = ENoSuppression, + HBufC8* aOriginator = 0 ); + + /** + * Two-phased constructor. Should be used when refer is associated + * to existing event. This guarantees that refer is sent + * to same remote terminal with the event. + * @param aEvent, reference to bound event. + * @param aReferTo, value placed into refer-to header. + * @param aType, type of the refer. + */ + IMPORT_C static CMceOutRefer* NewL( + CMceEvent& aEvent, + const TDesC8& aReferTo, + TType aType = ENoSuppression ); + + /** + * Two-phased constructor. Should be used when refer is associated + * to existing session. This guarantees that refer is sent + * to same remote terminal with the session. + * @param aSession, reference to bound session + * @param aReferTo, value placed into refer-to header. + * @param aType, type of the refer. + */ + IMPORT_C static CMceOutRefer* NewL( + CMceSession& aSession, + const TDesC8& aReferTo, + TType aType = ENoSuppression ); + + /** + * Two-phased constructor. Should be used when refer is associated + * to existing refer. This guarantees that refers are sent + * to same remote terminal. + * @param aRefer, reference to bound refer + * @param aReferTo, value placed into refer-to header. + * @param aType, type of the refer. + */ + IMPORT_C static CMceOutRefer* NewL( + CMceRefer& aRefer, + const TDesC8& aReferTo, + TType aType = ENoSuppression ); + + /** + * Destructor. + */ + IMPORT_C ~CMceOutRefer(); + + + public: // New functions + + /** + * Refers to ongoing session. + * @pre State() == CMceRefer::EIdle + * @post State() == CMCRefer::EPending + * @param aHeaders, SIP headers to be added. Ownership is + * transferred. + * @param aContentType, content type of the body. Ownership is + * transferred. + * @param aContent, content to be added in a body. Ownership is transferred. + */ + IMPORT_C CMceOutEvent* ReferL( + CDesC8Array* aHeaders = 0, + HBufC8* aContentType = 0, + HBufC8* aContent = 0 ); + + public: // Functions from base class + + /** + * Returns truth value, is the refer in-refer or not. + * @return TBool, EFalse. + */ + TBool IsInRefer() const; + + private: + + /** + * C++ default constructor. + * @param aManager, reference to event manager. + * @param aProfileId, id of the sip profile used for the event, + * @param aDialogId, the ID of the dialog this REFER + * is created into + * @param aType + */ + CMceOutRefer( CMceManager& aManager, + TUint32 aProfileId, + TUint32 aDialogId, + TType aType ); + + /** + * second-phase constructor + */ + void ConstructL(const TDesC8& aRecipient, + const TDesC8& aReferTo, + TType aType, + HBufC8* aOriginator ); + /** + * second-phase constructor + */ + void ConstructL(const TDesC8& aRecipient, + const TDesC8& aReferTo, + TType aType, + const TDesC8& aOriginator ); + + }; + +#endif