diff -r 000000000000 -r f5a58ecadc66 upnp/upnpstack_plat/upnp_common_api/inc/upnpargument.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/upnp/upnpstack_plat/upnp_common_api/inc/upnpargument.h Tue Feb 02 01:12:20 2010 +0200 @@ -0,0 +1,166 @@ +/** @file +* Copyright (c) 2005-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: Declares the CUpnpArgument class +* +*/ + + +#ifndef C_CUPNPARGUMENT_H +#define C_CUPNPARGUMENT_H + +// INCLUDES + +#include +#include +#include "upnpcons.h" + +// ENUMERATIONS + +enum { EIn, EOut }; + +// FORWARD DECLARATIONS + +class CUpnpSoapMessage; +class CUpnpService; + +// CLASS DECLARATION + +/** +* Used to make a common body for actions. +* This class is only used when an action is sent or received. +* This class makes a common body for actions, which can then be modified by user. +* +* @since Series60 2.6 +*/ +class CUpnpArgument : public CBase +{ +public: // Constructors and destructor + static CUpnpArgument* NewL( CUpnpService& aParentService ); + + /** + * Two-phased constructor for building from a XML node. + * Internally uses the function NewL(CSereneElement*) + */ + static CUpnpArgument* NewL( CUpnpArgument& aArgument, + CUpnpService& aParentService ); + + /** + * Destructor. + */ + virtual ~CUpnpArgument(); + +public: // New functions + + /** + * Returns type of the argument. + * @since Series60 2.6 + * @return TArgumentType. + */ + IMPORT_C TArgumentType Type(); + + /** + * Returns direction of the argument. + * @since Series60 2.6 + * @return EIn or EOut. + */ + IMPORT_C TInt Direction() const; + + /** + * Returns related state variable. + * @since Series60 2.6 + * @return the related state variable + */ + IMPORT_C TDesC8& RelatedStateVariable(); + + /** + * Returns the name of the argument. + * @since Series60 2.6 + * @return argument name + */ + IMPORT_C TDesC8& Name(); + + /** + * Returns the value of the argument. + * @since Series60 2.6 + * @return Value of argument. + */ + IMPORT_C TDesC8& Value(); + + /** + * Sets the value of argument. + * @since Series60 2.6 + * (If the value is inproper, the method leaves with EInvalidArgs, + * which is the internal upnp error code used by UPnP Stack) + * @param aValue Value that is to be set for this argument. + */ + IMPORT_C void SetValueL( const TDesC8& aValue ); + + void SetDirectionL( TInt aDirection ); + + void SetNameL(const TDesC8& aDirection ); + + void SetRelatedStateVarL(const TDesC8& aRelatedStateVar); + + void ConstructL(); + + void SetType( TInt aType ); + +private: // Constructors + + /** + * C++ default constructor. + * @param aParentService Parent service. + */ + CUpnpArgument( CUpnpService& aParentService ); + + /** + * By default Symbian 2nd phase constructor is private. + * Adds the arguments and their default values according to the XML node + * @param aNode CSenElement. + */ + void ConstructL( CUpnpArgument& aArgument ); + + /** + * Delete and null iValue member. + */ + void DeleteAndNullValue(); + + /** + * Checks the error code for the SetValue method and leaves if needed. + */ + void CheckErrorL(TInt aError, const TDesC8& aValue); +private: // Data + + // Argument name buffer, owned + HBufC8* iName; + + // Related state varable buffer, owned + HBufC8* iRelatedStateVariable; + + // Direction, owned + TInt iDirection; + + // Value of the related state variable + HBufC8* iValue; + + // Type of the related state variable + TInt iType; + + // Parent service, owned + CUpnpService& iParentService; +}; + +#endif // C_CUPNPARGUMENT_H + +// End of File \ No newline at end of file