summaryrefslogtreecommitdiff
path: root/src/glibext/singleton-int.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/glibext/singleton-int.h')
-rw-r--r--src/glibext/singleton-int.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/glibext/singleton-int.h b/src/glibext/singleton-int.h
index 9212e2e..747e64a 100644
--- a/src/glibext/singleton-int.h
+++ b/src/glibext/singleton-int.h
@@ -38,11 +38,14 @@ typedef GSingletonCandidate ** (* list_inner_instances_fc) (const GSingletonCand
/* Met à jour une liste de candidats embarqués par un candidat. */
typedef void (* update_inner_instances_fc) (GSingletonCandidate *, GSingletonCandidate **, size_t);
-/* Fournit l'empreinte d'un candidat à une centralisation. */
-typedef guint (* hash_candidate_fc) (const GSingletonCandidate *);
+/* Marque un candidat comme figé. */
+typedef void (* mark_candidate_as_ro_fc) (GSingletonCandidate *);
-/* Détermine si deux candidats à l'unicité sont identiques. */
-typedef gboolean (* is_candidate_equal_fc) (const GSingletonCandidate *, const GSingletonCandidate *);
+/* Indique si le candidat est figé. */
+typedef bool (* is_candidate_ro_fc) (const GSingletonCandidate *);
+
+/* Crée une copie modifiable d'un object unique. */
+typedef GSingletonCandidate * (* dup_candidate_fc) (const GSingletonCandidate *);
/* Instance d'objet visant à être unique (interface) */
@@ -53,8 +56,10 @@ struct _GSingletonCandidateInterface
list_inner_instances_fc list_inner; /* Récupération d'internes */
update_inner_instances_fc update_inner; /* Mise à jour des éléments */
- hash_candidate_fc hash; /* Prise d'empreinte */
- is_candidate_equal_fc is_equal; /* Comparaison */
+ mark_candidate_as_ro_fc mark_as_ro; /* Bascule en mode figé */
+ is_candidate_ro_fc is_ro; /* Consultation de l'état */
+
+ dup_candidate_fc dup; /* Création de copie modifiable*/
};