diff -r 000000000000 -r 62f9d29f7211 webservices/wsframework/inc/msenlayeredproperties.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/webservices/wsframework/inc/msenlayeredproperties.h Thu Jan 07 16:19:19 2010 +0200 @@ -0,0 +1,248 @@ +/* +* Copyright (c) 2005 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: Header declaration +* +*/ + + + + + + + + +#ifndef M_SEN_LAYERED_PROPERTIES_H +#define M_SEN_LAYERED_PROPERTIES_H + +// INCLUDES +#include +#include "MSenProperties.h" +#include "MSenProperty.h" + +class MSenLayeredProperties : public MSenProperties // Does not implement ReadFromL(UTF-8), but DOES implement WriteToL() in a way, where a flat property is generated looping through all the layers.. + { + public: + /** + * PropertiesClassType enumeration. + */ + enum TSenPropertiesLayer + { + ESenTransportLayer = 1, + ESenSereneLayer = 2, + ESenFrameworkLayer = 3, + ESenProviderSessionLayer = 4, + ESenConsumerSessionLayer = 5, + ESenMessageLayer = 6, + ESenLastLayer = ESenMessageLayer + }; + + + + /** + * Writes given layer from this properties object as descriptor + * into a stream. + * UTF-8 charset encoding will be used. + * @since Series60 + * @param aLayer The layer to be used. + * @param aWriteStream The stream to write to. + */ + virtual void WriteToL(RWriteStream& aWriteStream, TSenPropertiesLayer aLayer) = 0; + + /** + * Reads this properties object from the descriptor to given + * layer. + * UTF-8 charset encoding should be used. + * @since Series60 + * @param aBuffer The buffer to read from. + * @param aLayer The layer to be used. + */ + virtual void ReadFromL(const TDesC8& aBuffer, TSenPropertiesLayer aLayer) = 0; + + /** + * Get the given layer from these properties as UTF-8 charset + * encoded descriptor. + * @since Series60 + * @param aLayer The layer to be used. + * @return a pointer to UTF-8 encoded descriptor. + * Caller takes ownership. + */ + virtual HBufC8* AsUtf8L(TSenPropertiesLayer aLayer) = 0; + + /** + * Get the given layer from these properties as UTF-8 charset + * encoded descriptor. + * @since Series60 + * @param aLayer The layer to be used. + * @return a pointer to UTF-8 encoded descriptor, which is + * has been left on cleanup stack. + * Caller takes ownership. + */ + virtual HBufC8* AsUtf8LC(TSenPropertiesLayer aLayer) = 0; + + virtual TInt ShrinkTo(TSenPropertiesLayer aLayer) = 0; + + virtual void ExpandToL(TSenPropertiesLayer aLayer) = 0; + + virtual TSenPropertiesLayer TopLayer() = 0; + + /** + * Sets new property. + * + * If property with given name does not exist, + * new property with given value will be added. Otherwise the value of + * existing property will be updated. + * + * @since Series60 + * @param aName Name of the property, which can be later used + * to refer the given value. + * @param aValue Is the value of this property. + * @param aLayer The layer to be used. + * @return KErrNone if no error, or some of the system wide + * error codes. + * Leave codes: + * According to implementing classes. + */ + virtual TInt SetPropertyL(const TDesC8& aName, + const TDesC8& aValue, + TSenPropertiesLayer aLayer) = 0; + + /** + * Gets the value of the property behind certain name. + * @since Series60 + * @param aName The name identifying this property. + * @param aValue A TPtrC8 reference to be filled in with the value of + * the property. + * @param aLayer The layer to be used. + * @return KErrNone if no error, or some of the system wide + * error codes. + */ + virtual TInt PropertyL(const TDesC8& aName, + TPtrC8& aValue, + TSenPropertiesLayer aLayer) = 0; + + /** + * Gets the MSenProperty of the property behind certain name. + * @since Series60 + * @param aName The name identifying this property. + * @param aValue A MSenProperty reference to pointer to be filled in with + * the pointer to the property. + * @param aLayer The layer to be used. + * @return KErrNone if no error, or some of the system wide + * error codes. + */ + virtual TInt PropertyL(const TDesC8& aName, + MSenProperty*& aValue, + TSenPropertiesLayer aLayer) = 0; + + /** + * Gets the MSenProperty of the property behind certain name. + * @since Series60 + * @param aName The name identifying this property. + * @param aValue A MSenProperty reference to pointer to be filled in with + * the pointer to the property. + * @return KErrNone if no error, or some of the system wide + * error codes. + */ + virtual TInt PropertyL(const TDesC8& aName, + MSenProperty*& aValue) = 0; + + /** + * Gets the array of MSenProperties which match to given property type. + * @since Series60 + * @param aTypeName The name identifying property type. + * @param aArray An array containing MSenProperties which macth + * to given property type. + * @return KErrNone if no error, or some of the system wide + * error codes. + */ + virtual TInt PropertiesByTypeL(const TDesC8& aTypeName, + RPointerArray& aArray) = 0; + + /** + * Sets new integer property. + * + * If property with given name does not exist, + * new property with given value will be added. Otherwise the value of + * existing property will be updated. + * + * @since Series60 + * @param aName Name of the property, which can be later used + * to refer the given value. + * @param aValue Is the integer value of this property. + * @param aLayer The layer to be used. + * @return KErrNone if no error, or some of the system wide + * error codes. + * Leave codes: + * According to implementing classes. + */ + virtual TInt SetIntPropertyL(const TDesC8& aName, + const TInt aValue, + TSenPropertiesLayer aLayer) = 0; + + /** + * Gets the integer value of the property behind certain name. + * @since Series60 + * @param aName The name identifying this property. + * @param aValue A TInt reference to be filled in with the value of + * the property. + * @param aLayer The layer to be used. + * @return The value of the property, or KNullDesC8 if + * property is not found. + */ + virtual TInt IntPropertyL(const TDesC8& aName, + TInt& aValue, + TSenPropertiesLayer aLayer) = 0; + + /** + * Sets new boolean property. + * + * If property with given name does not exist, + * new property with given value will be added. Otherwise the value of + * existing property will be updated. + * + * @since Series60 + * @param aName Name of the property, which can be later used + * to refer the given value. + * @param aValue The boolean value of this property. + * @param aLayer The layer to be used. + * @return KErrNone if no error, or some of the system wide + * error codes. + * Leave codes: + * According to implementing classes. + */ + virtual TInt SetBoolPropertyL(const TDesC8& aName, + const TBool aValue, + TSenPropertiesLayer aLayer) = 0; + + /** + * Gets the boolean value of the property behind certain name. + * @since Series60 + * @param aName The name identifying this property. + * @param aValue A TBool reference to be filled in with the value of + * the property. + * @param aLayer The layer to be used. + * @return KErrNone if no error, or some of the system wide + * error codes. + */ + virtual TInt BoolPropertyL(const TDesC8& aName, + TBool& aValue, + TSenPropertiesLayer aLayer) = 0; + + }; + +#endif // M_SEN_LAYERED_PROPERTIES_H + + +// End of File +