webservices/wsutils/inc/senattribute.h
changeset 0 62f9d29f7211
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webservices/wsutils/inc/senattribute.h	Thu Jan 07 16:19:19 2010 +0200
@@ -0,0 +1,177 @@
+/*
+* Copyright (c) 2004 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 SEN_ATTRIBUTE_H
+#define SEN_ATTRIBUTE_H
+
+#include <e32base.h>
+
+typedef RPointerArray<HBufC8> RAttrValueArray;
+
+
+// CLASS DECLARATION
+
+/**
+ *  ?one_line_short_description.
+ *  ?other_description_lines
+ *
+ *  @lib SenUtils.lib
+ *  @since Series60 3.0
+ */
+class CSenAttribute : public CBase
+    {
+public:  // Constructors and destructor
+
+    /**
+     * Basic constructor.
+     * @since Series60 3.0
+     * @param aName the name of the attribute
+     * @param aType the type of the attribute
+     * @param aValue the value of the attribute
+     */
+    IMPORT_C static CSenAttribute* NewL(const TDesC8& aName,
+                                        const TDesC8& aType,
+                                        const TDesC8& aValue);
+    /**
+     * Basic constructor.
+     * @since Series60 3.0
+     * @param aName the name of the attribute
+     * @param aType the type of the attribute
+     * @param aValue the value of the attribute
+     * @param aFriendlyName if the name is not descriptive, the friendly name
+     * can be used to give morehuman-readble information
+     */
+    IMPORT_C static CSenAttribute* NewL(const TDesC8& aName,
+                                        const TDesC8& aType,
+                                        const TDesC8& aValue,
+                                        const TDesC8& aFriendlyName);
+
+    /**
+     * Destructor.
+     */
+    IMPORT_C virtual ~CSenAttribute();
+
+public: // New functions
+    /**
+     * Returns the attribute value as string.
+     * If attribute is multi-valued, the first value added will be returned.
+     * @since Series60 3.0
+     * @return ?description
+     */
+    IMPORT_C TPtrC8 Value() const;
+
+    /**
+     * Returns the attribute name as string
+     * @since Series60 3.0
+     * @return ?description
+     */
+    IMPORT_C TPtrC8 Name() const;
+
+    /**
+     * Returns the actor string
+     * @since Series60 3.0
+     * @return ?description
+     */
+    IMPORT_C TPtrC8 Type() const;
+
+    /**
+     * Returns the friendly name
+     * @since Series60 3.0
+     * @return the firendly name for the attribute
+     */
+    IMPORT_C TPtrC8 FriendlyName() const;
+
+    /**
+     * Sets the value of the attribute, separately from instantiation.
+     * Replaces existing value(s), if present.
+     * @since Series60 3.0
+     * @return void
+     */
+    IMPORT_C void SetValueL(const TDesC8& aValue);	//codescannerwarnings
+
+    /**
+     * Adds the value to the attribute, separately from instantiation.
+     * If value(s) are already present in attribute, value is appended
+     * to create multi-valued attribute.
+     * @since Series60 4.0
+     * @return void
+     */
+    IMPORT_C void AddValueL(const TDesC8& aValue);	//codescannerwarnings
+
+    /**
+     * Returns the values of the (multi-valued) attribute.
+     * @since Series60 4.0
+     * @return RAttrValueArray
+     */
+    IMPORT_C const RAttrValueArray GetValues() const;
+
+    /**
+     * Returns the number of values in the attribute.
+     * @since Series60 4.0
+     * @return TInt
+     */
+    IMPORT_C TInt NumValues() const;
+
+
+    /**
+     * Returns true if attributes are equal
+     * (string equality of values, type and friendly name equality)
+     * @since Series60 4.0
+     * @return TBool
+     */
+    IMPORT_C TBool Equals(const CSenAttribute& aAttr) const;
+
+public: // Functions from base classes
+
+    protected:  // New functions
+    /***
+     * Constructor
+     */
+    IMPORT_C CSenAttribute();
+
+    /**
+     * Basic ConstructL function
+     * @since Series60 3.0
+     */
+
+    IMPORT_C void ConstructL(const TDesC8& aName,
+                             const TDesC8& aType,
+                             const TDesC8& aValue,
+                             const TDesC8& aFriendlyName);
+private:    // Data
+
+    HBufC8* ipName ;
+    HBufC8* ipType ;
+    HBufC8* ipFriendlyName ;
+
+    RAttrValueArray iValues;
+
+    // Reserved pointer for future extension
+    TAny* ipReserved;
+    };
+
+
+#endif // SEN_ATTRIBUTE_H
+