--- /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 <e32std.h>
+#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<MSenProperty>& 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
+