diff -r 000000000000 -r c3e98f10fcf4 localconnectivityservice/locod/inc/locodserviceman.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/localconnectivityservice/locod/inc/locodserviceman.h Mon Jan 18 21:03:15 2010 +0200 @@ -0,0 +1,117 @@ +/* +* 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: Defines the service manager class. +* +*/ + + +#ifndef T_LOCODSERVICEMAN_H +#define T_LOCODSERVICEMAN_H + +#include +#include +#include +#include +#include +#include + +class CLocodService; + +/** + * The service plugin manager. + * + * It loads, unloads service plugins on demand and manages a service availability + * according to bearer status. + * @euser.lib + * @since S60 v3.2 + */ +class CLocodServiceMan : + public CActive, + public MLocodBearerPluginObserver, + public MLocodServicePluginObserver + { +public: + + /** + * Factory method, leave the object in cleanupstack. + * + * @lib ?library + * @since S60 v3.2 + */ + static CLocodServiceMan* NewL(); + + ~CLocodServiceMan(); + +public: + +private: + + // From CActive + + void RunL(); + + void DoCancel(); + + TInt RunError(TInt aReason); + +private: + + // From MLocodBearerPluginObserver + /** + * This is a callback function used by the plugins to inform when the + * bearer's availability changes. + * + * @since S60 v3.2 + * @param aBearer the bearer which calls this nothification + * @param aStatus the status of this bearer, ETrue if it is available; + * EFalse otherwise. + */ + void NotifyBearerStatus(TLocodBearer aBearer, + TBool aStatus); + + // From MLocodServicePluginObserver + /** + * This is a callback function used by the plugins to inform when + * managing the service have completed. The parameters passed should be + * identical to the ones used when the plugin's ManageService() was called, + * plus this service plugin's implemnetation UID and the completion status. + * + * @since S60 v3.2 + * @param aBearer the bearer identification passed in ManageService() + * @param aStatus the status of this bearer passed in ManageService() + * @param aServiceImplUid, the implementation UID of this service plugin. + * @param err KErrNone if the operation succeeded; otherwise a Symbian + * error code. + */ + void ManageServiceCompleted(TLocodBearer aBearer, + TBool aStatus, + TUid aServiceImplUid, + TInt err); + +private: + + CLocodServiceMan(); + + void ConstructL(); + + void LoadServicesL(); + +private: // data + RPointerArray iServices; + TInt iBearerStatus; + TUid iUidDun; // DUN id + }; + + +#endif // T_LOCODSERVICEMAN_H