diff -r 000000000000 -r 1bce908db942 ipappsrv_plat/multimedia_comms_api/inc/mcesecureoutsession.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ipappsrv_plat/multimedia_comms_api/inc/mcesecureoutsession.h Tue Feb 02 01:04:58 2010 +0200 @@ -0,0 +1,166 @@ +/* +* Copyright (c) 2007 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 CMCESECUREOUTSESSION_H +#define CMCESECUREOUTSESSION_H + +// INCLUDES +#include +#include +#include + +// FORWARD DECLARATIONS +class CSIPProfile; +class CMceMediaStream; +class CMceManager; +class CMceEvent; +class CMceRefer; + +// CLASS DECLARATION + +/** +* Class for mobile originated secure MCE sessions. +* +* CMceSecureOutSession represents outgoing invitation to remote terminal to join in a session. +* +* The characteristics of the session are defined by user of this class by attaching +* media streams into the session. Theses charactereistics are turned by MCE server into SDP +* and attached into sent invitation request. +* +* After the session has been succesfylly established, it can be later updated and +* must be finally terminated. +* +* If for any reason instance of this class is deleted while in established state, +* session is automatically terminated by MCE server. +* +* @lib mceclient.lib +*/ +class CMceSecureOutSession : public CMceOutSession, public MMceSecureSession + { + +public: // Constructors and destructor + + /** + * Two-phased constructor. Should be used when session + * is established into new logical connection to remote terminal. + * @param aManager, reference to session manager. + * @param aProfile, sip profile used for the session. + * @param aRecipient, recipient of the session invitation. + * @param aOriginator, originator of the session invitation. + */ + IMPORT_C static CMceSecureOutSession* NewL( CMceManager& aManager, + CSIPProfile& aProfile, + const TDesC8& aRecipient, + HBufC8* aOriginator = 0 ); + + /** + * Two-phased constructor. Should be used when session is associated + * to existing event. This guarantees that session is established with + * same remote terminal with the event. + * @param aEvent, reference to existing event that is associated + * with this session. + */ + IMPORT_C static CMceSecureOutSession* NewL( CMceEvent& aEvent ); + + /** + * Two-phased constructor. Should be used when session is associated + * to existing refer. This guarantees that session is established with + * same remote terminal with the refer. + * @param aRefer, reference to existing refer that is associated + * with this session. + */ + IMPORT_C static CMceSecureOutSession* NewL( CMceRefer& aRefer ); + + /** + * Destructor. + */ + IMPORT_C ~CMceSecureOutSession(); + +public: // Functions + + /** + * Returns the type of the session. + * @return The type of the session. + */ + virtual TMceSessionType Type() const; + + /* + * Get the supported crypto contexts of the terminal. + * @return supported crypto contexts. + */ + virtual const RArray& SupportedCryptoContextsL() const; + + /* + * Get the used crypto contexts in the session. + * @return used crypto contexts. + */ + virtual const RArray& CryptoContexts() const; + + /* + * Set the used crypto contexts in the session. + * @pre State() == CMceSession::EIdle || + * State() == CMceSession::EIncoming || + * State() == CMceSession::EEstablished + * @param aArray Array of crypto contexts to be used in session. + */ + virtual void SetCryptoContextsL( const RArray& aArray ); + +public: // serialization + + /** + * Two-phased constructor. + * For temporary use only. + */ + static CMceSecureOutSession* NewL(); + +private://methods + + /** + * C++ default constructor. + * @param aManager, reference to session manager. + * @param aProfileId, id of the sip profile used for the session. + */ + CMceSecureOutSession( CMceManager* aManager, TUint32 aProfileId ); + + /** + * second-phase constructor + * @param aRecipient, the recipient + * @param aOriginator, the originator + */ + void ConstructL( const TDesC8& aRecipient, HBufC8* aOriginator ); + + /** + * second-phase constructor + * @param aRecipient, the recipient + * @param aOriginator, the originator + * @param aDialoId, the dialog ID of existing dialog + */ + void ConstructL( const TDesC8& aRecipient, + const TDesC8& aOriginator, + TUint32 aDialogId ); + +private: //data + + RArray iTemp; + + + }; + +#endif