[gxml] Removed SerializableCollection.is_prepared()
- From: Daniel Espinosa Ortiz <despinosa src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gxml] Removed SerializableCollection.is_prepared()
- Date: Wed, 24 Feb 2016 20:57:51 +0000 (UTC)
commit 3369748f4e851651acb578be68abf07458b2c2d3
Author: Daniel Espinosa <esodan gmail com>
Date: Wed Feb 24 14:38:44 2016 -0600
Removed SerializableCollection.is_prepared()
NEWS | 10 ++--
gxml/SerializableContainer.vala | 4 -
gxml/SerializableGeeArrayList.vala | 1 -
gxml/SerializableGeeDualKeyMap.vala | 1 -
gxml/SerializableGeeHashMap.vala | 5 +-
gxml/SerializableGeeTreeMap.vala | 1 -
test/SerializableGeeDualKeyMapTest.vala | 104 -------------------------------
test/gxml-performance.vala | 104 +++++++++++++++++++++++++++++++
8 files changed, 110 insertions(+), 120 deletions(-)
---
diff --git a/NEWS b/NEWS
index d7771c7..8daac3a 100644
--- a/NEWS
+++ b/NEWS
@@ -4,14 +4,14 @@ Version 0.9.2
* API change Serializable.deserialize now return a boolean
-* API change SerializableCollection: added new abstract methods
+* API change SerializableCollection: added new abstract methods for post-deserialization
-* SerializableCollection: SerializableArrayList now support enable/disable deserialization
- for post operation using SerializableCollection.deserialize_children() initial document
- load time optimization
+* SerializableCollection: Implementations now support enable/disable deserialization
+ for post operation using SerializableCollection.deserialize_children() for initial
+ document load time optimization
* More memory optimizations: SerializableCollection implementations don't hold
- objects for unknown properties and nodes
+ objects for unknown properties/nodes
diff --git a/gxml/SerializableContainer.vala b/gxml/SerializableContainer.vala
index b177eb1..301a0ea 100644
--- a/gxml/SerializableContainer.vala
+++ b/gxml/SerializableContainer.vala
@@ -57,10 +57,6 @@ public interface GXml.SerializableCollection : Object, Gee.Traversable<Serializa
*/
public abstract bool deserialized ();
/**
- * Returns true if the collection is able to deserialize from a { link GXml.Node}'s children.
- */
- public abstract bool is_prepared ();
- /**
* Executes a deserialization from a { link GXml.Node}. After this operation
* { link GXml.SerializableCollection.deserialized} should return true. This
* operation should not be executed if { link GXml.SerializableCollection.is_prepared}
diff --git a/gxml/SerializableGeeArrayList.vala b/gxml/SerializableGeeArrayList.vala
index 7d1e4b1..dfb1389 100644
--- a/gxml/SerializableGeeArrayList.vala
+++ b/gxml/SerializableGeeArrayList.vala
@@ -36,7 +36,6 @@ public class GXml.SerializableArrayList<G> : Gee.ArrayList<G>, Serializable, Ser
// SerializableCollection interface
public virtual bool deserialize_proceed () { return true; }
public virtual bool deserialized () { return _deserialized; }
- public virtual bool is_prepared () { return (_node is GXml.Node); }
public virtual bool deserialize_node (GXml.Node node) throws GLib.Error {
if (!element_type.is_a (typeof (GXml.Serializable))) {
throw new SerializableError.UNSUPPORTED_TYPE_ERROR (_("%s: Value type '%s' is unsupported"),
diff --git a/gxml/SerializableGeeDualKeyMap.vala b/gxml/SerializableGeeDualKeyMap.vala
index 6e8b2fd..23b545a 100644
--- a/gxml/SerializableGeeDualKeyMap.vala
+++ b/gxml/SerializableGeeDualKeyMap.vala
@@ -37,7 +37,6 @@ public class GXml.SerializableDualKeyMap<P,S,V> : Object, Gee.Traversable <V>, S
// SerializableCollection interface
public virtual bool deserialize_proceed () { return true; }
public virtual bool deserialized () { return true; }
- public virtual bool is_prepared () { return (_node is GXml.Node); }
public virtual bool deserialize_node (GXml.Node node) throws GLib.Error {
if (!(value_type.is_a (typeof (GXml.Serializable)) &&
value_type.is_a (typeof (SerializableMapDualKey)))) {
diff --git a/gxml/SerializableGeeHashMap.vala b/gxml/SerializableGeeHashMap.vala
index 26750b2..5957d11 100644
--- a/gxml/SerializableGeeHashMap.vala
+++ b/gxml/SerializableGeeHashMap.vala
@@ -34,7 +34,6 @@ public class GXml.SerializableHashMap<K,V> : Gee.HashMap<K,V>, Serializable, Ser
// SerializableCollection interface
public virtual bool deserialize_proceed () { return true; }
public virtual bool deserialized () { return _deserialized; }
- public virtual bool is_prepared () { return (_node is GXml.Node); }
public virtual bool deserialize_node (GXml.Node node) throws GLib.Error {
if (!(value_type.is_a (typeof (GXml.Serializable)) &&
value_type.is_a (typeof (SerializableMapKey)))) {
@@ -159,8 +158,6 @@ public class GXml.SerializableHashMap<K,V> : Gee.HashMap<K,V>, Serializable, Ser
public bool default_deserialize_property (GXml.Node property_node)
throws GLib.Error
{
- if (is_prepared ())
- return deserialize_node (property_node);
- return false;
+ return deserialize_node (property_node);
}
}
diff --git a/gxml/SerializableGeeTreeMap.vala b/gxml/SerializableGeeTreeMap.vala
index 3a88f4a..375f9c0 100644
--- a/gxml/SerializableGeeTreeMap.vala
+++ b/gxml/SerializableGeeTreeMap.vala
@@ -34,7 +34,6 @@ public class GXml.SerializableTreeMap<K,V> : Gee.TreeMap<K,V>, Serializable, Ser
// SerializableCollection interface
public virtual bool deserialize_proceed () { return true; }
public virtual bool deserialized () { return true; }
- public virtual bool is_prepared () { return (_node is GXml.Node); }
public virtual bool deserialize_node (GXml.Node node) throws GLib.Error {
if (!(value_type.is_a (typeof (GXml.Serializable)) &&
value_type.is_a (typeof (SerializableMapKey)))) {
diff --git a/test/SerializableGeeDualKeyMapTest.vala b/test/SerializableGeeDualKeyMapTest.vala
index 35fe163..0d71b97 100644
--- a/test/SerializableGeeDualKeyMapTest.vala
+++ b/test/SerializableGeeDualKeyMapTest.vala
@@ -42,26 +42,6 @@ class Spaces : SerializableObjectModel, SerializableMapDualKey<string,string>
class SerializableGeeDualKeyMapTest : GXmlTest
{
-
- class DHElement : SerializableObjectModel, SerializableMapDualKey<string,string>
- {
- public string name { get; set; }
- public string key { get; set; }
- public string get_map_primary_key () { return key; }
- public string get_map_secondary_key () { return name; }
- public override string node_name () { return "DHElement"; }
- public override string to_string () { return "DHElement"; }
- public class DualKeyMap : SerializableDualKeyMap<string,string,DHElement> {
- public bool enable_deserialize { get; set; default = false; }
- public override bool deserialize_proceed () { return enable_deserialize; }
- }
- }
- class DHCElement : SerializableObjectModel {
- public DHElement.DualKeyMap elements1 { get; set; default = new DHElement.DualKeyMap (); }
- public DHElement.DualKeyMap elements2 { get; set; default = new DHElement.DualKeyMap (); }
- public override string node_name () { return "DHCElement"; }
- public override string to_string () { return "DHCElement"; }
- }
public static void add_tests ()
{
Test.add_func ("/gxml/serializable/serializable_dual_key_map/api",
@@ -308,89 +288,5 @@ class SerializableGeeDualKeyMapTest : GXmlTest
assert_not_reached ();
}
});
- Test.add_func ("/gxml/performance/dualkeymap/post-deserialization/disable",
- () => {
- try {
- double time;
- Test.message ("Starting generating document...");
- Test.timer_start ();
- var d = new TwDocument ();
- var ce = new DHCElement ();
- for (int i = 0; i < 125000; i++) {
- var e1 = new DHElement ();
- e1.key = "E1";
- e1.name = "1E"+i.to_string ();
- ce.elements1.set (e1.key, e1.name, e1);
- var e2 = new DHElement ();
- e2.key = "E2";
- e2.name = "2E"+i.to_string ();
- ce.elements2.set (e2.key, e2.name, e2);
- }
- ce.serialize (d);
- time = Test.timer_elapsed ();
- Test.minimized_result (time, "Created document: %g seconds", time);
- Test.message ("Starting deserializing document: Disable collection deserialization...");
- Test.timer_start ();
- var cep = new DHCElement ();
- cep.elements1.enable_deserialize = false;
- cep.elements2.enable_deserialize = false;
- cep.deserialize (d);
- time = Test.timer_elapsed ();
- Test.minimized_result (time, "Disable Deserialize Collection. Deserialized from doc: %g seconds",
time);
- assert (cep.elements1.is_prepared ());
- assert (cep.elements2.is_prepared ());
- Test.message ("Calling C1 deserialize_children()...");
- Test.timer_start ();
- cep.elements1.deserialize_children ();
- assert (!cep.elements1.deserialize_children ());
- time = Test.timer_elapsed ();
- Test.minimized_result (time, "C1: Disable Deserialize Collection. Deserialized from NODE: %g
seconds", time);
- Test.message ("Calling C2 deserialize_children()...");
- Test.timer_start ();
- cep.elements2.deserialize_children ();
- assert (!cep.elements2.deserialize_children ());
- time = Test.timer_elapsed ();
- Test.minimized_result (time, "C2: Disable Deserialize Collection. Deserialized from NODE: %g
seconds", time);
- } catch (GLib.Error e) {
- GLib.message ("ERROR: "+e.message);
- assert_not_reached ();
- }
- });
- Test.add_func ("/gxml/performance/dualkeymap/post-deserialization/enable",
- () => {
- try {
- double time;
- Test.message ("Starting generating document...");
- Test.timer_start ();
- var d = new TwDocument ();
- var ce = new DHCElement ();
- for (int i = 0; i < 125000; i++) {
- var e1 = new DHElement ();
- e1.name = "1E"+i.to_string ();
- ce.elements1.set (e1.key, e1.name, e1);
- var e2 = new DHElement ();
- e2.name = "2E"+i.to_string ();
- ce.elements2.set (e2.key, e2.name, e2);
- }
- ce.serialize (d);
- time = Test.timer_elapsed ();
- Test.minimized_result (time, "Created document: %g seconds", time);
- Test.message ("Starting deserializing document: Enable collection deserialization...");
- Test.timer_start ();
- var cep = new DHCElement ();
- cep.elements1.enable_deserialize = true;
- cep.elements2.enable_deserialize = true;
- cep.deserialize (d);
- time = Test.timer_elapsed ();
- Test.minimized_result (time, "Disable Deserialize Collection. Deserialized from doc: %g seconds",
time);
- assert (cep.elements1.is_prepared ());
- assert (cep.elements2.is_prepared ());
- assert (!cep.elements1.deserialize_children ());
- assert (!cep.elements2.deserialize_children ());
- } catch (GLib.Error e) {
- GLib.message ("ERROR: "+e.message);
- assert_not_reached ();
- }
- });
}
}
diff --git a/test/gxml-performance.vala b/test/gxml-performance.vala
index 988a1e9..88dd8ed 100644
--- a/test/gxml-performance.vala
+++ b/test/gxml-performance.vala
@@ -173,6 +173,26 @@ public class Performance
public override string node_name () { return "HCElement"; }
public override string to_string () { return "HCElement"; }
}
+ // DualKeyMap
+ class DHElement : SerializableObjectModel, SerializableMapDualKey<string,string>
+ {
+ public string name { get; set; }
+ public string key { get; set; }
+ public string get_map_primary_key () { return key; }
+ public string get_map_secondary_key () { return name; }
+ public override string node_name () { return "DHElement"; }
+ public override string to_string () { return "DHElement"; }
+ public class DualKeyMap : SerializableDualKeyMap<string,string,DHElement> {
+ public bool enable_deserialize { get; set; default = false; }
+ public override bool deserialize_proceed () { return enable_deserialize; }
+ }
+ }
+ class DHCElement : SerializableObjectModel {
+ public DHElement.DualKeyMap elements1 { get; set; default = new DHElement.DualKeyMap (); }
+ public DHElement.DualKeyMap elements2 { get; set; default = new DHElement.DualKeyMap (); }
+ public override string node_name () { return "DHCElement"; }
+ public override string to_string () { return "DHCElement"; }
+ }
/**
* Iterate recursively through all node and children nodes in document.
*/
@@ -576,6 +596,90 @@ public class Performance
assert_not_reached ();
}
});
+ Test.add_func ("/gxml/performance/dualkeymap/post-deserialization/disable",
+ () => {
+ try {
+ double time;
+ Test.message ("Starting generating document...");
+ Test.timer_start ();
+ var d = new TwDocument ();
+ var ce = new DHCElement ();
+ for (int i = 0; i < 125000; i++) {
+ var e1 = new DHElement ();
+ e1.key = "E1";
+ e1.name = "1E"+i.to_string ();
+ ce.elements1.set (e1.key, e1.name, e1);
+ var e2 = new DHElement ();
+ e2.key = "E2";
+ e2.name = "2E"+i.to_string ();
+ ce.elements2.set (e2.key, e2.name, e2);
+ }
+ ce.serialize (d);
+ time = Test.timer_elapsed ();
+ Test.minimized_result (time, "Created document: %g seconds", time);
+ Test.message ("Starting deserializing document: Disable collection deserialization...");
+ Test.timer_start ();
+ var cep = new DHCElement ();
+ cep.elements1.enable_deserialize = false;
+ cep.elements2.enable_deserialize = false;
+ cep.deserialize (d);
+ time = Test.timer_elapsed ();
+ Test.minimized_result (time, "Disable Deserialize Collection. Deserialized from doc: %g seconds",
time);
+ assert (cep.elements1.is_prepared ());
+ assert (cep.elements2.is_prepared ());
+ Test.message ("Calling C1 deserialize_children()...");
+ Test.timer_start ();
+ cep.elements1.deserialize_children ();
+ assert (!cep.elements1.deserialize_children ());
+ time = Test.timer_elapsed ();
+ Test.minimized_result (time, "C1: Disable Deserialize Collection. Deserialized from NODE: %g
seconds", time);
+ Test.message ("Calling C2 deserialize_children()...");
+ Test.timer_start ();
+ cep.elements2.deserialize_children ();
+ assert (!cep.elements2.deserialize_children ());
+ time = Test.timer_elapsed ();
+ Test.minimized_result (time, "C2: Disable Deserialize Collection. Deserialized from NODE: %g
seconds", time);
+ } catch (GLib.Error e) {
+ GLib.message ("ERROR: "+e.message);
+ assert_not_reached ();
+ }
+ });
+ Test.add_func ("/gxml/performance/dualkeymap/post-deserialization/enable",
+ () => {
+ try {
+ double time;
+ Test.message ("Starting generating document...");
+ Test.timer_start ();
+ var d = new TwDocument ();
+ var ce = new DHCElement ();
+ for (int i = 0; i < 125000; i++) {
+ var e1 = new DHElement ();
+ e1.name = "1E"+i.to_string ();
+ ce.elements1.set (e1.key, e1.name, e1);
+ var e2 = new DHElement ();
+ e2.name = "2E"+i.to_string ();
+ ce.elements2.set (e2.key, e2.name, e2);
+ }
+ ce.serialize (d);
+ time = Test.timer_elapsed ();
+ Test.minimized_result (time, "Created document: %g seconds", time);
+ Test.message ("Starting deserializing document: Enable collection deserialization...");
+ Test.timer_start ();
+ var cep = new DHCElement ();
+ cep.elements1.enable_deserialize = true;
+ cep.elements2.enable_deserialize = true;
+ cep.deserialize (d);
+ time = Test.timer_elapsed ();
+ Test.minimized_result (time, "Disable Deserialize Collection. Deserialized from doc: %g seconds",
time);
+ assert (cep.elements1.is_prepared ());
+ assert (cep.elements2.is_prepared ());
+ assert (!cep.elements1.deserialize_children ());
+ assert (!cep.elements2.deserialize_children ());
+ } catch (GLib.Error e) {
+ GLib.message ("ERROR: "+e.message);
+ assert_not_reached ();
+ }
+ });
#endif
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]