## GUPnPContextManager

GUPnPContextManager — Manages GUPnPContext objects.

## Synopsis

    struct              GUPnPContextManager;
    GUPnPContextManager * gupnp_context_manager_new         (GMainContext *main_context,
                                                             guint port);
    GUPnPContextManager * gupnp_context_manager_create      (guint port);
    void                gupnp_context_manager_manage_control_point
                                                            (GUPnPContextManager *manager,
                                                             GUPnPControlPoint *control_point);
    void                gupnp_context_manager_manage_root_device
                                                            (GUPnPContextManager *manager,
                                                             GUPnPRootDevice *root_device);

## Object Hierarchy

      GObject
       +----GUPnPContextManager

## Properties

      "main-context"             gpointer              : Read / Write / Construct Only
      "port"                     guint                 : Read / Write / Construct Only

## Signals

      "context-available"                              : Run Last
      "context-unavailable"                            : Run First

## Description

A Utility class that takes care of creation and destruction of GUPnPContext objects for all available network interfaces as they go up (connect) and down (disconnect), respectively.

## Details

### struct GUPnPContextManager

    struct GUPnPContextManager;

This struct contains private data only, and should be accessed using the functions below.

### gupnp_context_manager_new ()

    GUPnPContextManager * gupnp_context_manager_new         (GMainContext *main_context,
                                                             guint port);

### Warning

`gupnp_context_manager_new` has been deprecated since version 0.17.2 and should not be used in newly-written code. Use `gupnp_context_manager_create()`.

Same as `gupnp_context_manager_create()`.

`main_context` : | Deprecated: 0.17.2: `NULL`. If you want to use a different main context use `g_main_context_push_thread_default()` instead. [allow-none]
`port` : | Port to create contexts for, or 0 if you don't care what port is used.
Returns : | A new GUPnPContextManager object. [transfer full]

### gupnp_context_manager_create ()

    GUPnPContextManager * gupnp_context_manager_create      (guint port);

Factory-method to create a new GUPnPContextManager. The final type of the GUPnPContextManager depends on the compile-time selection or - in case of NetworkManager - on its availability during runtime. If it is not available, the implementation falls back to the basic Unix context manager instead.

`port` : | Port to create contexts for, or 0 if you don't care what port is used.
Returns : | A new GUPnPContextManager object. [transfer full]

### gupnp_context_manager_manage_control_point ()

    void                gupnp_context_manager_manage_control_point
                                                            (GUPnPContextManager *manager,
                                                             GUPnPControlPoint *control_point);

By calling this function, you are asking `manager` to keep a reference to `control_point` until it's associated GUPnPContext is no longer available. You usually want to call this function from "context-available" handler after you create a GUPnPControlPoint object for the newly available context.

`manager` : | A GUPnPContextManager
`control_point` : | The GUPnPControlPoint to be taken care of

### gupnp_context_manager_manage_root_device ()

    void                gupnp_context_manager_manage_root_device
                                                            (GUPnPContextManager *manager,
                                                             GUPnPRootDevice *root_device);

By calling this function, you are asking `manager` to keep a reference to `root_device` when it's associated GUPnPContext is no longer available. You usually want to call this function from "context-available" handler after you create a GUPnPRootDevice object for the newly available context.

`manager` : | A GUPnPContextManager
`root_device` : | The GUPnPRootDevice to be taken care of

## Property Details

### The `"main-context"` property

      "main-context"             gpointer              : Read / Write / Construct Only

GMainContext to pass to created GUPnPContext objects.

### The `"port"` property

      "port"                     guint                 : Read / Write / Construct Only

Port the contexts listen on, or 0 if you don't care what port is used by GUPnPContext objects created by this object.

Default value: 0

## Signal Details

### The `"context-available"` signal

    void                user_function                      (GUPnPContextManager *context_manager,
                                                            GUPnPContext        *context,
                                                            gpointer             user_data)            : Run Last

Signals the availability of new GUPnPContext.

`context_manager` : | The GUPnPContextManager that received the signal
`context` : | The now available GUPnPContext
`user_data` : | user data set when the signal handler was connected.

### The `"context-unavailable"` signal

    void                user_function                      (GUPnPContextManager *context_manager,
                                                            GUPnPContext        *context,
                                                            gpointer             user_data)            : Run First

Signals the unavailability of a GUPnPContext.

`context_manager` : | The GUPnPContextManager that received the signal
`context` : | The now unavailable GUPnPContext
`user_data` : | user data set when the signal handler was connected.