[folks] Split utility functions into an internal library.
- From: Travis Reitter <treitter src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [folks] Split utility functions into an internal library.
- Date: Tue, 11 Oct 2011 01:14:39 +0000 (UTC)
commit c8f9b3ed9efb2256c5d9e87a27c807528e29139f
Author: Travis Reitter <travis reitter collabora co uk>
Date: Fri Oct 7 11:26:30 2011 -0700
Split utility functions into an internal library.
This lets us avoid stuffing them into unrelated public libraries.
backends/eds/lib/Makefile.am | 2 +
backends/eds/lib/edsf-persona-store.vala | 2 +-
backends/eds/lib/edsf-persona.vala | 12 ++++----
backends/telepathy/lib/Makefile.am | 2 +
backends/telepathy/lib/tpf-persona.vala | 5 +--
folks/Makefile.am | 41 +++++++++++++++++++++++++++++-
folks/internal.vala | 38 +++++++++++++++++++++++++++
folks/persona-store.vala | 14 ----------
8 files changed, 91 insertions(+), 25 deletions(-)
---
diff --git a/backends/eds/lib/Makefile.am b/backends/eds/lib/Makefile.am
index 2e52c43..1c4c02e 100644
--- a/backends/eds/lib/Makefile.am
+++ b/backends/eds/lib/Makefile.am
@@ -45,6 +45,7 @@ libfolks_eds_la_VALAFLAGS = \
--vapidir=. \
--vapidir=$(top_srcdir)/folks \
--pkg folks \
+ --pkg folks-internal \
--pkg gee-1.0 \
--pkg gio-2.0 \
--pkg gobject-2.0 \
@@ -67,6 +68,7 @@ libfolks_eds_la_CFLAGS = \
libfolks_eds_la_LIBADD = \
$(top_builddir)/folks/libfolks.la \
+ $(top_builddir)/folks/libfolks-internal.la \
$(EBOOK_LIBS) \
$(EDATASERVER_LIBS) \
$(GIO_LIBS) \
diff --git a/backends/eds/lib/edsf-persona-store.vala b/backends/eds/lib/edsf-persona-store.vala
index cf0b363..6c1bca6 100644
--- a/backends/eds/lib/edsf-persona-store.vala
+++ b/backends/eds/lib/edsf-persona-store.vala
@@ -1481,7 +1481,7 @@ public class Edsf.PersonaStore : Folks.PersonaStore
_("Roles are not writeable on this contact."));
}
- if (Folks.PersonaStore.equal_sets<RoleFieldDetails> (roles, persona.roles))
+ if (Folks.Internal.equal_sets<RoleFieldDetails> (roles, persona.roles))
return;
yield this._set_contact_roles (persona.contact, roles);
diff --git a/backends/eds/lib/edsf-persona.vala b/backends/eds/lib/edsf-persona.vala
index 22cfc28..e2079d8 100644
--- a/backends/eds/lib/edsf-persona.vala
+++ b/backends/eds/lib/edsf-persona.vala
@@ -938,7 +938,7 @@ public class Edsf.Persona : Folks.Persona,
new_roles.add (role_fd);
}
- if (!Folks.PersonaStore.equal_sets<RoleFieldDetails> (new_roles, this._roles))
+ if (!Folks.Internal.equal_sets<RoleFieldDetails> (new_roles, this._roles))
{
this._roles = new_roles;
this._roles_ro = new_roles.read_only_view;
@@ -1034,7 +1034,7 @@ public class Edsf.Persona : Folks.Persona,
new_email_addresses.add (email_fd);
}
- if (!Folks.PersonaStore.equal_sets<EmailFieldDetails> (new_email_addresses,
+ if (!Folks.Internal.equal_sets<EmailFieldDetails> (new_email_addresses,
this._email_addresses))
{
this._email_addresses = new_email_addresses;
@@ -1056,7 +1056,7 @@ public class Edsf.Persona : Folks.Persona,
new_notes.add (note);
}
- if (!Folks.PersonaStore.equal_sets<NoteFieldDetails> (new_notes, this._notes))
+ if (!Folks.Internal.equal_sets<NoteFieldDetails> (new_notes, this._notes))
{
this._notes = new_notes;
this._notes_ro = this._notes.read_only_view;
@@ -1412,7 +1412,7 @@ public class Edsf.Persona : Folks.Persona,
new_phone_numbers.add (phone_fd);
}
- if (!Folks.PersonaStore.equal_sets<PhoneFieldDetails> (new_phone_numbers,
+ if (!Folks.Internal.equal_sets<PhoneFieldDetails> (new_phone_numbers,
this._phone_numbers))
{
this._phone_numbers = new_phone_numbers;
@@ -1496,7 +1496,7 @@ public class Edsf.Persona : Folks.Persona,
new_postal_addresses.add (pa_fd);
}
- if (!Folks.PersonaStore.equal_sets<PostalAddressFieldDetails> (
+ if (!Folks.Internal.equal_sets<PostalAddressFieldDetails> (
new_postal_addresses,
this._postal_addresses))
{
@@ -1526,7 +1526,7 @@ public class Edsf.Persona : Folks.Persona,
/* Make sure it includes our local id */
new_local_ids.add (this.iid);
- if (!Folks.PersonaStore.equal_sets<string> (new_local_ids, this.local_ids))
+ if (!Folks.Internal.equal_sets<string> (new_local_ids, this.local_ids))
{
this._local_ids = new_local_ids;
this._local_ids_ro = this._local_ids.read_only_view;
diff --git a/backends/telepathy/lib/Makefile.am b/backends/telepathy/lib/Makefile.am
index 7129e3e..4523c7e 100644
--- a/backends/telepathy/lib/Makefile.am
+++ b/backends/telepathy/lib/Makefile.am
@@ -110,6 +110,7 @@ libfolks_telepathy_la_VALAFLAGS = \
--vapidir=. \
--vapidir=$(top_srcdir)/folks \
--pkg folks \
+ --pkg folks-internal \
--pkg tp-lowlevel \
--pkg gobject-2.0 \
--pkg gio-2.0 \
@@ -133,6 +134,7 @@ libfolks_telepathy_la_LIBADD = \
$(GEE_LIBS) \
$(TP_GLIB_LIBS) \
$(top_builddir)/folks/libfolks.la \
+ $(top_builddir)/folks/libfolks-internal.la \
$(NULL)
# The quoting here is unnecessary but harmless, and has the useful side-effect
diff --git a/backends/telepathy/lib/tpf-persona.vala b/backends/telepathy/lib/tpf-persona.vala
index c18ebec..546f58d 100644
--- a/backends/telepathy/lib/tpf-persona.vala
+++ b/backends/telepathy/lib/tpf-persona.vala
@@ -403,8 +403,7 @@ public class Tpf.Persona : Folks.Persona,
{
var tpf_store = this.store as Tpf.PersonaStore;
- if (Folks.PersonaStore.equal_sets<PhoneFieldDetails> (phone_numbers,
- this._phone_numbers))
+ if (Folks.Internal.equal_sets<T> (details, member_set))
{
return;
}
@@ -615,7 +614,7 @@ public class Tpf.Persona : Folks.Persona,
this.notify_property ("full-name");
}
- if (!Folks.PersonaStore.equal_sets<PhoneFieldDetails> (new_phone_numbers,
+ if (!Folks.Internal.equal_sets<PhoneFieldDetails> (new_phone_numbers,
this._phone_numbers))
{
this._phone_numbers = new_phone_numbers;
diff --git a/folks/Makefile.am b/folks/Makefile.am
index 7799a45..fe23abc 100644
--- a/folks/Makefile.am
+++ b/folks/Makefile.am
@@ -8,9 +8,42 @@ AM_CPPFLAGS = \
-DG_LOG_DOMAIN=\"folks\" \
$(NULL)
+noinst_LTLIBRARIES = libfolks-internal.la
lib_LTLIBRARIES = libfolks.la
-# Vala files to compile into libfolks.la
+##################################################
+# Internal library
+##################################################
+libfolks_internal_la_SOURCES = \
+ internal.vala \
+ $(NULL)
+
+libfolks_internal_la_VALAFLAGS = \
+ $(ERROR_VALAFLAGS) \
+ --library=folks-internal \
+ --vapidir=. \
+ --pkg gobject-2.0 \
+ --pkg gee-1.0 \
+ --vapi folks-internal.vapi \
+ -H folks-internal.h \
+ $(NULL)
+
+libfolks_internal_la_CFLAGS = \
+ $(GLIB_CFLAGS) \
+ $(GEE_CFLAGS) \
+ $(NULL)
+
+libfolks_internal_la_LIBADD = \
+ $(GLIB_LIBS) \
+ $(GEE_LIBS) \
+ $(NULL)
+
+##################################################
+# Core library
+##################################################
+
+libfolks_la_vala.stamp: libfolks-internal.la
+
libfolks_la_SOURCES = \
abstract-field-details.vala \
alias-details.vala \
@@ -54,6 +87,7 @@ libfolks_la_VALAFLAGS = \
--library=folks \
--vapidir=. \
--pkg build-conf \
+ --pkg folks-internal \
--pkg gobject-2.0 \
--pkg gmodule-2.0 \
--pkg gio-2.0 \
@@ -79,6 +113,7 @@ libfolks_la_LIBADD = \
$(GMODULE_LIBS) \
$(GEE_LIBS) \
$(GCONF2_LIBS) \
+ $(top_builddir)/folks/libfolks-internal.la \
$(NULL)
# The quoting here is unnecessary but harmless, and has the useful side-effect
@@ -90,6 +125,10 @@ libfolks_la_LDFLAGS = \
folksdir = $(includedir)/folks
folks_HEADERS = folks.h
+dist_noinst_DATA = \
+ folks-internal.vapi \
+ $(NULL)
+
vapidir = $(datadir)/vala/vapi
dist_vapi_DATA = \
folks.vapi \
diff --git a/folks/internal.vala b/folks/internal.vala
new file mode 100644
index 0000000..41cf7f2
--- /dev/null
+++ b/folks/internal.vala
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2011 Collabora Ltd.
+ *
+ * This library is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 2.1 of the License, or
+ * (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Authors:
+ * Raul Gutierrez Segales <raul gutierrez segales collabora co uk>
+ */
+
+using Gee;
+
+namespace Folks.Internal
+{
+ public static bool equal_sets<G> (Set<G> a, Set<G> b)
+ {
+ if (a.size != b.size)
+ return false;
+
+ foreach (var a_elem in a)
+ {
+ if (!b.contains (a_elem))
+ return false;
+ }
+
+ return true;
+ }
+}
diff --git a/folks/persona-store.vala b/folks/persona-store.vala
index 9b464a0..aa533c1 100644
--- a/folks/persona-store.vala
+++ b/folks/persona-store.vala
@@ -658,18 +658,4 @@ public abstract class Folks.PersonaStore : Object
* @since 0.6.3
*/
public bool is_user_set_default { get; internal set; default = false; }
-
- public static bool equal_sets<G> (Set<G> a, Set<G> b)
- {
- if (a.size != b.size)
- return false;
-
- foreach (var a_elem in a)
- {
- if (!b.contains (a_elem))
- return false;
- }
-
- return true;
- }
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]