diff -r 000000000000 -r f72a12da539e menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdservice.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/menufw/hierarchynavigator/hnmetadatamodel/inc/hnmdservice.h Thu Dec 17 08:40:49 2009 +0200 @@ -0,0 +1,222 @@ +/* +* Copyright (c) 2007-2008 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 C_HNMDSERVICE_H +#define C_HNMDSERVICE_H + +//#include +#include +#include +#include +#include + +class CLiwServiceHandler; +class CHnMdQuery; +class CLiwGenericParamList; +class MLiwInterface; +class CLiwDefaultMap; +class CHnMdBaseKey; +class CHnMdServiceCommand; +class CHnServiceHandler; + +/** + * Service. + * + * This class is desinged to facilitate dealing with services. + * + * @lib hnmetadatamodel + * @since S60 5.0 *** for example, S60 v3.0 + * @ingroup group_hnmetadatamodel + */ +NONSHARABLE_CLASS(CHnMdService) : public CBase + { +public: + + /** + * Two-phase constructor. + * + * @since S60 5.0 + * @param aElement Xml element. + * @return Fully cosntructed object. + */ + static CHnMdService* NewL( TXmlEngElement aElement ); + + /** + * Two-phase constructor. + * + * @since S60 5.0 + * @param aElement Xml element. + * @return Fully cosntructed object. + */ + static CHnMdService* NewLC( TXmlEngElement aElement ); + + /** + * Standard C++ virtual destructor. + * + * @since S60 5.0 + */ + virtual ~CHnMdService(); + + /** + * Gets service. + * + * @since S60 5.0 + * @return Service name. + */ + const TDesC8& GetServiceName() const; + + /** + * Gets interface. + * + * @since S60 5.0 + * @return Interface name. + */ + const TDesC8& GetInterfaceName() const; + + /** + * Gets command. + * + * @since S60 5.0 + * @return Service command. + */ + const CHnMdServiceCommand& GetCommand() const; + + /** + * returns query results + * + * since S60 v5.0 + * @return Result of the query to the service. + */ + const CLiwGenericParamList& Output() const; + + /** + * Returns service query constructor. + * + * since S60 v5.0 + * @return A structure of the key objects. + */ + CHnMdBaseKey* GetConstructor() const; + + /** + * Reads the consturctor into the model + * + * since S60 v5.0 + * @param aElement Xml element. + * @return A structure of the key objects. + */ + void CHnMdService::SetConstructorL( TXmlEngElement aElement ); + + /** + * Evaluates constructor. + * + * @param aList Evaluation parameter. + * @param aPos Position of the record in the parameter's list. + * @return Evaluated generic parameters list. + */ + CLiwGenericParamList* EvaluateConstructorL( const CLiwGenericParamList& aList, + TInt aPos = 0); + + /** + * Evaluates constructor as key. + * + * @param aList Evaluation parameter. + * @param aPos Position of the record in the parameter's list. + * @return Evaluated key. + */ + CHnMdBaseKey* EvaluateConstructorAsKeyL( const CLiwGenericParamList& aList, + TInt aPos = 0); + /** + * Evaluates command. + * + * @param aList Evaluation parameter. + * @param aPos Position of the record in the parameter's list. + * @return Evaluated generic parameters list. + */ + CLiwGenericParamList* EvaluateCommandL( const CLiwGenericParamList& aList, + TInt aPos = 0); + + /** + * Evaluates command as key. + * + * @param aList Evaluation parameter. + * @param aPos Position of the record in the parameter's list. + * @return Evaluated key. + */ + CHnMdBaseKey* EvaluateCommandAsKeyL( const CLiwGenericParamList& aList, + TInt aPos = 0); + + +private: + + /** + * Sets interface. + * + * @param aAttr Xml attribute. + */ + void SetInterfaceL( TXmlEngAttr aAttr ); + + /** + * Sets service. + * + * @param aAttr Xml attribute. + */ + void SetServiceL( TXmlEngAttr aAttr ); + + /** + * Standard C++ constructor. + * + * @since S60 5.0 + */ + CHnMdService(); + + + /** + * Standard symbian 2nd phase contructor. + * + * @since S60 5.0 + * @param aElement Xml element. + */ + void ConstructL( TXmlEngElement aElement ); + +private: // data + + /** + * Own - Service. + */ + RBuf8 iServiceName; + + /** + * Own - Interface. + */ + RBuf8 iInterfaceName; + + /** + * Own - Service command. + */ + CHnMdServiceCommand* iServiceCommand; + + /** + * Stores input parameters (not data) of the service search method + * (ExecuteServiceCmdL). + * Own. + */ + CHnMdBaseKey* iConstructor; + + }; + +#endif // C_HNMDSERVICEHANDLER_H