Methods
GetContactAttributes | (au: Handles, as: Interfaces, b: Hold) | → | a{ua{sv}}: Attributes |
Properties
ContactAttributeInterfaces | as (DBus_Interface_List) | Read only |
Types
Contact_Attribute | Simple Type | s | |
Single_Contact_Attributes_Map | Mapping | a{sv} | |
Contact_Attributes_Map | Mapping | a{ua{sv}} |
Description
This interface allows many attributes of many contacts to be obtained in a single D-Bus round trip.
Each contact attribute has an string identifier (Contact_Attribute), which is namespaced by the D-Bus interface which defines it.
Methods
GetContactAttributes (au: Handles, as: Interfaces, b: Hold) → a{ua{sv}}: Attributes
Parameters
- Handles — au (Contact_Handle_List)
- Interfaces — as (DBus_Interface_List)
- Hold — b
A list of strings indicating which D-Bus interfaces the calling process is interested in. All supported attributes from these interfaces, whose values can be obtained without additional network activity, will be in the reply.
Connection managers SHOULD ignore interfaces requested which they do not support (i.e. those not mentioned in the ContactAttributeInterfaces property.)
Rationale:
This simplifies client-side code. Clients which care may distinguish between unsupported interfaces (e.g. this Connection does not support Avatars), and interfaces on which no information is known for these contacts (e.g. we don't know the avatar tokens of any of the contacts, so we omitted them all) by inspecting ContactAttributeInterfaces.
Attributes from the interface org.freedesktop.Telepathy.Connection are always returned, and need not be requested explicitly.
As well as returning cached information immediately, the connection MAY start asynchronous requests to obtain better values for the contact attributes. If better values are later obtained by this process, they will be indicated with the usual signals (such as AliasesChanged).
Rationale:
If true, all handles that appear as keys in the result have been held on behalf of the calling process, as if by a call to Connection.HoldHandles. (If HasImmortalHandles is true, which SHOULD be the case in all new connection managers, this has no effect.)
Rationale:
For further round-trip avoidance.
Returns
- Attributes — a{ua{sv}} (Contact_Attributes_Map)
A dictionary mapping the contact handles to contact attributes. If any of the requested handles are in fact invalid, they are simply omitted from this mapping. If contact attributes are not immediately known, the behaviour is defined by the interface; the attribute should either be omitted from the result or replaced with a default value.
Each contact's attributes will always include at least the
identifier that would be obtained by inspecting the handle
(org.freedesktop.Telepathy.Connection/contact-id
).
Possible Errors
- Disconnected
Rationale:
Properties
ContactAttributeInterfaces — as (DBus_Interface_List)
Types
Contact_Attribute — s
Rationale:
Single_Contact_Attributes_Map — a{sv}
- Attribute — s (Contact_Attribute)
- Value — v
Contact_Attributes_Map — a{ua{sv}}
- Contact — u (Contact_Handle)
- Attributes — a{sv} (Single_Contact_Attributes_Map)