Remove unneeded ID systems
[gregoa/zavai.git] / src / log.vala
index eb78363990ba2f2e26a2df82b115c9f355abd83d..1a5eba946d0f7111607349fe157f42315292c2e3 100644 (file)
@@ -88,15 +88,13 @@ public class TrackEntry : Waypoint
 
 public class Log : Object
 {
 
 public class Log : Object
 {
-    public uint id;
     public string tag;
     public string title;
     public List<LogEntry> entries;
     public List<TrackEntry> track;
 
     public string tag;
     public string title;
     public List<LogEntry> entries;
     public List<TrackEntry> track;
 
-    public Log(uint id, string tag, string title)
+    public Log(string tag, string title)
     {
     {
-        this.id = id;
         this.tag = tag;
         this.title = title;
         entries = null;
         this.tag = tag;
         this.title = title;
         entries = null;
@@ -183,13 +181,10 @@ public class Log : Object
 public class Logger : Resource, Object
 {
     protected List<Log> logs;
 public class Logger : Resource, Object
 {
     protected List<Log> logs;
-    protected uint seq;
 
     public Logger()
     {
         logs = null;
 
     public Logger()
     {
         logs = null;
-        seq = 0;
-
         zavai.registry.register(this);
     }
 
         zavai.registry.register(this);
     }
 
@@ -209,83 +204,45 @@ public class Logger : Resource, Object
             i.data.add_trackpoint();
     }
 
             i.data.add_trackpoint();
     }
 
-    protected uint gen_seq()
-    {
-        // Increase avoiding 0 on rollover
-        while (true)
-        {
-            if (++seq == 0) ++seq;
-            bool found = false;
-            for (weak List<Log> i = logs; i != null; i = i.next)
-            {
-                if (i.data.id == seq)
-                {
-                    found = true;
-                    break;
-                }
-            }
-            if (!found) break;
-        }
-        return seq;
-    }
-
-    protected weak Log? find(uint id)
-    {
-        for (weak List<Log> i = logs; i != null; i = i.next)
-            if (i.data.id == id)
-                return i.data;
-        return null;
-    }
-
-    protected Log? pop(uint id)
+    protected void pop(Log log)
     {
         for (weak List<Log> i = logs; i != null; i = i.next)
     {
         for (weak List<Log> i = logs; i != null; i = i.next)
-            if (i.data.id == id)
-            {
-                Log res = i.data;
+            if (i.data == log)
                 logs.delete_link(i);
                 logs.delete_link(i);
-                return res;
-            }
-        return null;
     }
 
     }
 
-    public uint start(string tag, string title)
+    public Log start(string tag, string title)
     {
         bool was_empty = (logs == null);
     {
         bool was_empty = (logs == null);
-        uint id = gen_seq();
-        logs.append(new Log(id, tag, title));
+        Log res = new Log(tag, title);
+        logs.append(res);
         if (was_empty) start_trace();
         if (was_empty) start_trace();
-        return id;
-    }
-
-    public void add(uint id, string msg)
-    {
-        Log log = find(id);
-        if (log == null) return;
-        log.add(msg);
+        return res;
     }
 
     }
 
-    public void end(uint id)
+    public void end(Log log)
     {
     {
-        Log log = pop(id);
+        pop(log);
         log.save();
         log.save();
-        if (log == null) end_trace();
+        if (logs == null) end_trace();
     }
 
     public void instant(string tag, string msg)
     {
     }
 
     public void instant(string tag, string msg)
     {
-        var log = new Log(0, tag, msg);
+        var log = new Log(tag, msg);
         log.add(msg);
         log.save();
     }
 
     public void shutdown()
     {
         log.add(msg);
         log.save();
     }
 
     public void shutdown()
     {
+        bool had_logs = (logs != null);
         while (logs != null)
         {
         while (logs != null)
         {
-            var log = pop(logs.data.id);
-            log.save();
+            logs.data.save();
+            logs.delete_link(logs);
         }
         }
+        if (had_logs) end_trace();
     }
 }
 
     }
 }