diff -r f742655b05bf -r d38647835c2e convergedconnectionhandler/cchserver/inc/cchpluginhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/convergedconnectionhandler/cchserver/inc/cchpluginhandler.h Wed Sep 01 12:29:57 2010 +0100 @@ -0,0 +1,346 @@ +/* +* 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: CCCHPluginHandler declaration +* +*/ + + +#ifndef C_CCHPLUGINHANDLER_H +#define C_CCHPLUGINHANDLER_H + +// INCLUDES +#include +#include +#include + +#include "cchclientserver.h" + +// CONSTANTS +// None + +// MACROS +// None + +// DATA TYPES +// None + +// FUNCTION PROTOTYPES +// None + +// FORWARD DECLARATIONS +class CCCHServerBase; +class CCCHPlugin; +class REComSession; +class MCCHServiceNotifier; + +// CLASS DECLARATION + +/** + * CCCHPluginHandler declaration + * Class handles plug-in's for CCH server + * @lib cchserver.exe + * @since S60 3.2 + */ +NONSHARABLE_CLASS( CCCHPluginHandler ) : public CBase + { + +public: // Constructors and destructor + + /** + * Two-phased constructor. + */ + static CCCHPluginHandler* NewL( CCCHServerBase& aServer ); + + /** + * Destructor. + */ + virtual ~CCCHPluginHandler(); + +public: // New functions + + /** + * Load all available plug-ins + * @since S60 3.2 + */ + void LoadPluginsL(); + + /** + * Load a certain Plug-in + * @since S60 3.2 + * @param aUid Plug-ins Uid + */ + void LoadPluginsL( const TUid& aUid ); + + /** + * Unloads a certain Plug-in + * @since S60 3.2 + * @param aUid Plug-ins Uid + */ + void UnloadPlugin( const TUid& aUid ); + + /** + * Enable a certain Service + * @since S60 3.2 + * @param aServiceId Service to enable + * @param aUids Uids-array contains Connectivity Plug-ins Uids + * @param aType Subservice's type to enable + * @param aObserver Pointer to observer. + * @param aIapId Used IAP Id + * @param aConnectivityCheck Is value is True Connectivity Plug-in will + * make test call to check is the connection truly working. + */ + void EnableServiceL( const TUint32 aServiceId, + const RArray& aUids, + const TCCHSubserviceType aType, + MCCHServiceNotifier* aNotifier, + const TUint32 aIapId = 0, + const TBool aConnectivityCheck = EFalse ); + + /** + * Disable a certain Service + * @since S60 3.2 + * @param aServiceId Service to disable + * @param aUids Uids-array contains Connectivity Plug-ins Uids + * @param aType Subservice's type to disable + */ + void DisableServiceL( const TUint32 aServiceId, + const RArray& aUids, + const TCCHSubserviceType aType ) const; + + /** + * Get a certain Service's state + * @since S60 3.2 + * @param aServiceId Used Service Id + * @param aUid Service's Uid + * @param aType Subservice's type + * @param aState On completion contains Service's state + * @param aError Returns the current error + */ + void GetServiceState( const TUint32 aServiceId, + const TUid aUid, + const TCCHSubserviceType aType, + TCCHSubserviceState& aState, + TInt& aError ); + + /** + * Get a certain Service's network(SNAP/IAP) information + * @since S60 3.2 + * @param aServiceId Used Service Id + * @param aUid Service's Uid + * @param aType Subservice's type + * @param aSnapId On completion contains Service's SNAP Id + * @param aIapId On completion contains Service's IAP Id + * @param aSNAPLocked On completion contains ETrue if Service's SNAP Id cannot be edited + * @return General symbian error code. + */ + TInt GetServiceNetworkInfo( const TUint32 aServiceId, + const TUid aUid, + const TCCHSubserviceType aType, + TUint32& aSnapId, + TUint32& aIapId, + TBool& aSNAPLocked, + TBool& aPasswordSet); + + /** + * Set Service to use given SNAP Id + * @since S60 3.2 + * @param aServiceId Used Service Id + * @param aUids Uids-array contains Connectivity Plug-ins Uids + * @param aType Subservice's type + * @param aSnapId Set Service to use this SNAP Id + */ + void SetSnapIdL( const TUint32 aServiceId, + const RArray& aUids, + const TCCHSubserviceType aType, + const TUint32 aSnapId ); + + /** + * Set Service to use given IAP Id + * @since S60 3.2 + * @param aServiceId Used Service Id + * @param aUids Uids-array contains Connectivity Plug-ins Uids + * @param aType Subservice's type + * @param aIapId Set Service to use this IAP Id + * @leave Symbian error code + */ + void SetIapIdL( const TUint32 aServiceId, + const RArray& aUids, + const TCCHSubserviceType aType, + const TUint32 aIapId ); + + /** + * Set Service to use given username + * @since S60 3.2 + * @param aServiceId Used Service Id + * @param aUids Uids-array contains Connectivity Plug-ins Uids + * @param aType Subservice's type + * @param aUsername Set Service to use this username + * @return In case of an error leaves. + * KErrNotFound or symbian error code. + * KErrArgument if passed argument(s) is/are incorrect + */ + void SetUsernameL( const TUint32 aServiceId, + const RArray& aUids, + const TCCHSubserviceType aType, + const TDesC& aUsername ); + + /** + * Returns the connection parameters + * @since S60 3.2.3 + * Uid Plug-in uid. + * @param aServiceSelection Selected service, ID and type + * @param aValue Value of the parameter + * @return Symbian error code + */ + TInt GetConnectionParameter( const TUid aUid, + const TServiceSelection& aServiceSelection, + RBuf& aValue ); + + + /** + * Set Service to use given password + * @since S60 3.2 + * @param aServiceId Used Service Id + * @param aUids Uids-array contains Connectivity Plug-ins Uids + * @param aType Subservice's type + * @param aUsername Set Service to use this password + * @return In case of an error leaves. + * KErrNotFound or symbian error code. + * KErrArgument if passed argument(s) is/are incorrect + */ + void SetPasswordL( const TUint32 aServiceId, + const RArray& aUids, + const TCCHSubserviceType aType, + const TDesC& aPassword ); + + /** + * Get Service's protocol information + * @since S60 3.2 + * @param aServiceId Used Service Id + * @param aUid Service's Uid + * @param aType Subservice's type + * @param aBuffer On completion contains Service's information + * @return General symbian error code. + */ + TInt GetServiceInfo( const TUint32 aServiceId, + const TUid aUid, + const TCCHSubserviceType aType, + TDes& aBuffer ); + + /** + * Reserve service for exclusive use + * @since S60 3.2 + * @param aServiceId Used Service Id + * @param aUid Service's Uid + * @param aType Subservice's type + * @return General symbian error code. + */ + TInt ReserveService( const TUint32 aServiceId, + const TUid aUid, + const TCCHSubserviceType aType ); + + + /** + * Free exlusive service reservation + * @since S60 3.2 + * @param aServiceId Used Service Id + * @param aUid Service's Uid + * @param aType Subservice's type + * @return General symbian error code. + */ + TInt FreeService( const TUint32 aServiceId, + const TUid aUid, + const TCCHSubserviceType aType ); + + /** + * Returns the service's reservation status + * @since S60 3.2 + * @param aServiceId Used Service Id + * @param aUid Service's Uid + * @param aType Subservice's type + * @return Reservation status. + */ + TBool IsReserved( const TUint32 aServiceId, + const TUid aUid, + const TCCHSubserviceType aType ) const; + + /** + * Is Service available via these IAPs + * @since S60 3.2 + * @param aServiceId Used Service Id + * @param aUid Service's Uid + * @param aType Subservice's type + * @param aIapIdArray Id array of the currently available IAPs. + * @return ETrue if service is available. + */ + TBool IsAvailableL( const TUint aServiceId, + const TUid aUid, + const TCCHSubserviceType aType, + RArray& aIapIds ) const; + + /** + * Adds a observer for Plug-in events. + * @since S60 3.2 + * @param aObserver Pointer to observer. + */ + void SetServiceNotifier( MCCHServiceNotifier* aObserver ); + + /** + * Removes a observer for Plug-in events. + * @since S60 3.2 + * @param aObserver Pointer to observer. + */ + void RemoveServiceNotifier( MCCHServiceNotifier* aObserver ); + +private: + + /** + * Find Plug-in's index number + * @since S60 3.2 + * @param aUid Plug-in's Uid + * @param TInt Plug-in's index number or KErrNotFound + */ + TInt Find( const TUid& aUid ) const; + + /** + * Cleanup RImplInfoPtrArray + * @since S60 3.2 + * @param aArray Which to be destroyed + */ + static void ResetAndDestroy( TAny* aArray ); + +private: + + /** + * C++ default constructor. + */ + CCCHPluginHandler( CCCHServerBase& aServer ); + +private: // data + + /** + * Server handle + */ + CCCHServerBase& iServer; + + /** + * Array of loaded Plug-ins + */ + RPointerArray iPlugins; + + }; + +#endif // C_CCHPLUGINHANDLER_H + +// End of file