summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/datamodel.vala15
-rw-r--r--src/errors.vala1
2 files changed, 12 insertions, 4 deletions
diff --git a/src/datamodel.vala b/src/datamodel.vala
index e81493a7..8161e2d1 100644
--- a/src/datamodel.vala
+++ b/src/datamodel.vala
@@ -22,6 +22,13 @@
namespace Zeitgeist
{
+ private void assert_sig (bool condition, string error_message)
+ throws EngineError
+ {
+ if (!condition)
+ throw new EngineError.INVALID_SIGNATURE (error_message);
+ }
+
namespace Timestamp
{
public static int64 now ()
@@ -280,18 +287,17 @@ namespace Zeitgeist
subjects.add (subject);
}
- public Event.from_variant (Variant event_variant) { // (asaasay)
+ public Event.from_variant (Variant event_variant) throws EngineError {
assert (event_variant.get_type_string () == "(asaasay)");
VariantIter iter = event_variant.iterator();
- assert (iter.n_children() == 3);
VariantIter event_array = iter.next_value().iterator();
VariantIter subjects_array = iter.next_value().iterator();
Variant payload_variant = iter.next_value ();
var event_props = event_array.n_children ();
- assert (event_props >= 5);
+ warn_if_fail (event_props >= 5);
id = (uint32) uint64.parse (event_array.next_value().get_string ());
var str_timestamp = event_array.next_value().get_string ();
if (str_timestamp == "")
@@ -528,11 +534,12 @@ namespace Zeitgeist
public string current_uri { get; set; }
public Subject.from_variant (Variant subject_variant)
+ throws EngineError
{
VariantIter iter = subject_variant.iterator();
var subject_props = iter.n_children ();
- assert (subject_props >= 7);
+ warn_if_fail (subject_props >= 7);
uri = iter.next_value().get_string ();
interpretation = iter.next_value().get_string ();
manifestation = iter.next_value().get_string ();
diff --git a/src/errors.vala b/src/errors.vala
index 48179a43..92fc02cc 100644
--- a/src/errors.vala
+++ b/src/errors.vala
@@ -26,6 +26,7 @@ namespace Zeitgeist
DATABASE_ERROR,
INVALID_ARGUMENT,
INVALID_KEY,
+ INVALID_SIGNATURE, // FIXME: change from EngineError to sth. + public
}
// vala doesn't include proper headers, this fixes it