Top | ![]() |
![]() |
![]() |
![]() |
TpBaseConnectionManagerTpBaseConnectionManager — base class for TpSvcConnectionManager implementations |
gboolean | (*TpCMParamFilter) () |
gboolean | tp_cm_param_filter_string_nonempty () |
gboolean | tp_cm_param_filter_uint_nonzero () |
void | (*TpCMParamSetter) () |
void | tp_cm_param_setter_offset () |
TpBaseConnection * | (*TpBaseConnectionManagerNewConnFunc) () |
TpDBusDaemon * | tp_base_connection_manager_get_dbus_daemon () |
gboolean | tp_base_connection_manager_register () |
void | tp_base_connection_manager_add_protocol () |
TpDBusDaemon * | dbus-daemon | Read / Write / Construct Only |
GStrv | interfaces | Read |
GHashTable_gchararray+GHashTable_gchararray+GValue__* | protocols | Read |
struct | TpCMParamSpec |
TpCMProtocolSpec | |
struct | TpBaseConnectionManager |
struct | TpBaseConnectionManagerClass |
TpBaseConnectionManager implements TpSvcDBusProperties and TpSvcConnectionManager.
This base class makes it easier to write TpSvcConnectionManager implementations by managing the D-Bus object path and bus name, and maintaining a table of active connections. Subclasses should usually only need to override the members of the class data structure.
gboolean (*TpCMParamFilter) (const TpCMParamSpec *paramspec
,GValue *value
,GError **error
);
Signature of a callback used to validate and/or normalize user-provided CM parameter values.
paramspec |
The parameter specification. The filter is likely to use name (for the error message if the value is invalid) and filter_data. |
|
value |
The value for that parameter provided by the user. May be changed to contain a different value of the same type, if some sort of normalization is required |
|
error |
Used to raise |
gboolean tp_cm_param_filter_string_nonempty (const TpCMParamSpec *paramspec
,GValue *value
,GError **error
);
A TpCMParamFilter which rejects empty strings.
gboolean tp_cm_param_filter_uint_nonzero (const TpCMParamSpec *paramspec
,GValue *value
,GError **error
);
A TpCMParamFilter which rejects zero, useful for server port numbers.
void (*TpCMParamSetter) (const TpCMParamSpec *paramspec
,const GValue *value
,gpointer params
);
The signature of a callback used to set a parameter within the opaque data structure used for a protocol.
paramspec |
The parameter specification. The setter is likely to use some combination of the name, offset and setter_data fields. |
|
value |
The value for that parameter provided by the user. |
|
params |
An opaque data structure, created by TpCMProtocolSpec.params_new. |
Since 0.7.0
void tp_cm_param_setter_offset (const TpCMParamSpec *paramspec
,const GValue *value
,gpointer params
);
A TpCMParamSetter which sets parameters by dereferencing an offset
from params
. If paramspec->offset
is G_MAXSIZE, the parameter is
deemed obsolete, and is accepted but ignored.
paramspec |
A parameter specification with offset set to some meaningful value. |
|
value |
The value for that parameter, either provided by the user or constructed from the parameter's default. |
|
params |
An opaque data structure such that the address at ( |
Since 0.7.0
TpBaseConnection * (*TpBaseConnectionManagerNewConnFunc) (TpBaseConnectionManager *self
,const gchar *proto
,TpIntset *params_present
,void *parsed_params
,GError **error
);
A function that will return a new connection according to the parsed parameters; used to implement RequestConnection.
The connection manager base class will register the bus name for the new connection, and place a reference to it in its table of connections until the connection's shutdown process finishes.
self |
The connection manager implementation |
|
proto |
The protocol name from the D-Bus request |
|
params_present |
A set of integers representing the indexes into the array of TpCMParamSpec of those parameters that were present in the request |
|
parsed_params |
An opaque data structure as returned by the protocol's params_new function, populated according to the parameter specifications |
|
error |
if not |
TpDBusDaemon *
tp_base_connection_manager_get_dbus_daemon
(TpBaseConnectionManager *self
);
the value of the
“dbus-daemon” property. The caller must reference
the returned object with g_object_ref()
if it will be kept.
[transfer none]
Since 0.11.3
gboolean
tp_base_connection_manager_register (TpBaseConnectionManager *self
);
Register the connection manager with an appropriate object path as
determined from its cm_dbus_name
, and register the appropriate well-known
bus name.
void tp_base_connection_manager_add_protocol (TpBaseConnectionManager *self
,TpBaseProtocol *protocol
);
Add a protocol object to the set of supported protocols.
self |
a connection manager object which has not yet registered on D-Bus
(i.e. |
|
protocol |
a protocol object, which must not have the same protocol name as any that has already been added |
struct TpCMParamSpec { const gchar *name; const gchar *dtype; GType gtype; guint flags; gconstpointer def; gsize offset; TpCMParamFilter filter; gconstpointer filter_data; gconstpointer setter_data; };
Structure representing a connection manager parameter, as accepted by RequestConnection.
In addition to the fields documented here, there is one gpointer field
which must currently be NULL
. A meaning may be defined for it in a
future version of telepathy-glib.
Name as passed over D-Bus |
||
D-Bus type signature. We currently support 16- and 32-bit integers
( |
||
GLib type, derived from |
||
Some combination of TpConnMgrParamFlags |
||
Default value, as a (const gchar *) for string parameters, or using GINT_TO_POINTER or GUINT_TO_POINTER for integer parameters |
||
Offset of the parameter in the opaque data structure, if
appropriate. The member at that offset is expected to be a gint,
guint, (gchar *) or gboolean, depending on |
||
TpCMParamFilter |
A callback which is used to validate or normalize the user-provided value before it is written into the opaque data structure |
|
Arbitrary opaque data intended for use by the filter function |
||
Arbitrary opaque data intended for use by the setter function
instead of or in addition to |
typedef struct { const gchar *name; const TpCMParamSpec *parameters; gpointer (*params_new) (void); void (*params_free) (gpointer); TpCMParamSetter set_param; } TpCMProtocolSpec;
Structure representing a connection manager protocol.
In addition to the fields documented here, there are three gpointer fields
which must currently be NULL
. A meaning may be defined for these in a
future version of telepathy-glib.
The name which should be passed to RequestConnection for this protocol. |
||
const TpCMParamSpec * |
An array of TpCMParamSpec representing the valid parameters for this protocol, terminated by a TpCMParamSpec whose name entry is NULL. |
|
A function which allocates an opaque data structure to store
the parsed parameters for this protocol. The offset fields
in the members of the |
||
A function which deallocates the opaque data structure provided by params_new, including deallocating its data members (currently, only strings) if necessary. |
||
TpCMParamSetter |
A function which sets a parameter within the opaque data
structure provided by params_new. If |
struct TpBaseConnectionManager;
A base class for connection managers. There are no interesting public fields in the instance structure.
struct TpBaseConnectionManagerClass { GObjectClass parent_class; const char *cm_dbus_name; const TpCMProtocolSpec *protocol_params; TpBaseConnectionManagerNewConnFunc new_connection; const gchar * const *interfaces; };
The class structure for TpBaseConnectionManager.
In addition to the fields documented here, there are some gpointer fields
which must currently be NULL
(a meaning may be defined for these in a
future version of telepathy-glib).
Changed in 0.7.1: it is a fatal error for cm_dbus_name
not to conform to
the specification.
Changed in 0.11.11: protocol_params and new_connection may both be
NULL
. If so, this connection manager is assumed to use Protocol objects
instead.
The parent class |
||
The name of this connection manager, as used to construct D-Bus object paths and bus names. Must contain only letters, digits and underscores, and may not start with a digit. Must be filled in by subclasses in their class_init function. |
||
const TpCMProtocolSpec * |
An array of TpCMProtocolSpec structures representing
the protocols this connection manager supports, terminated by a structure
whose name member is |
|
TpBaseConnectionManagerNewConnFunc |
A TpBaseConnectionManagerNewConnFunc used to construct
new connections, or |
|
A GStrv of extra D-Bus interfaces implemented by instances of this class, which may be filled in by subclasses. The default is to list no additional interfaces. Since: 0.11.11 |
“dbus-daemon”
property“dbus-daemon” TpDBusDaemon *
TpDBusDaemon object encapsulating this object's connection to D-Bus. Read-only except during construction.
If this property is NULL
or omitted during construction, the object will
automatically attempt to connect to the starter or session bus with
tp_dbus_daemon_dup()
just after it is constructed; if this fails, a
warning will be logged with g_warning()
, and this property will remain
NULL
.
Flags: Read / Write / Construct Only
Since 0.11.3
“interfaces”
property “interfaces” GStrv
The set of D-Bus interfaces available on this ConnectionManager, other than ConnectionManager itself.
Flags: Read
Since 0.11.11
“no-more-connections”
signalvoid user_function (TpBaseConnectionManager *arg0, gpointer user_data)
Emitted when the table of active connections becomes empty.
tp_run_connection_manager()
uses this to detect when to shut down the
connection manager.
Flags: Has Details