[gxml] StreamBuffer: make parse_buffer() sync



commit dfb093a60f5e329c9cc23583b8fe5f350ae781ac
Author: Daniel Espinosa <esodan gmail com>
Date:   Tue Jul 30 12:18:48 2019 -0500

    StreamBuffer: make parse_buffer() sync

 gxml/Element.vala                                  | 15 ++++---
 ...amReaderPerformanceIterateReadUnparsedTest.vala | 18 ++++----
 test/StreamReaderTest.vala                         | 48 ++++++++--------------
 3 files changed, 36 insertions(+), 45 deletions(-)
---
diff --git a/gxml/Element.vala b/gxml/Element.vala
index d42733b..8782a9a 100644
--- a/gxml/Element.vala
+++ b/gxml/Element.vala
@@ -803,9 +803,9 @@ public class GXml.Element : GXml.Node,
   public MemoryOutputStream read_buffer { get; set; }
 
   /**
-   * Asynchronically parse {@link read_buffer}
+   * Synchronically parse {@link read_buffer}
    */
-  public async void parse_buffer () throws GLib.Error {
+  public void parse_buffer () throws GLib.Error {
     if (read_buffer == null) {
       return;
     }
@@ -813,12 +813,17 @@ public class GXml.Element : GXml.Node,
     read_buffer = null;
     foreach (DomNode n in child_nodes) {
       if (n is GXml.Element) {
-        ((GXml.Element) n).parse_buffer.begin (()=>{
-                     //message (((GXml.Element) n).write_string ());
-                   });
+        ((GXml.Element) n).parse_buffer ();
       }
     }
   }
+
+  /**
+   * Asynchronically parse {@link read_buffer}
+   */
+  public async void parse_buffer_async () throws GLib.Error {
+    parse_buffer ();
+  }
 }
 
 
diff --git a/test/StreamReaderPerformanceIterateReadUnparsedTest.vala 
b/test/StreamReaderPerformanceIterateReadUnparsedTest.vala
index 24b6380..6c8a81a 100644
--- a/test/StreamReaderPerformanceIterateReadUnparsedTest.vala
+++ b/test/StreamReaderPerformanceIterateReadUnparsedTest.vala
@@ -54,16 +54,14 @@ class GXmlTest.Suite : GLib.Object
           return Source.REMOVE;
         });
         Idle.add (()=>{
-          (d.document_element as GXml.Element).parse_buffer.begin ((obj, res)=>{
-            try {
-              timer.elapsed (out time);
-              message ("Parse root: %lu ms", time / 1000);
-              (d.document_element as GXml.Element).parse_buffer.end (res);
-            } catch (GLib.Error e) {
-              warning ("Error: %s", e.message);
-              assert_not_reached ();
-            }
-          });
+          try {
+            (d.document_element as GXml.Element).parse_buffer ();
+            timer.elapsed (out time);
+            message ("Parse root: %lu ms", time / 1000);
+          } catch (GLib.Error e) {
+            warning ("Error: %s", e.message);
+            assert_not_reached ();
+          }
           return Source.REMOVE;
         });
       } catch (GLib.Error e) {
diff --git a/test/StreamReaderTest.vala b/test/StreamReaderTest.vala
index 01cf557..1e5c716 100644
--- a/test/StreamReaderTest.vala
+++ b/test/StreamReaderTest.vala
@@ -213,16 +213,10 @@ class GXmlTest {
                                var sr = new StreamReader (istream);
                                try {
                                        var doc = sr.read ();
-                                       (doc.document_element as GXml.Element).parse_buffer.begin ((obj, 
res)=>{
-                                               try {
-                                                               (doc.document_element as 
GXml.Element).parse_buffer.end (res);
-                                                               message (doc.write_string ());
-                                                               assert ((doc.document_element as 
GXml.Element).read_buffer == null);
-                                                               loop.quit ();
-                                               } catch (GLib.Error e) {
-                                                       warning ("Error: %s", e.message);
-                                               }
-                                       });
+                                       (doc.document_element as GXml.Element).parse_buffer ();
+                                       message (doc.write_string ());
+                                       assert ((doc.document_element as GXml.Element).read_buffer == null);
+                                       loop.quit ();
                                } catch (GLib.Error e) {
                                        warning ("Error while reading stream: %s", e.message);
                                }
@@ -281,26 +275,20 @@ class GXmlTest {
                                                        assert ((n as GXml.Element).read_buffer != null);
                                                }
                                        }
-                                       bs.parse_buffer.begin ((obj, res)=>{
-                                               try {
-                                                       bs.parse_buffer.end (res);
-                                                       message (doc.write_string ());
-                                                       assert (bs.read_buffer == null);
-                                                       assert (bs.books != null);
-                                                       assert (bs.books.length == 2);
-                                                       var b1 = bs.books.get_item (0) as Book;
-                                                       assert (b1 != null);
-                                                       assert (b1 is Book);
-                                                       assert (b1.authors != null);
-                                                       var b2 = bs.books.get_item (0) as Book;
-                                                       assert (b2 != null);
-                                                       assert (b2 is Book);
-                                                       assert (b2.authors != null);
-                                                       loop.quit ();
-                                               } catch (GLib.Error e) {
-                                                       warning ("Error: %s", e.message);
-                                               }
-                                       });
+                                       bs.parse_buffer ();
+                                       message (doc.write_string ());
+                                       assert (bs.read_buffer == null);
+                                       assert (bs.books != null);
+                                       assert (bs.books.length == 2);
+                                       var b1 = bs.books.get_item (0) as Book;
+                                       assert (b1 != null);
+                                       assert (b1 is Book);
+                                       assert (b1.authors != null);
+                                       var b2 = bs.books.get_item (0) as Book;
+                                       assert (b2 != null);
+                                       assert (b2 is Book);
+                                       assert (b2.authors != null);
+                                       loop.quit ();
                                } catch (GLib.Error e) {
                                        warning ("Error while reading stream: %s", e.message);
                                }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]