webengine/wmlengine/src/hed/include/nw_hed_domhelper.h
branchRCL_3
changeset 94 919f36ff910f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/wmlengine/src/hed/include/nw_hed_domhelper.h	Wed Sep 01 12:28:30 2010 +0100
@@ -0,0 +1,559 @@
+/*
+* Copyright (c) 2000 - 2001 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "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: 
+*
+*/
+
+/** ----------------------------------------------------------------------- **
+    @package:     NW_HED
+
+    @synopsis:    Convenience functions for accessing the DOM.
+
+    @description: default
+
+ ** ----------------------------------------------------------------------- **/
+
+#ifndef NW_HED_DOM_HELPER_H
+#define NW_HED_DOM_HELPER_H
+
+#include <nw_dom_node.h>
+#include <nw_string_string.h>
+#include "nw_hed_context.h"
+#include "nw_hed_entityset.h"
+#include "BrsrStatusCodes.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/* ------------------------------------------------------------------------- *
+   public data types
+ * ------------------------------------------------------------------------- */
+
+/** ----------------------------------------------------------------------- **
+    @struct:       NW_HED_DomHelper_t
+
+    @synopsis:    default
+
+    @scope:       public
+    @variables:
+       const NW_HED_EntitySet_t*
+                  default
+
+       NW_HED_Context_t* context
+                  default
+
+       NW_Bool resolvePlainTextVariablesAndEntities
+                  default
+
+    @description: default
+ ** ----------------------------------------------------------------------- **/
+typedef struct NW_HED_DomHelper_s{
+  const NW_HED_EntitySet_t* entitySet;
+  NW_HED_Context_t* context;
+
+  NW_Bool resolvePlainTextVariablesAndEntities;
+} NW_HED_DomHelper_t;
+
+
+
+/* ------------------------------------------------------------------------- *
+   public methods
+ * ------------------------------------------------------------------------- */
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_ResolveEntities
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_HED_EntitySet_t* entitySet
+                  default
+
+       [in] const NW_Ucs2* origText
+                  default
+
+       [out] NW_String_t* destString
+                  default
+
+    @description: default
+
+    @returns:     TBrowserStatusCode
+                  default
+
+       [default]
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_ResolveEntities (const NW_HED_EntitySet_t* entitySet,
+                                                     const NW_Ucs2* origText, 
+                                                     NW_String_t* destString);
+
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_GetAttributeValue
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_HED_DomHelper_t* domHelper
+                  default
+
+       [in] const NW_DOM_Node_t* element
+                  default
+
+       [in] NW_Uint16 attribute
+                  default
+
+       [out] NW_String_t* value
+                  default
+
+    @description: default
+
+    @returns:     TBrowserStatusCode
+                  default
+
+       [default]
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_GetAttributeValue (const NW_HED_DomHelper_t* domHelper,
+                                                const NW_DOM_Node_t* element, 
+                                                NW_Uint16 attribute, 
+                                                NW_String_t* value);
+
+TBrowserStatusCode NW_HED_DomHelper_GetHTMLAttributeValue (const NW_HED_DomHelper_t* domHelper,
+                                                const NW_DOM_Node_t* element, 
+                                                NW_Uint16 attribute, 
+                                                NW_String_t* value);
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_GetText
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_HED_DomHelper_t* domHelper
+                  default
+
+       [in] const NW_DOM_Node_t* element
+                  default
+
+       [in] NW_Bool forceUcs2Copy
+                  default
+
+       [out] NW_String_t* value
+                  default
+
+       [out] NW_Uint32* valueEncoding
+                  default
+
+    @description: default
+
+    @returns:     TBrowserStatusCode
+                  default
+
+       [default]
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_GetText (const NW_HED_DomHelper_t* domHelper,
+                                      const NW_DOM_Node_t* element,
+                                      NW_Bool forceUcs2Copy,
+                                      NW_String_t* value,
+                                      NW_Uint32* valueEncoding);
+
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_GetChildText
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_HED_DomHelper_t* domHelper
+                  default
+
+       [in] const NW_DOM_Node_t* element
+                  default
+
+       [out] NW_String_t* value
+                  default
+
+    @description: default
+
+    @returns:     TBrowserStatusCode
+                  default
+
+       [default]
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_GetChildText (const NW_HED_DomHelper_t* domHelper,
+                                           const NW_DOM_Node_t* element,
+                                           NW_String_t* value);
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_AttributeEquals
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_HED_DomHelper_t* domHelper
+                  default
+
+       [in] const NW_DOM_Node_t* element
+                  default
+
+       [in] NW_Uint16 attribute
+                  default
+
+       [in] const NW_String_t* value
+                  default
+
+    @description: default
+
+    @returns:     NW_Bool
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+NW_Bool NW_HED_DomHelper_AttributeEquals (const NW_HED_DomHelper_t* domHelper,
+                                          const NW_DOM_Node_t* element, 
+                                          NW_Uint16 attribute,
+                                          const NW_String_t* value);
+
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_IsMatch
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_HED_DomHelper_t* domHelper
+                  default
+
+       [in] const NW_DOM_Node_t* element
+                  default
+
+       [in] NW_Uint16 elementType
+                  default
+
+       [in] NW_Uint16 attribute
+                  default
+
+       [in] const attributeMatchString
+                  default
+
+    @description: default
+
+    @returns:     NW_Bool
+                  default
+
+       [default]
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+NW_Bool NW_HED_DomHelper_IsMatch (const NW_HED_DomHelper_t* domHelper,
+                                  NW_DOM_Node_t* element,
+                                  NW_Uint16 elementType,
+                                  NW_Uint16 attribute,
+                                  const NW_String_t* attributeMatchString);
+
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_FindElement
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_HED_DomHelper_t* domHelper
+                  default
+
+       [in] NW_DOM_Node_t* rootNode
+                  default
+
+       [in] NW_Int32 maxSearchDepth
+                  default
+
+       [in] NW_Uint16 elementType
+                  default
+
+       [in] NW_Uint16 attribute
+                  default
+
+       [in] const NW_String_t* attributeMatchString
+                  default
+
+    @description: default
+
+    @returns:     NW_DOM_Node_t*
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+NW_DOM_Node_t* NW_HED_DomHelper_FindElement (const NW_HED_DomHelper_t* domHelper,
+                                             NW_DOM_Node_t* rootNode,
+                                             NW_Int32 maxSearchDepth,
+                                             NW_Uint16 elementType,
+                                             NW_Uint16 attribute,
+                                             const NW_String_t* attributeMatchString);
+
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_GetEncoding
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_DOM_Node_t* element
+                  default
+
+    @description: default
+
+    @returns:     NW_Uint32
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+NW_Uint32 NW_HED_DomHelper_GetEncoding (const NW_DOM_Node_t* element);
+
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_GetDictionary
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_DOM_Node_t* element
+                  default
+
+    @description: default
+
+    @returns:     NW_WBXML_Dictionary_t*
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+NW_WBXML_Dictionary_t* NW_HED_DomHelper_GetDictionary (const NW_DOM_Node_t* element);
+
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_GetAttributeName
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_DOM_Node_t* element
+                  default
+
+       [in] NW_Uint16 attribute
+                  default
+
+       [out] NW_String_t* name
+                  default
+
+    @description: default
+
+    @returns:     TBrowserStatusCode
+                  default
+
+       [default]
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_GetAttributeName (const NW_DOM_Node_t* element, 
+                                               NW_Uint16 attribute, 
+                                               NW_String_t* name);
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_GetElementToken
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_DOM_Node_t* element
+                  default
+
+    @description: default
+
+    @returns:     NW_Uint16
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+NW_Uint16 NW_HED_DomHelper_GetElementToken (const NW_DOM_Node_t* element);
+
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_GetElementName
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_DOM_Node_t* element
+                  default
+
+       [out] NW_String_t* name
+                  default
+
+    @description: default
+
+    @returns:     TBrowserStatusCode
+                  default
+
+       [default]
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_GetElementName (const NW_DOM_Node_t* element,
+                                             NW_String_t* name);
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_PrintTree
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in] const NW_HED_DomHelper_t* domHelper
+                  default
+
+       [in] const rootNode
+                  const NW_DOM_Node_t* rootNode
+
+    @description: default
+
+    @returns:     TBrowserStatusCode
+                  default
+
+       [default]
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_PrintTree (const NW_HED_DomHelper_t* domHelper,
+                                        const NW_DOM_Node_t* rootNode);
+
+
+TBrowserStatusCode NW_HED_DomHelper_PrintNode (const NW_HED_DomHelper_t* domHelper,
+                                                const NW_DOM_Node_t* domNode);
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_CatString
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in-out] NW_String_t* destString
+                  default
+
+       [in] const NW_String_t* srcString
+                  default
+
+       [in] NW_Uint32 srcEncoding
+                  default
+
+    @description: default
+
+    @returns:     TBrowserStatusCode
+                  default
+
+       [default]
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_CatString (NW_String_t* destString, 
+                                        const NW_String_t* srcString, 
+                                        NW_Uint32 srcEncoding);
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_CatUcs2String
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+       [in-out] NW_String_t* destString
+                  default
+
+       [in] const NW_Ucs2* srcString
+                  default
+
+    @description: default
+
+    @returns:     TBrowserStatusCode
+                  default
+
+       [default]
+                  default
+
+ ** ----------------------------------------------------------------------- **/
+TBrowserStatusCode NW_HED_DomHelper_CatUcs2String (NW_String_t* destString, 
+                                            const NW_Ucs2* srcString);
+
+/** ----------------------------------------------------------------------- **
+    @function:    NW_HED_DomHelper_HasAttribute
+
+    @synopsis:    default
+
+    @scope:       public
+
+    @parameters:
+
+       [in] const NW_DOM_Node_t* element
+                  default
+
+       [in] NW_Uint16 attribute
+                  default
+
+    @description: default
+
+    @returns:     TBrowserStatusCode
+                  KBrsrSuccess- Attribute is found.
+                  KBrsrNotFound - Attribute is not found.
+                  KBrsrDomNodeTypeErr - not a DOM node
+
+       [default]
+                  default
+ ** ----------------------------------------------------------------------- **/
+
+TBrowserStatusCode  NW_HED_DomHelper_HasAttribute(const NW_DOM_Node_t* element, 
+                                                NW_Uint16 attributeToken);
+
+#ifdef __cplusplus
+} // extern "C" {
+#endif /* __cplusplus */
+
+#endif /* NW_HED_DOM_HELPER_H */