diff -r 000000000000 -r 094583676ce7 inc/cimpspresenceaaconnectionng.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/cimpspresenceaaconnectionng.h Thu Dec 17 08:41:52 2009 +0200 @@ -0,0 +1,192 @@ +/* +* 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: IMPS connection management services to AA plugins. +* +*/ + +#ifndef __CIMPSPRESENCEAACONNECTIONNG_H +#define __CIMPSPRESENCEAACONNECTIONNG_H + +// INCLUDES +#include +#include +#include + +// FORWARD DECLARATION +class CIMPSPresenceAAConnectionImp; +class CIMPSSAPSettingsStore; +class CPEngNWSessionSlotID2; + +// CLASS DECLARATION +/** + * CIMPSPresenceAAConnection. + * + * CIMPSPresenceAAConnection provides presence + * connection management services to + * presence / IMPS always automatic plugins. + * + * + * @lib IMPSConnectionUi + * @since 2.1 + */ +class CIMPSPresenceAAConnection : public CBase + { + public: // Two-phased constructors and destructor + + /** + * Two-phased constructor. + * + * @param aSapStore The SAP settings store to use. + * Given SAP settings store object lifetime must be + * longer created CIMPSPresenceConnectionUi. + * If no SAP settings store provided, creates own + * SAP Settings store internally when needed. + */ + IMPORT_C static CIMPSPresenceAAConnection* NewL( + TIMPSConnectionClient aClient, + CIMPSSAPSettingsStore* aSapStore = NULL ); + + /** + * Two-phased constructor. + * Leaves CIMPSPresenceAAConnection object on the + * CleanupStack. + * + * @param aSapStore The SAP settings store to use. + * Given SAP settings store object lifetime must be + * longer created CIMPSPresenceConnectionUi. + * If no SAP settings store provided, creates own + * SAP Settings store internally when needed. + */ + IMPORT_C static CIMPSPresenceAAConnection* NewLC( + TIMPSConnectionClient aClient, + CIMPSSAPSettingsStore* aSapStore = NULL ); + + + /** + * Destructor. + */ + IMPORT_C virtual ~CIMPSPresenceAAConnection(); + + + public: // New connection handling methods + + + /** + * Connects to remote presence server. + * + * Connects the given client group to remote presence + * server. Connection is established to default SAP defined + * in SAP Settings Store. + * + * Status of the connection operation is returned as + * return value. Internal Symbian OS errors (like running out + * of resources, or other fatal errors coming from underlying + * Presence Engine) are handled by leaving. + * + * @since 2.1 + * @param aClient Which client group to login. + * @param aShowDetailedError Should we show error note to user + * in case an error occurs during login. + * @return + */ + IMPORT_C TInt LoginL( TIMPSConnectionClient aClient, + TBool aShowDetailedError = EFalse ); + + + /** + * Disconnects from remote presence server. + * + * Internal Symbian OS errors (like running out of resources, + * or other fatal errors coming from underlying Presence Engine) + * are handled by leaving. + * + * @since 2.1 + * @param aClient The client using the Connection UI to logout + * from presence service. (This client is logged out.) + * @param aIsScheduled Tells if this is a normal scheduled + * scheduled logout (Need to ask confirmation from user) + * @return Currently always KErrNone. + */ + IMPORT_C TInt LogoutL( TIMPSConnectionClient aClient, + TBool aIsScheduled = EFalse ); + + + /** + * Gets the remote presence server connection status. + * + * Gets the remote presence server connection status + * for desired client group. + * + * @since 2.1 + * @param aClient The client which connection status + * to check. + * @return ETrue if client is logged in, else EFalse. + */ + IMPORT_C TBool LoggedInL( TIMPSConnectionClient aClient ); + + + /** + * Gets the pure connection status from Presence Engine. + * + * @since 2.1 + * @return Connection status from Presence Engine. + */ + IMPORT_C TPEngNWSessionSlotState PureServiceStatusL( + const CPEngNWSessionSlotID2& aNWSessionSlotID ); + + + /** + * Gets the current default server name. + * !!!Note!!! Ownership is transferred to the caller! + * + * @since 2.6 + * @return the current default server name + */ + IMPORT_C HBufC* DefaultServerNameL( TIMPSConnectionClient aClient ); + + /** + * Gets the active network session slot ID + * @param aClient The client whose active session slot ID to get + * !!!Note!!! Ownership is transferred to the caller! + * @since 3.0 + */ + IMPORT_C CPEngNWSessionSlotID2* GetActiveNWSessionSlotIDL( + TIMPSConnectionClient aClient ); + + private: //Constructors. + + /** + * C++ default constructor. + */ + CIMPSPresenceAAConnection(); + + + /** + * Symbian OS constructor. + */ + void ConstructL( TIMPSConnectionClient aClient, + CIMPSSAPSettingsStore* aSapStore ); + + + private: //Data + CIMPSPresenceAAConnectionImp* iImp; ///