/**
* Returns "service1:addr1,addr2;service2:addr3,.."
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public static string serialize_web_services (
MultiMap<string, string> ws_obj)
* Transforms "service1:addr1,addr2;service2:addr3,.." to
* ---> HashMultiMap<string, string>
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public static MultiMap<string, string> unserialize_web_services
(string ws_addrs)
/**
* Transform HashSet<string> to "id1,id2,.."
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public static string serialize_local_ids (Set<string> local_ids)
{
/**
* Transform from id1,id2,.. to HashSet<string>
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public static Set<string> unserialize_local_ids (string local_ids)
{
# If not 1, append datestamp to the version number
-m4_define([folks_released], [0])
+m4_define([folks_released], [1])
m4_define([folks_major_version], [0])
m4_define([folks_minor_version], [5])
-m4_define([folks_micro_version], [0])
-m4_define([folks_nano_version], [1])
+m4_define([folks_micro_version], [1])
+m4_define([folks_nano_version], [0])
# If library source has changed since last release, increment revision
# If interfaces have been added, removed or changed since last release,
# increment current and set revision to 0
# If interfaces have been added since last release, increment age
# If interfaces have been removed since last release, set age to 0
-m4_define([folks_lt_current], [23])
+m4_define([folks_lt_current], [24])
m4_define([folks_lt_revision], [0])
-m4_define([folks_lt_age], [1])
+m4_define([folks_lt_age], [0])
# Display the nano_version only if it's not '0'
m4_define([folks_base_version],
*
* The backends in this list have been prepared and are ready to use.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public Map<string, Backend> enabled_backends
{
* A backend may expose {@link Persona}s from multiple servers or accounts
* (for example), so may have a {@link PersonaStore} for each.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract Map<string, PersonaStore> persona_stores { get; }
* allows debug domains to be outputted according to whether they've been
* enabled by being passed to {@link Debug.dup}.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public class Folks.Debug : Object
{
*
* This property is thread-safe.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public bool colour_enabled
{
* debug domains; filtering of debug output as a whole is done after filtering
* by enabled domains.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public bool debug_output_enabled
{
* Client processes should emit this signal by calling
* {@link Debug.emit_print_status}.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public signal void print_status ();
* This could be used in conjunction with a log handler to redirect the
* status information to a debug window or log file, for example.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public const string STATUS_LOG_DOMAIN = "folks-status";
* This function is thread-safe.
*
* @return Singleton {@link Debug} instance
- * @since UNRELEASED
+ * @since 0.5.1
*/
public static Debug dup ()
{
* @param colour_enabled Whether debug output should be coloured using
* terminal escape sequences
* @return Singleton {@link Debug} instance
- * @since UNRELEASED
+ * @since 0.5.1
*/
public static Debug dup_with_flags (string? debug_flags,
bool colour_enabled)
* status to standard output, obeying the options set on this
* {@link Debug} instance for colouring and other formatting.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public void emit_print_status ()
{
*
* This is intended to be used by backend libraries only.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public void indent ()
{
*
* This is intended to be used by backend libraries only.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public void unindent ()
{
* @param level A set of log level flags for the message
* @param format A printf-style format string for the heading
* @param ... Arguments for the format string
- * @since UNRELEASED
+ * @since 0.5.1
*/
[PrintfFormat ()]
public void print_line (string domain,
* @param level A set of log level flags for the message
* @param format A printf-style format string for the heading
* @param ... Arguments for the format string
- * @since UNRELEASED
+ * @since 0.5.1
*/
[PrintfFormat ()]
public void print_heading (string domain,
* @param domain The debug domain name
* @param level A set of log level flags for the message
* @param ... Alternating keys and values, terminated with null
- * @since UNRELEASED
+ * @since 0.5.1
*/
public void print_key_value_pairs (string domain,
LogLevelFlags level,
/**
* The email addresses of the contact.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract Set<FieldDetails> email_addresses { get; set; }
}
* {@link Folks.FieldDetails.value}. The keys are the names of the
* parameters, while the values are a list of strings.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public MultiMap<string, string> parameters { get; set; }
* @return a collection of values for `parameter_name` or `null` (i.e. no
* collection) if there are no such parameters.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public Collection<string>? get_parameter_values (string parameter_name)
{
*
* @param additional the parameters to add
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public void extend_parameters (MultiMap<string, string> additional)
{
* Freeform group IDs are mapped to a boolean which is `true` if the
* contact is a member of the group, and `false` otherwise.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract Set<string> groups { get; set; }
* All the IM addresses must be normalised using
* {@link ImDetails.normalise_im_address} before being added to this property.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract MultiMap<string, string> im_addresses
{
* {@link IndividualAggregator.add_persona_from_details} and
* {@link IndividualAggregator.remove_individual}, respectively.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public Map<string, Individual> individuals
{
* @param actor the {@link Persona} who made the change, if known
* @param reason the reason for the change
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public signal void individuals_changed (Set<Individual> added,
Set<Individual> removed,
/**
* Get all matches for a given {@link Individual}.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public Map<Individual, MatchResult> get_potential_matches
(Individual matchee, MatchResult min_threshold = MatchResult.VERY_HIGH)
/**
* Get all combinations between all {@link Individual}s.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public Map<Individual, Map<Individual, MatchResult>>
get_all_potential_matches
* {@link Individual.removed}.
*
* @param personas the {@link Persona}s to be linked
- * @since UNRELEASED
+ * @since 0.5.1
*/
public async void link_personas (Set<Persona> personas)
throws IndividualAggregatorError
* {@link IndividualAggregator.unlink_individual}, which will ensure the link
* changes are written to the appropriate backend.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public Set<Persona> personas
{
* @param added a set of {@link Persona}s which have been added
* @param removed a set of {@link Persona}s which have been removed
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public signal void personas_changed (Set<Persona> added,
Set<Persona> removed);
* {@link Individual} with, or `null`
* @return a new Individual
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public Individual (Set<Persona>? personas)
{
* The IDs corresponding to contacts in a
* backend that we fully trust.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract Set<string> local_ids { get; set; }
}
/**
* The notes about the contact.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract Set<Note> notes { get; set; }
}
* @param actor the {@link Persona} who made the change, if known
* @param reason the reason for the change
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public signal void personas_changed (Set<Persona> added,
Set<Persona> removed,
/**
* The {@link Persona}s exposed by this PersonaStore.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract Map<string, Persona> personas { get; }
*
* A list of phone numbers associated to the contact.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract Set<FieldDetails> phone_numbers { get; set; }
* @param region the region (state or province) name
* @param postal_code the postal code
* @param address_format the address format
- * @since UNRELEASED
+ * @since 0.5.1
*/
public PostalAddress (string? po_box, string? extension, string? street,
string? locality, string? region, string? postal_code, string? country,
*
* A list of postal addresses associated to the contact.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract Set<PostalAddress> postal_addresses { get; set; }
}
* A set of e-mail addresses known to be aliases of each other, such as
* various forms of administrator address.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public static Set<string> known_email_aliases = null;
/**
* The roles of the contact.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract Set<Role> roles { get; set; }
}
*
* A list or websites associated to the contact.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract Set<FieldDetails> urls { get; set; }
}
* Web service addresses are guaranteed to be unique per web service, but
* not necessarily unique amongst all web services.
*
- * @since UNRELEASED
+ * @since 0.5.1
*/
public abstract Gee.MultiMap<string, string> web_service_addresses
{