Das dritte Update führt uns zu Version 0.1.3. Wieder nur interne Änderungen, keine neuen oder korrigierten Funktionen.
Ich habe eine Reihe von Vereinfachungen an der Codebasis umgesetzt: die Hierarchie von Objektklassen und Namensräumen wurde von Altlasten entrümpelt. Neben einer besseren Lesbarkeit dient das wie immer der einfacheren Pflege des Codes und seiner Wiederverwendung.
Eine wichtige Motivation ist aber auch die Vorbereitung anstehender Erweiterungen, für die Serialisierungen und Streaming von Objekten benötigt wird. Es geht um die Synchronisation mehrere gleichzeitig genutzter Instanzen. Ziel ist, wie im ToDo beschrieben, die Beschleunigung des Starts weiterer Instanzen, etwa beim Öffnen eines Albums mit Gwenview aus einem Dateimanager heraus. Derzeit muss in der neu gestarteten Instanz die gesamte Hierarchie der G3-Objekte (Alben, Photos und Movies) wieder neu aufgebaut werden, einzeln durch erneute Abfrage vom Gallery3-System her. Das erklärt den verzögerten Start der Applikationen in diesen Fällen. Der Plan ist, bereits abgerufene und lokal repräsentierte Objekte zwischen den Instanzen auszutauschen. Dazu wird eine zentrale Instanz eingeführt, ein sogenanntes KDED-Modul („KDE-Daemon-Modul“), das die Objekthierarchie zentral verwaltet. Alle „echten“ Instanzen prüfen bei allen Aktionen zunächst, ob sie neu zu erstellende Objekte nicht bereits von dieser Zentrale beziehen können. Das ist aufgrund der wegfallenden Kommunikation durchs Internet wesentlich schneller und entlastet zusätzlich noch das Gallery3-System, weil sich die Menge der (wiederholten) Anfragen reduziert. Das Problem bei diesem Vorhaben ist der Austausch der Objekte zwischen den Instanzen: da diese ja in unterschiedliche Prozessen laufen wird ein spezielles Interface benötigt, über das Objekte angefordert, verglichen und übergeben werden können. Insbesondere das Aktualisierung bereits bekannter Objekte bereitet dabei Kopfschmerzen, weil die Aktualisierung ja in allen Instanzen bemerkt und nachgehalten werden muss…