![]() |
![]() |
![]() |
libinfinity-0.6 Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
#include <libinfinity/client/infc-request-manager.h> void (*InfcRequestManagerForeachFunc) (InfcRequest *request
,gpointer user_data
); InfcRequestManager; struct InfcRequestManagerClass; InfcRequestManager * infc_request_manager_new (guint seq_id
); InfcRequest * infc_request_manager_add_request (InfcRequestManager *manager
,GType request_type
,const gchar *request_name
,GCallback callback
,gpointer user_data
,const gchar *first_property_name
,...
); InfcRequest * infc_request_manager_add_request_valist (InfcRequestManager *manager
,GType request_type
,const gchar *request_name
,GCallback callback
,gpointer user_data
,const gchar *first_property_name
,va_list arglist
); void infc_request_manager_remove_request (InfcRequestManager *manager
,InfcRequest *request
); void infc_request_manager_finish_request (InfcRequestManager *manager
,InfcRequest *request
,InfRequestResult *result
); void infc_request_manager_fail_request (InfcRequestManager *manager
,InfcRequest *request
,GError *error
); void infc_request_manager_clear (InfcRequestManager *manager
); InfcRequest * infc_request_manager_get_request_by_seq (InfcRequestManager *manager
,guint seq
); InfcRequest * infc_request_manager_get_request_by_xml (InfcRequestManager *manager
,const gchar *name
,xmlNodePtr xml
,GError **error
); InfcRequest * infc_request_manager_get_request_by_xml_required (InfcRequestManager *manager
,const gchar *name
,xmlNodePtr xml
,GError **error
); void infc_request_manager_foreach_request (InfcRequestManager *manager
,InfcRequestManagerForeachFunc func
,gpointer user_data
); void infc_request_manager_foreach_named_request (InfcRequestManager *manager
,const gchar *name
,InfcRequestManagerForeachFunc func
,gpointer user_data
);
This class keeps track of requests sent by InfcBrowser and InfcSessionProxy (typically via the InfBrowser and InfSessionProxy APIs). It is used internally by InfcBrowser and InfcSessionProxy, and usually end-users of the libinfinity API do not need to use this class directly.
Requests can be added with the infc_request_manager_add_request()
and
infc_request_manager_add_request_valist()
methods and retrieved back via
their unique seq number with infc_request_manager_get_request_by_seq()
. In
addition to this basic API, there are various convenience functions
available as well.
void (*InfcRequestManagerForeachFunc) (InfcRequest *request
,gpointer user_data
);
This signature specifies the callback type when iterating over all requests of the request manager.
|
The current request. |
|
Additional data passed to
infc_request_manager_foreach_request() or
infc_request_manager_foreach_named_request() . |
typedef struct _InfcRequestManager InfcRequestManager;
InfcRequestManager is an opaque data type. You should only access it via the public API functions.
struct InfcRequestManagerClass { void (*request_add)(InfcRequestManager* manager, InfcRequest* request); void (*request_remove)(InfcRequestManager* manager, InfcRequest* request); };
This structure contains the default signal handlers of the InfcRequestManager class.
Default signal handler for the "request-add" signal. | |
Default signal handler for the "request-remove" signal. |
InfcRequestManager * infc_request_manager_new (guint seq_id
);
Creates a new InfcRequestManager.
|
The local sequence ID. |
Returns : |
A newly allocated InfcRequestManager. |
InfcRequest * infc_request_manager_add_request (InfcRequestManager *manager
,GType request_type
,const gchar *request_name
,GCallback callback
,gpointer user_data
,const gchar *first_property_name
,...
);
Adds a request to the request manager. A new signal handler for the request's "finished" signal will be installed and made to invoke the given callback.
|
A InfcRequestManager. |
|
The type of request to add, such as InfcProgressRequest. |
|
The name of the request, such as "explore-node" or "subscribe-session". |
|
A GCallback that will be called when the request has completed,
or NULL . |
|
Additional data passed to the callback. |
|
The first property name apart from name and seq to set for the new request. |
|
The value of the first property, followed optionally by more
name/value pairs, followed by NULL . |
Returns : |
The generated InfcRequest (actually of type request_type ). |
InfcRequest * infc_request_manager_add_request_valist (InfcRequestManager *manager
,GType request_type
,const gchar *request_name
,GCallback callback
,gpointer user_data
,const gchar *first_property_name
,va_list arglist
);
Adds a request to the request manager. A new signal handler for the request's "finished" signal will be installed and made to invoke the given callback.
|
A InfcRequestManager. |
|
The type of request to add, such as InfcProgressRequest. |
|
The name of the request, such as "explore-node" or "subscribe-session" |
|
A GCallback that will be called when the request has completed,
or NULL . |
|
Additional data passed to the callback. |
|
The first property name apart from name and seq to set for the new request. |
|
The value of the first property, followed optionally by more
name/value pairs, followed by NULL . |
Returns : |
The generated InfcRequest (actually of type request_type ). |
void infc_request_manager_remove_request (InfcRequestManager *manager
,InfcRequest *request
);
Removes a request from the request manager.
|
A InfcRequestManager. |
|
A InfcRequest that has previously been added to manager . |
void infc_request_manager_finish_request (InfcRequestManager *manager
,InfcRequest *request
,InfRequestResult *result
);
Marks request
as finished using inf_request_finish()
and then removes the
request from the manager. The function takes ownership of result
.
|
A InfcRequestManager. |
|
A InfcRequest that has previously been added to manager . |
|
The request result. |
void infc_request_manager_fail_request (InfcRequestManager *manager
,InfcRequest *request
,GError *error
);
Marks request
as failed using inf_request_fail()
and then removes the
request from the manager.
|
A InfcRequestManager. |
|
A InfcRequest that has previously been added to manager . |
|
Error information why the request failed. |
void infc_request_manager_clear (InfcRequestManager *manager
);
Removes all the requests in manager
.
|
A InfcRequestManager. |
InfcRequest * infc_request_manager_get_request_by_seq (InfcRequestManager *manager
,guint seq
);
Returns a previously-added request that has the given seq.
|
A InfcRequestManager. |
|
The sequence number to which the request should be retrieved. |
Returns : |
The request with the given seq, or NULL if there is no such
request. |
InfcRequest * infc_request_manager_get_request_by_xml (InfcRequestManager *manager
,const gchar *name
,xmlNodePtr xml
,GError **error
);
Looks whether there is a "seq" attribute in xml
. If not, the function
returns NULL
(without setting error
). Otherwise, it returns the request
with the given seq and name, if the sequence ID matches. If the "seq"
attribute is set but the actual request is not present (or has another
name), the function returns NULL
and error
is set.
|
A InfcRequestManager. |
|
Name of the expected request. May be NULL to allow all requests. |
|
XML node that is supposed to contain a "seq" attribute. |
|
Location to store error information. |
Returns : |
The resulting request, or NULL if the "seq" attribute was
not present or an error occured. |
InfcRequest * infc_request_manager_get_request_by_xml_required (InfcRequestManager *manager
,const gchar *name
,xmlNodePtr xml
,GError **error
);
Looks whether there is a "seq" attribute in xml
. If so, it returns the
request with the given seq and name, if the sequence ID matches. If the
"seq" attribute is not set or the actual request is not present (or has
another name), the function returns NULL
and error
is set.
|
A InfcRequestManager. |
|
Name of the expected request. May be NULL to allow all requests. |
|
XML node that is supposed to contain a "seq" attribute. |
|
Location to store error information. |
Returns : |
The resulting request, or NULL if an error occured. |
void infc_request_manager_foreach_request (InfcRequestManager *manager
,InfcRequestManagerForeachFunc func
,gpointer user_data
);
Calls the given function for each request that has been added to the request manager.
|
A InfcRequestManager. |
|
The function to be called. |
|
Arbitrary data to be passed to func . |
void infc_request_manager_foreach_named_request (InfcRequestManager *manager
,const gchar *name
,InfcRequestManagerForeachFunc func
,gpointer user_data
);
Calls the given function for each request that has been added to the
request manager that has the name name
.
|
A InfcRequestManager. |
|
The name of the request to look for. |
|
The function to be called. |
|
Arbitrary data to be passed to func . |
"sequence-id"
property"sequence-id" guint : Read / Write / Construct Only
The local sequence identifier.
Default value: 0
"request-add"
signalvoid user_function (InfcRequestManager *manager,
InfcRequest *request,
gpointer user_data) : Run Last
This signal is emitted whenever a request was added to the request manager.
|
The InfcRequestManager emitting the signal. |
|
The InfcRequest that was added. |
|
user data set when the signal handler was connected. |
"request-remove"
signalvoid user_function (InfcRequestManager *manager,
InfcRequest *request,
gpointer user_data) : Run Last
This signal is emitted whenever a request was removed from the request manager. Typically this happens when the request has finished (either successfully or unsuccessfully). It can also happen when the client is disconnected from the server while a request was still pending.
|
The InfcRequestManager emitting the signal. |
|
The InfcRequest that was removed. |
|
user data set when the signal handler was connected. |