* WebServiceDetails.web_service_addresses is now of type
MultiMap<string, string>
* Removed LinkedHashSet in favour of Gee.HashSet
+* Backend.persona_stores is now of type Map<string, PersonaStore>
Overview of changes from libfolks 0.4.0 to libfolks 0.5.0
=========================================================
*/
using GLib;
+using Gee;
using Folks;
using Folks.Backends.Kf;
public class Folks.Backends.Kf.Backend : Folks.Backend
{
private bool _is_prepared = false;
- private HashTable<string, PersonaStore> _persona_stores;
+ private HashMap<string, PersonaStore> _persona_stores;
/**
* Whether this Backend has been prepared.
/**
* {@inheritDoc}
*/
- public override HashTable<string, PersonaStore> persona_stores
+ public override Map<string, PersonaStore> persona_stores
{
get { return this._persona_stores; }
}
*/
public Backend ()
{
- this._persona_stores = new HashTable<string, PersonaStore> (str_hash,
- str_equal);
+ this._persona_stores = new HashMap<string, PersonaStore> ();
}
/**
/* Create the PersonaStore for the key file */
PersonaStore store = new Kf.PersonaStore (file);
- this._persona_stores.insert (store.id, store);
+ this._persona_stores.set (store.id, store);
store.removed.connect (this._store_removed_cb);
this.notify_property ("persona-stores");
*/
public override async void unprepare () throws GLib.Error
{
- this._persona_stores.foreach ((k, v) =>
+ foreach (var persona_store in this._persona_stores.values)
{
- this.persona_store_removed ((PersonaStore) v);
- });
+ this.persona_store_removed (persona_store);
+ }
- this._persona_stores.remove_all ();
+ this._persona_stores.clear ();
this.notify_property ("persona-stores");
this._is_prepared = false;
private void _store_removed_cb (Folks.PersonaStore store)
{
this.persona_store_removed (store);
- this._persona_stores.remove (store.id);
+ this._persona_stores.unset (store.id);
this.notify_property ("persona-stores");
}
}
*/
using GLib;
+using Gee;
using Folks;
using Folks.Backends.Sw;
using SocialWebClient;
{
private bool _is_prepared = false;
private Client _client;
- private HashTable<string, PersonaStore> _persona_stores =
- new HashTable<string, PersonaStore> (str_hash, str_equal);
+ private HashMap<string, PersonaStore> _persona_stores =
+ new HashMap<string, PersonaStore> ();
/**
* {@inheritDoc}
/**
* {@inheritDoc}
*/
- public override HashTable<string, PersonaStore> persona_stores
+ public override Map<string, PersonaStore> persona_stores
{
get { return this._persona_stores; }
}
*/
public override async void unprepare () throws GLib.Error
{
- this._persona_stores.foreach ((k, v) =>
+ foreach (var store in this._persona_stores.values)
{
- PersonaStore store = v;
store.removed.disconnect (this.store_removed_cb);
this.persona_store_removed (store);
- });
+ }
this._client = null;
- this._persona_stores.remove_all ();
+ this._persona_stores.clear ();
this.notify_property ("persona-stores");
this._is_prepared = false;
private void add_service (string service_name)
{
- if (this._persona_stores.lookup (service_name) != null)
+ if (this._persona_stores.get (service_name) != null)
return;
var store = new Swf.PersonaStore (this._client.get_service (service_name));
- this._persona_stores.insert (store.id, store);
+ this._persona_stores.set (store.id, store);
store.removed.connect (this.store_removed_cb);
this.persona_store_added (store);
}
private void store_removed_cb (Folks.PersonaStore store)
{
this.persona_store_removed (store);
- this._persona_stores.remove (store.id);
+ this._persona_stores.unset (store.id);
}
}
*/
using GLib;
+using Gee;
using TelepathyGLib;
using Folks;
using Folks.Backends.Tp;
{
private AccountManager _account_manager;
private bool _is_prepared = false;
- private HashTable<string, PersonaStore> _persona_stores;
+ private HashMap<string, PersonaStore> _persona_stores;
/**
* {@inheritDoc}
/**
* {@inheritDoc}
*/
- public override HashTable<string, PersonaStore> persona_stores
+ public override Map<string, PersonaStore> persona_stores
{
get { return this._persona_stores; }
}
*/
public Backend ()
{
- this._persona_stores = new HashTable<string, PersonaStore> (str_hash,
- str_equal);
+ this._persona_stores = new HashMap<string, PersonaStore> ();
}
/**
this._account_validity_changed_cb);
this._account_manager = null;
- this._persona_stores.foreach ((k, v) =>
+ foreach (var persona_store in this._persona_stores.values)
{
- this.persona_store_removed ((PersonaStore) v);
- });
+ this.persona_store_removed (persona_store);
+ }
- this._persona_stores.remove_all ();
+ this._persona_stores.clear ();
this.notify_property ("persona-stores");
this._is_prepared = false;
private void _account_enabled_cb (Account account)
{
- var store = this._persona_stores.lookup (account.get_object_path ());
+ var store = this._persona_stores.get (account.get_object_path ());
if (store != null)
return;
store = new Tpf.PersonaStore (account);
- this._persona_stores.insert (store.id, store);
+ this._persona_stores.set (store.id, store);
store.removed.connect (this._store_removed_cb);
this.notify_property ("persona-stores");
private void _store_removed_cb (PersonaStore store)
{
this.persona_store_removed (store);
- this._persona_stores.remove (store.id);
+ this._persona_stores.unset (store.id);
this.notify_property ("persona-stores");
}
}
using Folks;
using Folks.Backends.Tr;
using GLib;
+using Gee;
extern const string BACKEND_NAME;
public class Folks.Backends.Tr.Backend : Folks.Backend
{
private bool _is_prepared = false;
- private HashTable<string, PersonaStore> _persona_stores;
+ private HashMap<string, PersonaStore> _persona_stores;
/**
* {@inheritDoc}
/**
* {@inheritDoc}
*/
- public override HashTable<string, PersonaStore> persona_stores
+ public override Map<string, PersonaStore> persona_stores
{
get { return this._persona_stores; }
}
*/
public Backend ()
{
- this._persona_stores = new HashTable<string, PersonaStore>
- (str_hash, str_equal);
+ this._persona_stores = new HashMap<string, PersonaStore> ();
}
/**
*/
public override async void unprepare () throws GLib.Error
{
- this._persona_stores.foreach ((k, v) =>
+ foreach (var persona_store in this._persona_stores.values)
{
- this.persona_store_removed ((PersonaStore) v);
- });
+ this.persona_store_removed (persona_store);
+ }
- this._persona_stores.remove_all ();
+ this._persona_stores.clear ();
this.notify_property ("persona-stores");
this._is_prepared = false;
private void _add_default_persona_store ()
{
var store = new Trf.PersonaStore ();
- this._persona_stores.insert (store.id, store);
+ this._persona_stores.set (store.id, store);
store.removed.connect (this._store_removed_cb);
this.notify_property ("persona-stores");
this.persona_store_added (store);
private void _store_removed_cb (Folks.PersonaStore store)
{
this.persona_store_removed (store);
- this.persona_stores.remove (store.id);
+ this.persona_stores.unset (store.id);
}
}
*/
using GLib;
+using Gee;
/**
* A single backend to libfolks, such as Telepathy or evolution-data-server.
*
* A backend may expose {@link Persona}s from multiple servers or accounts
* (for example), so may have a {@link PersonaStore} for each.
+ *
+ * @since UNRELEASED
*/
- public abstract HashTable<string, PersonaStore> persona_stores { get; }
+ public abstract Map<string, PersonaStore> persona_stores { get; }
/**
* Emitted when a {@link PersonaStore} is added to the backend.
this._backend_persona_store_removed_cb);
/* handle the stores that have already been signaled */
- backend.persona_stores.foreach ((k, v) =>
+ foreach (var persona_store in backend.persona_stores.values)
{
- this._backend_persona_store_added_cb (backend,
- (PersonaStore) v);
- });
+ this._backend_persona_store_added_cb (backend, persona_store);
+ }
}
}
}
});
- foreach (var store in
- backend.persona_stores.get_values ())
+ foreach (var store in backend.persona_stores.values)
{
if (store is Tpf.PersonaStore && !adding_done)
{
this.set_up_persona_store (ps);
});
- foreach (var store in b.persona_stores.get_values ())
+ foreach (var store in b.persona_stores.values)
{
this.set_up_persona_store (store);
}
foreach (var backend in store.enabled_backends)
{
this._pstore =
- (Trf.PersonaStore) backend.persona_stores.lookup ("tracker");
+ (Trf.PersonaStore) backend.persona_stores.get ("tracker");
if (this._pstore != null)
break;
}
foreach (var backend in store.enabled_backends)
{
this._pstore =
- (Trf.PersonaStore) backend.persona_stores.lookup ("tracker");
+ (Trf.PersonaStore) backend.persona_stores.get ("tracker");
if (this._pstore != null)
break;
}
foreach (var backend in store.enabled_backends)
{
this._pstore =
- (Trf.PersonaStore) backend.persona_stores.lookup ("tracker");
+ (Trf.PersonaStore) backend.persona_stores.get ("tracker");
if (this._pstore != null)
break;
}
PersonaStore pstore = null;
foreach (var backend in store.enabled_backends)
{
- pstore = backend.persona_stores.lookup ("tracker");
+ pstore = backend.persona_stores.get ("tracker");
if (pstore != null)
break;
}
PersonaStore pstore = null;
foreach (var backend in store.enabled_backends)
{
- pstore = backend.persona_stores.lookup ("tracker");
+ pstore = backend.persona_stores.get ("tracker");
if (pstore != null)
break;
}
foreach (var backend in store.enabled_backends)
{
this._pstore =
- (Trf.PersonaStore) backend.persona_stores.lookup ("tracker");
+ (Trf.PersonaStore) backend.persona_stores.get ("tracker");
if (this._pstore != null)
break;
}
foreach (var backend in store.enabled_backends)
{
this._pstore =
- (Trf.PersonaStore) backend.persona_stores.lookup ("tracker");
+ (Trf.PersonaStore) backend.persona_stores.get ("tracker");
if (this._pstore != null)
break;
}
foreach (var backend in store.enabled_backends)
{
this._pstore =
- (Trf.PersonaStore) backend.persona_stores.lookup ("tracker");
+ (Trf.PersonaStore) backend.persona_stores.get ("tracker");
if (this._pstore != null)
break;
}
foreach (var backend in store.enabled_backends)
{
this._pstore =
- (Trf.PersonaStore) backend.persona_stores.lookup ("tracker");
+ (Trf.PersonaStore) backend.persona_stores.get ("tracker");
if (this._pstore != null)
break;
}
foreach (var backend in store.enabled_backends)
{
this._pstore =
- (Trf.PersonaStore) backend.persona_stores.lookup ("tracker");
+ (Trf.PersonaStore) backend.persona_stores.get ("tracker");
if (this._pstore != null)
break;
}
foreach (var backend in store.enabled_backends)
{
this._pstore =
- (Trf.PersonaStore) backend.persona_stores.lookup ("tracker");
+ (Trf.PersonaStore) backend.persona_stores.get ("tracker");
if (this._pstore != null)
break;
}
this._pstore = null;
foreach (var backend in store.enabled_backends)
{
- this._pstore = backend.persona_stores.lookup ("tracker");
+ this._pstore = backend.persona_stores.get ("tracker");
if (this._pstore != null)
break;
}
foreach (var backend in store.enabled_backends)
{
this._pstore =
- (Trf.PersonaStore) backend.persona_stores.lookup ("tracker");
+ (Trf.PersonaStore) backend.persona_stores.get ("tracker");
if (this._pstore != null)
break;
}
}
/* Get its only PersonaStore */
- PersonaStore destination_store;
- GLib.List<unowned PersonaStore> stores =
- kf_backend.persona_stores.get_values ();
+ PersonaStore destination_store = null;
+ var stores = kf_backend.persona_stores.values;
- if (stores == null)
+ if (stores.size == 0)
{
stderr.printf (
_("Couldn't load the 'key-file' backend's persona store.\n"));
try
{
- destination_store = stores.data;
+ /* Get the first persona store */
+ foreach (var persona_store in stores)
+ {
+ destination_store = persona_store;
+ break;
+ }
+
yield destination_store.prepare ();
}
catch (GLib.Error e3)
Utils.print_line ("Backend '%s' with %u persona stores " +
"(type ID, ID ('display name')):",
- backend.name, backend.persona_stores.size ());
+ backend.name, backend.persona_stores.size);
/* List the backend's persona stores */
Utils.indent ();
- backend.persona_stores.foreach ((k, v) =>
+ foreach (var store in backend.persona_stores.values)
{
- PersonaStore store = (PersonaStore) v;
Utils.print_line ("%s, %s ('%s')", store.type_id, store.id,
store.display_name);
- });
+ }
Utils.unindent ();
}
}
foreach (Backend backend in backends)
{
- HashTable<string, PersonaStore> stores = backend.persona_stores;
+ var stores = backend.persona_stores;
- stores.foreach ((k, v) =>
+ foreach (var persona_store in stores.values)
{
- Utils.print_persona_store ((PersonaStore) v, false);
+ Utils.print_persona_store (persona_store, false);
Utils.print_line ("");
- });
+ }
}
}
else
foreach (Backend backend in backends)
{
- HashTable<string, PersonaStore> stores = backend.persona_stores;
- store = stores.lookup (command_string);
+ var stores = backend.persona_stores;
+ store = stores.get (command_string);
if (store != null)
break;
}
/* FIXME: This can't be in the persona_store_id_completion_cb() function
* because Vala doesn't allow static local variables. Erk. */
- private static HashTableIter<string, PersonaStore>? persona_store_id_iter =
+ private static MapIterator<string, PersonaStore>? persona_store_id_iter =
null;
/* Complete a persona store's ID, starting with @word. */
{
Backend backend = Utils.backend_name_iter.get ();
Utils.persona_store_id_iter =
- HashTableIter<string, PersonaStore> (backend.persona_stores);
+ backend.persona_stores.map_iterator ();
}
- string id;
- PersonaStore store;
- while (Utils.persona_store_id_iter.next (out id, out store) == true)
+ while (Utils.persona_store_id_iter.next () == true)
{
+ var id = Utils.persona_store_id_iter.get_key ();
if (id.has_prefix (word))
return id;
}