You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sa...@apache.org on 2005/10/05 11:11:48 UTC

svn commit: r295022 - in /webservices/axis2/trunk/c: include/ modules/test/om/src/ modules/xml/om/src/

Author: samisa
Date: Wed Oct  5 02:11:29 2005
New Revision: 295022

URL: http://svn.apache.org/viewcvs?rev=295022&view=rev
Log:
Added more fixes to get serialization working

Modified:
    webservices/axis2/trunk/c/include/axis2_errno.h
    webservices/axis2/trunk/c/include/axis2_om_element.h
    webservices/axis2/trunk/c/include/axis2_om_node.h
    webservices/axis2/trunk/c/include/axis2_om_output.h
    webservices/axis2/trunk/c/modules/test/om/src/test_om_serialize.c
    webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c
    webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_node.c
    webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_output.c

Modified: webservices/axis2/trunk/c/include/axis2_errno.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_errno.h?rev=295022&r1=295021&r2=295022&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_errno.h (original)
+++ webservices/axis2/trunk/c/include/axis2_errno.h Wed Oct  5 02:11:29 2005
@@ -39,9 +39,12 @@
  * @{
  */
 /** @see AXIS2_ERROR_OM_MEMORY_ALLOCATION */
-#define AXIS2_ERROR_OM_MEMORY_ALLOCATION        (AXIS2_START_ERROR + 1)
-#define AXIS2_ERROR_NULL_MEMORY_ACCESS        (AXIS2_START_ERROR + 2)
-#define AXIS2_ERROR_MEMORY_ALLOCATION        (AXIS2_START_ERROR + 3)
+#define AXIS2_ERROR_INVALID_POINTER_PARAMATERS        (AXIS2_START_ERROR + 1)
+
+#define AXIS2_ERROR_OM_MEMORY_ALLOCATION        (AXIS2_START_ERROR + 2)
+#define AXIS2_ERROR_NULL_MEMORY_ACCESS        (AXIS2_START_ERROR + 3)
+#define AXIS2_ERROR_MEMORY_ALLOCATION        (AXIS2_START_ERROR + 4)
+
 
 /** @} */
 

Modified: webservices/axis2/trunk/c/include/axis2_om_element.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_om_element.h?rev=295022&r1=295021&r2=295022&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_om_element.h (original)
+++ webservices/axis2/trunk/c/include/axis2_om_element.h Wed Oct  5 02:11:29 2005
@@ -26,13 +26,13 @@
 
 
 
-typedef struct axis2_om_element_t{
+struct axis2_om_element_s{
 	axis2_om_namespace_t *ns;			// current namespace
 	char *localname;			
 	int pns_counter;            // prefix namespace counter
 	apr_hash_t *attributes;     // a hashtable for storing attributes 
 	apr_hash_t *namespaces;		// hashtable for storing namespaces
-}axis2_om_element_t;
+};
 
 
 /*

Modified: webservices/axis2/trunk/c/include/axis2_om_node.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_om_node.h?rev=295022&r1=295021&r2=295022&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_om_node.h (original)
+++ webservices/axis2/trunk/c/include/axis2_om_node.h Wed Oct  5 02:11:29 2005
@@ -25,12 +25,14 @@
 
 
 #include <axis2.h>
+#include <axis2_errno.h>
 #include <apr.h>
 #include <apr_pools.h>
 #include <xmlpullparser.h>
 
 typedef struct axis2_stax_om_builder_s axis2_stax_om_builder_t;
-
+typedef struct axis2_om_output_s axis2_om_output_t;
+typedef struct axis2_om_element_s axis2_om_element_t;
 
 typedef enum axis2_om_types_t {
     AXIS2_OM_INVALID = -1,
@@ -120,11 +122,10 @@
 
 void axis2_om_node_set_parent(axis2_om_node_t *node,axis2_om_node_t *parent);
 
-
-
 axis2_om_node_t *axis2_om_node_get_first_child(axis2_om_node_t *parent_node);
 
 axis2_om_node_t *axis2_om_node_get_next_child(axis2_om_node_t *parent_node);
 
+int *axis2_om_node_serialize(axis2_om_node_t *om_node, axis2_om_output_t * om_output);
 
 #endif // AXIS2_NODE_H

Modified: webservices/axis2/trunk/c/include/axis2_om_output.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_om_output.h?rev=295022&r1=295021&r2=295022&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_om_output.h (original)
+++ webservices/axis2/trunk/c/include/axis2_om_output.h Wed Oct  5 02:11:29 2005
@@ -24,7 +24,7 @@
 
 static const char* DEFAULT_CHAR_SET_ENCODING = "utf-8";
 
-typedef struct {
+struct axis2_om_output_s {
     guththila_xml_stream_writer_t* xml_writer;
     int do_optimize;
     FILE* out_stream;
@@ -37,7 +37,7 @@
     char* char_set_encoding;
     char* xml_version;
     int ignore_xml_declaration;
-} axis2_om_output_t;
+};
 
 axis2_om_output_t* axis2_create_om_output( FILE* stream);
 

Modified: webservices/axis2/trunk/c/modules/test/om/src/test_om_serialize.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/test/om/src/test_om_serialize.c?rev=295022&r1=295021&r2=295022&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/test/om/src/test_om_serialize.c (original)
+++ webservices/axis2/trunk/c/modules/test/om/src/test_om_serialize.c Wed Oct  5 02:11:29 2005
@@ -2,6 +2,8 @@
 #include <axis2_om_node.h>
 #include <axis2_om_element.h>
 #include <unistd.h>
+#include <axis2_errno.h>
+
 
 int
 main ()
@@ -30,7 +32,7 @@
     
 
 
-    ele3 = axis2_om_element_create (NULL, "ele3",ns3 , &node3);
+    ele3 = axis2_om_element_create (NULL, "ele3", NULL , &node3);
 
     if (ele3->ns)
         printf("%s\n",ele3->ns->uri);
@@ -43,6 +45,13 @@
      om_output = axis2_create_om_output(stderr);
      axis2_om_element_serialize_start_part(ele3, om_output);
      axis2_om_element_serialize_end_part(ele3, om_output);
+
+     int status = axis2_om_node_serialize(node1, om_output);
+     if (status != AXIS2_SUCCESS)
+     {
+        printf("\naxis2_om_node_serialize failed\n");
+        return status;
+     }
     // end serializing stuff
     
     printf("\nDONE\n");

Modified: webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c?rev=295022&r1=295021&r2=295022&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c Wed Oct  5 02:11:29 2005
@@ -456,26 +456,29 @@
 axis2_om_element_serialize_start_part (axis2_om_element_t * element_node,
                                        axis2_om_output_t * om_output)
 {
+    int status = AXIS2_SUCCESS;
     // TODO : handle null pointer errors
     if (element_node->ns && element_node->ns->uri && element_node->ns->prefix)
-        axis2_om_output_write (om_output, AXIS2_OM_ELEMENT, 3,
+        status = axis2_om_output_write (om_output, AXIS2_OM_ELEMENT, 3,
                                element_node->localname, element_node->ns->uri,
                                element_node->ns->prefix);
     else if (element_node->ns && element_node->ns->uri)
-        axis2_om_output_write (om_output, AXIS2_OM_ELEMENT, 2,
+        status = axis2_om_output_write (om_output, AXIS2_OM_ELEMENT, 2,
                                element_node->localname,
                                element_node->ns->uri);
     else
-        axis2_om_output_write (om_output, AXIS2_OM_ELEMENT, 1,
+        status = axis2_om_output_write (om_output, AXIS2_OM_ELEMENT, 1,
                                element_node->localname);
 
-
+    return status;
 }
 
 int
 axis2_om_element_serialize_end_part (axis2_om_element_t * element_node,
                                      axis2_om_output_t * om_output)
 {
+    int status = AXIS2_SUCCESS;
     // TODO : handle null pointer errors
-    axis2_om_output_write (om_output, AXIS2_OM_ELEMENT, 0);
+    status = axis2_om_output_write (om_output, AXIS2_OM_ELEMENT, 0);
+    return status;
 }

Modified: webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_node.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_node.c?rev=295022&r1=295021&r2=295022&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_node.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_node.c Wed Oct  5 02:11:29 2005
@@ -215,3 +215,44 @@
 	return NULL;
 }
 
+int *axis2_om_node_serialize(axis2_om_node_t *om_node, axis2_om_output_t * om_output)
+{
+    if (!om_node || !om_output)
+        return AXIS2_ERROR_INVALID_POINTER_PARAMATERS;
+    
+    int status = AXIS2_SUCCESS;
+    
+    switch (om_node->element_type)
+    {
+        case AXIS2_OM_ELEMENT:
+            status = axis2_om_element_serialize_start_part( (axis2_om_element_t*)om_node->data_element, om_output );
+            if (status != AXIS2_SUCCESS) 
+                return status;
+            break;
+             
+    }
+
+    // handle children
+    axis2_om_node_t *child_node = axis2_om_node_get_first_child(om_node);
+
+    while (child_node)
+    {
+        status = axis2_om_node_serialize(child_node, om_output);
+            if (status != AXIS2_SUCCESS) 
+                return status;
+        child_node = axis2_om_node_get_next_child(om_node);
+    }
+        
+    switch (om_node->element_type)
+    {
+        case AXIS2_OM_ELEMENT:
+            status = axis2_om_element_serialize_end_part( (axis2_om_element_t*)om_node->data_element, om_output );
+            if (status != AXIS2_SUCCESS) 
+                return status;
+            break;
+    }
+    
+    return status;
+
+}
+

Modified: webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_output.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_output.c?rev=295022&r1=295021&r2=295022&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_output.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_output.c Wed Oct  5 02:11:29 2005
@@ -89,5 +89,5 @@
             break;
     };
   
-    return 1;
+    return AXIS2_SUCCESS;
 }