diff -r 000000000000 -r 96612d01cf9f homescreenplugins/videochplugin/inc/videochiptvserverclient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/homescreenplugins/videochplugin/inc/videochiptvserverclient.h Mon Jan 18 20:21:12 2010 +0200 @@ -0,0 +1,203 @@ +/* +* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: CVcxNsChPublisher class declaration* +*/ + + + + +#ifndef _VCXNSCHIPTVSERVERCLIENT_H +#define _VCXNSCHIPTVSERVERCLIENT_H + +// INCLUDES +#include +#include + +#include "MIptvServiceManagementClientObserver.h" +#include + +// FWD DECLS +class CIptvServiceManagementClient; +class CVcxNsChPublishableData; +class CVcxNsChPublisher; +class CVcxNsChMCategoryListener; + +// CLASS DECLARATION + +/** + * CVcxNsChIptvServerClient + * + * Does content harvester plugin's videocenter dserver related actions. + * + * @lib vcxnscontentharverterplugin.dll + */ +class CVcxNsChIptvServerClient : public CBase, + public MIptvServiceManagementClientObserver, + public MMediatorEventObserver + { + +public: // construction / destruction + + /** + * Destructor + * + */ + ~CVcxNsChIptvServerClient(); + + /** + * constructor + * + * @param aPublisher pointer to CH plugins CP publisher + * @param aPublishableData pointer to CH plugin data + * + * @return CVcxNsChIptvServerClient* + */ + static CVcxNsChIptvServerClient* NewL( CVcxNsChPublisher* aPublisher, + CVcxNsChPublishableData* aPublishableData ); + +private: + + /** + * constructor + * + * @param aPublisher pointer to CH plugins CP publisher + * @param aPublishableData pointer to CH plugin data + */ + CVcxNsChIptvServerClient( CVcxNsChPublisher* aPublisher, + CVcxNsChPublishableData* aPublishableData ); + + /** + * default constructor, not implemented + * + */ + CVcxNsChIptvServerClient(); + + /** + * Symbian 2nd phase constructor + * + */ + void ConstructL(); + + +public: // FROM SM CLIENT + + /** + * empty implementation + */ + void AddServiceResp( TRespStatus ){}; + + /** + * empty implementation + */ + void UpdateServiceResp( TRespStatus ){}; + + /** + * empty implementation + */ + void DeleteServiceResp( TRespStatus ){}; + + /** + * empty implementation + */ + void GetServicesResp( TRespStatus, CDesC8ArraySeg* ){}; + + /** + * empty implementation + */ + void GetUsedIapResp( TUint32, const TDesC&, CIptvNetworkSelection:: + TConnectionPermission, TBool, CIptvNetworkSelection::TRespStatus ){}; + + /** + * empty implementation + */ + void ServerShutdownResp( TRespStatus ){}; + + /** + * Method is used to check if the preloaded service is + * deleted (unsubscribed) or added (subscribed). + * If deleted, item's data is deleted from the CP + * If added back item's data is returned to CP + * + * @param aEvent event to check + * + * + */ + void HandleSmEvent( CIptvSmEvent& aEvent ); + +public: // From MMediatorEventObserver + + /** + * Catches the mediator events. In this context we handle + * + */ + void MediatorEventL( TUid aDomain, + TUid aCategory, + TInt aEventId, + const TDesC8& aData ); + +public: // new methods + + /** + * Method creates CIptvServiceManagementClient object + * to startup IPTV server. + */ + void StartIPTVServerInterfaceL(); + + /** + * Deletes CIptvServiceManagementClient object. + * IPTV server is stopped if there are no other + * instances using it. + */ + void StopIPTVServerInterface(); + + /** + * Method is used to get an id from the service, + * based on the uri provided. + * This method should only be called once during + * plugin startup. + * + * @param aServiceUri uri to be used to check the service + * + * @return service id or KErrNotFound, if service is not found + * + */ + TInt GetServiceGroupIdL( const TDesC& aServiceUri ); + + + + +private: // Data + + CIptvServiceManagementClient* iSmClient; + + /** + * Publishable data container. Not owned. + */ + CVcxNsChPublishableData* iPublishableData; + + /** + * Publisher object used to publish data from CVcxNsChPublishableData + * to service api. Not owned. + */ + CVcxNsChPublisher* iPublisher; + + /** + * Mediator helper object for registering and subscribing + * matrix action handler mediator events. Owned. + */ + CVcxNsChMCategoryListener* iAhCategoryListener; + + }; + +#endif // _VCXNSCHIPTVSERVERCLIENT_H