InfcBrowser

InfcBrowser — Browse remote directories

Stability Level

Unstable, unless otherwise indicated

Synopsis


#include <libinfinity/client/infc-browser.h>


enum                InfcBrowserNodeStatus;
                    InfcBrowser;
                    InfcBrowserClass;
InfcBrowser*        infc_browser_new                    (InfIo *io,
                                                         InfCommunicationManager *comm_manager,
                                                         InfXmlConnection *connection);
InfCommunicationManager* infc_browser_get_communication_manager
                                                        (InfcBrowser *browser);
InfXmlConnection*   infc_browser_get_connection         (InfcBrowser *browser);
gboolean            infc_browser_add_plugin             (InfcBrowser *browser,
                                                         const InfcNotePlugin *plugin);
const InfcNotePlugin* infc_browser_lookup_plugin        (InfcBrowser *browser,
                                                         const gchar *note_type);
void                infc_browser_iter_get_root          (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
gboolean            infc_browser_iter_get_next          (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
gboolean            infc_browser_iter_get_prev          (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
gboolean            infc_browser_iter_get_parent        (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
gboolean            infc_browser_iter_get_explored      (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
gboolean            infc_browser_iter_get_child         (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
InfcExploreRequest* infc_browser_iter_explore           (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
const gchar*        infc_browser_iter_get_name          (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
gchar*              infc_browser_iter_get_path          (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
gboolean            infc_browser_iter_is_subdirectory   (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
InfcNodeRequest*    infc_browser_add_subdirectory       (InfcBrowser *browser,
                                                         InfcBrowserIter *parent,
                                                         const gchar *name);
InfcNodeRequest*    infc_browser_add_note               (InfcBrowser *browser,
                                                         InfcBrowserIter *parent,
                                                         const gchar *name,
                                                         const InfcNotePlugin *plugin,
                                                         gboolean initial_subscribe);
InfcNodeRequest*    infc_browser_add_note_with_content  (InfcBrowser *browser,
                                                         InfcBrowserIter *parent,
                                                         const gchar *name,
                                                         const InfcNotePlugin *plugin,
                                                         InfSession *session,
                                                         gboolean initial_subscribe);
InfcNodeRequest*    infc_browser_remove_node            (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
const gchar*        infc_browser_iter_get_note_type     (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
const InfcNotePlugin* infc_browser_iter_get_plugin      (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
InfcNodeRequest*    infc_browser_iter_subscribe_session (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
InfcNodeRequest*    infc_browser_iter_save_session      (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
InfcSessionProxy*   infc_browser_iter_get_session       (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
InfcSessionProxy*   infc_browser_iter_get_sync_in       (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
InfcNodeRequest*    infc_browser_iter_get_subscribe_request
                                                        (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
InfcExploreRequest* infc_browser_iter_get_explore_request
                                                        (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
GSList*             infc_browser_iter_get_sync_in_requests
                                                        (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);
gboolean            infc_browser_iter_from_node_request (InfcBrowser *browser,
                                                         InfcNodeRequest *request,
                                                         InfcBrowserIter *iter);
gboolean            infc_browser_iter_from_explore_request
                                                        (InfcBrowser *browser,
                                                         InfcExploreRequest *request,
                                                         InfcBrowserIter *iter);

Object Hierarchy


  GObject
   +----InfcBrowser

Implemented Interfaces

InfcBrowser implements InfCommunicationObject.

Properties


  "communication-manager"    InfCommunicationManager*  : Read / Write / Construct Only
  "connection"               InfXmlConnection*     : Read / Write / Construct Only
  "io"                       InfIo*                : Read / Write / Construct Only

Signals


  "begin-explore"                                  : Run Last
  "begin-subscribe"                                : Run Last
  "node-added"                                     : Run Last
  "node-removed"                                   : Run Last
  "subscribe-session"                              : Run Last

Description

The InfcBrowser is used to browse a remote directory and can be used to subscribe to sessions.

Details

enum InfcBrowserNodeStatus

typedef enum _InfcBrowserNodeStatus {
  /* The node is synchronized with the server */
  INFC_BROWSER_NODE_SYNC,
  /* The node has been deleted locally, but the server has not yet
   * acknowledged the deletion and might still reject the request. */
  INFC_BROWSER_NODE_DELETED,
  /* The node has been added locally, but the server has not yet
   * acknowledged the addition and might still reject the request. */
  INFC_BROWSER_NODE_ADDED,
  /* The node has been moved locally, but the server has not yet
   * acknowledged the move and might still reject the request. */
  INFC_BROWSER_NODE_MOVED,
  /* The node has been copied locally, but the server has not yet
   * acknowledged the copy and might still reject the request. */
  INFC_BROWSER_NODE_COPIED,
  /* Inherit status from parent node (used internally) */
  INFC_BROWSER_NODE_INHERIT
} InfcBrowserNodeStatus;


InfcBrowser

typedef struct _InfcBrowser InfcBrowser;


InfcBrowserClass

typedef struct {
  GObjectClass parent_class;

  /* Signals */
  void (*node_added)(InfcBrowser* browser,
                     InfcBrowserIter* iter);

  void (*node_removed)(InfcBrowser* browser,
                       InfcBrowserIter* iter);

  void (*subscribe_session)(InfcBrowser* browser,
                            InfcBrowserIter* iter,
                            InfcSessionProxy* proxy);

  void (*begin_explore)(InfcBrowser* browser,
                        InfcBrowserIter* iter,
                        InfcExploreRequest* request);

  /* TODO: Does anyone actually use this signal? I can't imagine any
   * senseful use of it. */
  void (*begin_subscribe)(InfcBrowser* browser,
                          InfcBrowserIter* iter,
                          InfcNodeRequest* request);
} InfcBrowserClass;


infc_browser_new ()

InfcBrowser*        infc_browser_new                    (InfIo *io,
                                                         InfCommunicationManager *comm_manager,
                                                         InfXmlConnection *connection);

Creates a new InfcBrowser.

io :

A InfIo object used to schedule timeouts.

comm_manager :

A InfCommunicationManager to register the server connection and which forwards incoming data to the browser or running sessions.

connection :

Connection to the server.

Returns :

A new InfcBrowser.

infc_browser_get_communication_manager ()

InfCommunicationManager* infc_browser_get_communication_manager
                                                        (InfcBrowser *browser);

Returns the communication manager of this browser.

browser :

A InfcBrowser.

Returns :

A InfCommunicationManager.

infc_browser_get_connection ()

InfXmlConnection*   infc_browser_get_connection         (InfcBrowser *browser);

Returns the connection to the server.

browser :

A InfcBrowser.

Returns :

A InfXmlConnection.

infc_browser_add_plugin ()

gboolean            infc_browser_add_plugin             (InfcBrowser *browser,
                                                         const InfcNotePlugin *plugin);

Adds plugin to browser. This allows the browser to create sessions of the plugin's type. Only one plugin of each type can be added to the directory.

browser :

A InfcBrowser.

plugin :

A InfcNotePlugin.

Returns :

Whether the plugin was added successfully.

infc_browser_lookup_plugin ()

const InfcNotePlugin* infc_browser_lookup_plugin        (InfcBrowser *browser,
                                                         const gchar *note_type);

Returns a previously registered plugin (see infc_browser_add_plugin()) for the given note type, or NULL if there is no such plugin.

browser :

A InfcBrowser.

note_type :

A note type, such as "InfText".

Returns :

A InfcNotePlugin, or NULL.

infc_browser_iter_get_root ()

void                infc_browser_iter_get_root          (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Sets iter to point to the root node of the browser tree.

browser :

A InfcBrowser.

iter :

An uninitialized InfcBrowserIter.

infc_browser_iter_get_next ()

gboolean            infc_browser_iter_get_next          (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Sets iter to point to the next node within the same subdirectory. If iter already points to the last node, iter is left untouched and FALSE is returned.

browser :

A InfcBrowser

iter :

A InfcBrowserIter pointing to a node in browser.

Returns :

TRUE if iter was set, FALSE otherwise.

infc_browser_iter_get_prev ()

gboolean            infc_browser_iter_get_prev          (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Sets iter to point to the provious node within the same subdirectory. If iter already points to the first node, iter is left untouched and FALSE is returned.

browser :

A InfcBrowser

iter :

A InfcBrowserIter pointing to a node in browser.

Returns :

TRUE if iter was set, FALSE otherwise.

infc_browser_iter_get_parent ()

gboolean            infc_browser_iter_get_parent        (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Sets iter to point to the parent node. If iter already points to the root node, iter is left untouched and the function returns FALSE.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a node in browser.

Returns :

TRUE if iter was set, FALSE otherwise.

infc_browser_iter_get_explored ()

gboolean            infc_browser_iter_get_explored      (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Returns whether the subdirectory node iter points to has been explored.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a subdirectory node in browser.

Returns :

TRUE if the subdirectory has been explored and FALSE otherwise.

infc_browser_iter_get_child ()

gboolean            infc_browser_iter_get_child         (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Sets iter to point to the first child of the subdirectory it is currently pointing to. The subdirectory must already have been explored. If the subdirectory has no children, iter is left untouched and FALSE is returned.

Return Value: TRUE if iter was set, FALSE otherwise.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a subdirectory node in brwoser that has already been explored.

Returns :


infc_browser_iter_explore ()

InfcExploreRequest* infc_browser_iter_explore           (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Explores the given subdirectory node. The returned request may be used to get informed about exploration progress and completion. When the exploration has been initiated, infc_browser_iter_get_child() may be called to get the content that has so-far been explored. When the request has been finished, all content is available.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a subdirectory node in browser that has not yet been explored.

Returns :

A InfcExploreRequest to watch the exploration process.

infc_browser_iter_get_name ()

const gchar*        infc_browser_iter_get_name          (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Returns the name of the node iter points to.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a node in browser.

Returns :

The node's name. The returned string must not be freed.

infc_browser_iter_get_path ()

gchar*              infc_browser_iter_get_path          (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Returns the complete path to the node iter points to. The path to a node is the name of the node and the name of all parent nodes separated by '/', as a filesystem path on Unix.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a node in browser.

Returns :

The node's path. Free with g_free() when no longer in use.

infc_browser_iter_is_subdirectory ()

gboolean            infc_browser_iter_is_subdirectory   (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Returns whether iter points to a subdirectory node or not.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a node in browser.

Returns :

Whether the node iter points to is a subdirectory node.

infc_browser_add_subdirectory ()

InfcNodeRequest*    infc_browser_add_subdirectory       (InfcBrowser *browser,
                                                         InfcBrowserIter *parent,
                                                         const gchar *name);

Creates a new request that asks the server to create a new subdirectory. Note that the parent subdirectory must already have been explored.

browser :

A InfcBrowser.

parent :

A InfcBrowserIter pointing to an explored subdirectory in which to create the new subdirectory.

name :

The name for the new subdirectory.

Returns :

A InfcNodeRequest to be notified when the request finishes or fails.

infc_browser_add_note ()

InfcNodeRequest*    infc_browser_add_note               (InfcBrowser *browser,
                                                         InfcBrowserIter *parent,
                                                         const gchar *name,
                                                         const InfcNotePlugin *plugin,
                                                         gboolean initial_subscribe);

Asks the server to create a new note with the given type. The returned request may be used to be notified when the request finishes or fails.

If initial_subscribe is set, then, when the returned request finishes, you might call infc_browser_iter_get_session() on the resulting InfcBrowserIter. However, that function is not guaranteed to return non-NULL in this case since the node might have been created, but the subscription could have failed.

browser :

A InfcBrowser.

parent :

A InfcBrowserIter pointing to an explored subdirectory.

name :

Name for the new node.

plugin :

Type of the new node.

initial_subscribe :

Whether to automatically subscribe to the newly created node.

Returns :

A InfcNodeRequest.

infc_browser_add_note_with_content ()

InfcNodeRequest*    infc_browser_add_note_with_content  (InfcBrowser *browser,
                                                         InfcBrowserIter *parent,
                                                         const gchar *name,
                                                         const InfcNotePlugin *plugin,
                                                         InfSession *session,
                                                         gboolean initial_subscribe);

Asks the server to create a new note with the given type. The returned request may be used to be notified when the request finishes or fails.

The returned request finishes as soon as the server acknowledges the creation of the node, which is before the content is transmitted. If, during transmission, an error occurs, then the node is removed again. To get notified when the transmission fails, finishes or changes in progress, you can connect to the InfSession::synchronization-failed, InfSession::synchronization-complete and InfSession::synchronization-progress signals. Note that a single session might be synchronized to multiple servers at the same time, you will have to check the connection parameter in the signal hander to find out to which server the session is synchronized.

You can safely unref session after having called this function. If the request or the synchronization fails, the session will be discarded in that case. When the returned request finishes, you can use infc_browser_iter_get_sync_in() to get the session again.

If initial_subscribe is set, then, when the returned request finishes, you might call infc_browser_iter_get_session() on the resulting InfcBrowserIter. However, that function is not guaranteed to return non-NULL in this case since the node might have been created, but the subscription could have failed.

browser :

A InfcBrowser.

parent :

A InfcBrowserIter pointing to an explored subdirectory.

name :

Name for the new node.

plugin :

Type of the new node.

session :

A session that is copied to the server and used as initial content for the new node.

initial_subscribe :

Whether to automatically subscribe to the newly created node.

Returns :

A InfcNodeRequest.

infc_browser_remove_node ()

InfcNodeRequest*    infc_browser_remove_node            (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Asks the server to remove the node iter points to.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a node in browser.

Returns :

A InfcNodeRequest that may be used to get notified when the request finishes or fails.

infc_browser_iter_get_note_type ()

const gchar*        infc_browser_iter_get_note_type     (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Returns the type of the note iter points to. This must not be a subdirectory node.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a note inside browser.

Returns :

The note's type.

infc_browser_iter_get_plugin ()

const InfcNotePlugin* infc_browser_iter_get_plugin      (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Returns the InfcNodePlugin that is used for subscriptions to the note iter points to, or NULL if no plugin for the note's type has been registered.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a note inside browser.

Returns :

A InfcNotePlugin, or NULL.

infc_browser_iter_subscribe_session ()

InfcNodeRequest*    infc_browser_iter_subscribe_session (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Subscribes to the given note. When the request has finished (which does not mean that the subscription has finished, but the server is ready to perform the subscription), infc_browser_iter_get_session() can be used to access the InfcSessionProxy object representing the subscription.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a note inside browser.

Returns :

A InfcNodeRequest that may be used to get notified when the request finishes or fails.

infc_browser_iter_save_session ()

InfcNodeRequest*    infc_browser_iter_save_session      (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Requests that the server saves the note pointed to by iter into its background storage. Normally, the server only does this when it is either shut down or when the there are no more subscriptions to the note. Note that this is merely a request and the server might decide not to save the session for whatever reason.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a note in browser.

Returns :

A InfcNodeRequest that may be used to get notified when the request finishes or fails.

infc_browser_iter_get_session ()

InfcSessionProxy*   infc_browser_iter_get_session       (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Returns the InfcSessionProxy representing the subscription to the given note, if the client is subscribed, and NULL otherwise.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a note in browser.

Returns :

A InfcSessionProxy, or NULL if not subscribed.

infc_browser_iter_get_sync_in ()

InfcSessionProxy*   infc_browser_iter_get_sync_in       (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Returns the InfcSessionProxy that is used to synchronize the note iter points to to the server. Such a node is created by infc_browser_iter_add_note_with_content(). If the client is subscribed to this note, then this returns the same session as infc_browser_iter_get_session(). However, it is possible that we synchronize this node to the server without being subscribed to it. In this case, this function returns the session that does the synchronization, while infc_browser_iter_get_session() would return NULL.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a note in browser.

Returns :

A InfcSessionProxy, or NULL if we are currently not synchronizing this node to the server.

infc_browser_iter_get_subscribe_request ()

InfcNodeRequest*    infc_browser_iter_get_subscribe_request
                                                        (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Returns the InfcNodeRequest that represents the subscription request sent for the note iter points to. Returns NULL if we are already subscribed to that node, or no subscription request has been sent. In the former case infc_browser_iter_get_session() will return the InfcSessionProxy for the subscription.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a note in browser.

Returns :

A InfcNodeRequest, or NULL.

infc_browser_iter_get_explore_request ()

InfcExploreRequest* infc_browser_iter_get_explore_request
                                                        (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Returns the InfcExploreRequest with which the node iter points to is currenty explored. Returns NULL if that node is already explored or is not currently explored.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a subdirectory node in browser.

Returns :

A InfcExploreRequest, or NULL.

infc_browser_iter_get_sync_in_requests ()

GSList*             infc_browser_iter_get_sync_in_requests
                                                        (InfcBrowser *browser,
                                                         InfcBrowserIter *iter);

Returns a list of all InfcNodeRequest created with infc_browser_add_note_with_content() with the node iter points to as parent. Such requests begin a synchronization to the server when they have finished.

browser :

A InfcBrowser.

iter :

A InfcBrowserIter pointing to a subdirectory node in browser.

Returns :

A list of InfcNodeRequests. Free with g_slist_free() when done.

infc_browser_iter_from_node_request ()

gboolean            infc_browser_iter_from_node_request (InfcBrowser *browser,
                                                         InfcNodeRequest *request,
                                                         InfcBrowserIter *iter);

Sets iter to point to the node request is related to. If there is no such node (someone could have deleted it while the request is still running), the function returns FALSE and iter is unchanged.

browser :

A InfcBrowser.

request :

A InfcNodeRequest issued by browser.

iter :

A InfcBrowserIter.

Returns :

TRUE if iter was set, FALSE otherwise.

infc_browser_iter_from_explore_request ()

gboolean            infc_browser_iter_from_explore_request
                                                        (InfcBrowser *browser,
                                                         InfcExploreRequest *request,
                                                         InfcBrowserIter *iter);

Sets iter to the node request is currently exploring. If there is no such node (someone could have deleted it while exploring), the function returns FALSE and lets iter untouched.

browser :

A InfcBrowser.

request :

A InfcExploreRequest exploring a node in browser.

iter :

A InfcBrowserIter.

Returns :

TRUE if iter was set, FALSE otherwise.

Property Details

The "communication-manager" property

  "communication-manager"    InfCommunicationManager*  : Read / Write / Construct Only

The communication manager for the browser.


The "connection" property

  "connection"               InfXmlConnection*     : Read / Write / Construct Only

Connection to the server exposing the directory to browse.


The "io" property

  "io"                       InfIo*                : Read / Write / Construct Only

The InfIo to schedule timeouts.

Signal Details

The "begin-explore" signal

void                user_function                      (InfcBrowser        *browser,
                                                        InfcBrowserIter    *iter,
                                                        InfcExploreRequest *request,
                                                        gpointer            user_data)      : Run Last

This signal is emitted when a subdirectory is started to be explored. request can be used to get notified when the exploration was finished.

browser :

The InfcBrowser emitting the siganl.

iter :

A InfcBrowserIter pointing to the node being explored.

request :

A InfcExploreRequest for the operation.

user_data :

user data set when the signal handler was connected.

The "begin-subscribe" signal

void                user_function                      (InfcBrowser     *browser,
                                                        InfcBrowserIter *iter,
                                                        InfcNodeRequest *request,
                                                        gpointer         user_data)      : Run Last

This signal is emitted whenever a subscription request for a (non-subdirectory) node is made. Note that the subscription may still fail (connect to "finished" and "failed" to be notified).

browser :

The InfcBrowser emitting the signal.

iter :

A InfcBrowserIter pointing to the node to which the subscription starts.

request :

A InfcNodeRequest for the operation.

user_data :

user data set when the signal handler was connected.

The "node-added" signal

void                user_function                      (InfcBrowser     *browser,
                                                        InfcBrowserIter *iter,
                                                        gpointer         user_data)      : Run Last

Emitted when a new node was added in the browser. This can happen either while exploring a subdirectory, or when a new node was added on the server. In the latter case the signal is only emitted when the parent directory of the newly created node is already explored.

browser :

The InfcBrowser emitting the siganl.

iter :

A InfcBrowserIter pointing to the created node.

user_data :

user data set when the signal handler was connected.

The "node-removed" signal

void                user_function                      (InfcBrowser     *browser,
                                                        InfcBrowserIter *iter,
                                                        gpointer         user_data)      : Run Last

This signal is emitted every time a node is removed from the browser. This happens when the corresponding node is removed at the server. The signal is emitted only when the parent directory of the removed node is already explored. The signal can also be emitted on non-empty subdirectory nodes in which case all children are also removed.

browser :

The InfcBrowser emitting the siganl.

iter :

A InfcBrowserIter pointing to the removed node.

user_data :

user data set when the signal handler was connected.

The "subscribe-session" signal

void                user_function                      (InfcBrowser      *browser,
                                                        InfcBrowserIter  *iter,
                                                        InfcSessionProxy *proxy,
                                                        gpointer          user_data)      : Run Last

Emitted when subscribed to a session. The subscription was successful, but the synchronization (the server sending the initial session state) might still fail. Use "synchronization-complete" and "synchronization-failed" to be notified.

browser :

The InfcBrowser emitting the siganl.

iter :

A InfcBrowserIter pointing to the subscribed node.

proxy :

A InfcSessionProxy for the subscribed session.

user_data :

user data set when the signal handler was connected.

See Also

InfdDirectory