GUPnPServiceIntrospection: GUPnP Reference Manual

## GUPnPServiceIntrospection GUPnPServiceIntrospection — Service introspection class. |

## Functions

const GList * | gupnp_service_introspection_list_action_names ()
const GList * | gupnp_service_introspection_list_actions ()
const GUPnPServiceActionInfo * | gupnp_service_introspection_get_action ()
const GList * | gupnp_service_introspection_list_state_variable_names ()
const GList * | gupnp_service_introspection_list_state_variables ()
const GUPnPServiceStateVariableInfo * | gupnp_service_introspection_get_state_variable ()

## Types and Values

enum | GUPnPServiceActionArgDirection
| GUPnPServiceActionArgInfo
| GUPnPServiceActionInfo
| GUPnPServiceStateVariableInfo
| GUPnPServiceIntrospection

## Description

The GUPnPServiceIntrospection class provides methods for service introspection based on information contained in its service description document (SCPD). There is no constructor provided for this class, please use gupnp_service_info_get_introspection or gupnp_service_info_get_introspection_async to create an GUPnPServiceIntrospection object for a specific service.

Note that all the introspection information is retreived from the service description document (SCPD) provided by the service and hence can not be guaranteed to be complete. A UPnP service is required to provide a SCPD but unfortunately, many services either do not provide this document or the document does not provide any or all of the introspection information.

This class exposes internals of the UPnP protocol and should not need to be used for regular device or control point development.

## Functions

### gupnp_service_introspection_list_action_names ()

    const GList *
    gupnp_service_introspection_list_action_names
                                   (GUPnPServiceIntrospection *introspection);

Returns a GList of names of all the actions in this service.

#### Parameters

introspection | A GUPnPServiceIntrospection |

#### Returns

(transfer none) (element-type utf8) : A GList of names of all the actions or `NULL`. Do not modify or free it or its contents.

### gupnp_service_introspection_list_actions ()

    const GList *
    gupnp_service_introspection_list_actions
                                   (GUPnPServiceIntrospection *introspection);

Returns a GList of all the actions (of type GUPnPServiceActionInfo) in this service.

#### Parameters

introspection | A GUPnPServiceIntrospection |

#### Returns

A GList of all the actions or `NULL`. Do not modify or free it or its contents.

[element-type GUPnP.ServiceActionInfo][transfer none]

### gupnp_service_introspection_get_action ()

    const GUPnPServiceActionInfo *
    gupnp_service_introspection_get_action
                                   (GUPnPServiceIntrospection *introspection,
                                    const gchar *action_name);

Returns the action by the name `action_name` in this service.

#### Parameters

introspection | A GUPnPServiceIntrospection |
action_name | The name of the action to retrieve |

#### Returns

the action or `NULL`. Do not modify or free it.

[transfer none][nullable]

### gupnp_service_introspection_list_state_variable_names ()

    const GList *
    gupnp_service_introspection_list_state_variable_names
                                   (GUPnPServiceIntrospection *introspection);

Returns a GList of names of all the state variables in this service.

#### Parameters

introspection | A GUPnPServiceIntrospection |

#### Returns

A GList of names of all the state variables or `NULL`. Do not modify or free it or its contents.

[element-type utf8][transfer none]

### gupnp_service_introspection_list_state_variables ()

    const GList *
    gupnp_service_introspection_list_state_variables
                                   (GUPnPServiceIntrospection *introspection);

Returns a GList of all the state variables (of type GUPnPServiceStateVariableInfo) in this service.

#### Parameters

introspection | A GUPnPServiceIntrospection |

#### Returns

A GList of all the state variables or `NULL`. Do not modify or free it or its contents.

[element-type GUPnP.ServiceStateVariableInfo][transfer none]

### gupnp_service_introspection_get_state_variable ()

    const GUPnPServiceStateVariableInfo *
    gupnp_service_introspection_get_state_variable
                                   (GUPnPServiceIntrospection *introspection,
                                    const gchar *variable_name);

Returns the state variable by the name `variable_name` in this service.

#### Parameters

introspection | A GUPnPServiceIntrospection |
variable_name | The name of the variable to retrieve |

#### Returns

the state variable or `NULL`. Do not modify or free it.

[transfer none][nullable]

## Types and Values

### enum GUPnPServiceActionArgDirection

Represents the direction of a service state variable.

#### Members

GUPNP_SERVICE_ACTION_ARG_DIRECTION_IN | An "in" variable, to the service. |
GUPNP_SERVICE_ACTION_ARG_DIRECTION_OUT | An "out" variable, from the service. |

### GUPnPServiceActionArgInfo

    typedef struct {
            char                          *name;
            GUPnPServiceActionArgDirection direction;
            char                          *related_state_variable;
            gboolean                       retval;
    } GUPnPServiceActionArgInfo;

This structure contains information about the argument of service action.

#### Members

char *`name`; | The name of the action argument. |
GUPnPServiceActionArgDirection `direction`; | The direction of the action argument. |
char *`related_state_variable`; | The name of the state variable associated with this argument. |
gboolean `retval`; | Whether this argument is the return value of the action. |

### GUPnPServiceActionInfo

    typedef struct {
            char  *name;
            GList *arguments; /* list of #GUPnPServiceActionArgInfo */
    } GUPnPServiceActionInfo;

This structure contains information about a service action.

#### Members

char *`name`; | The name of the action argument. |
GList *`arguments`; | A GList of all the arguments (of type GUPnPServiceActionArgInfo) of this action. | [type GList][element-type GUPnP.ServiceActionArgInfo]

### GUPnPServiceStateVariableInfo

    typedef struct {
            char    *name;
            gboolean send_events;
            gboolean is_numeric;
            GType    type;
            GValue   default_value;
            GValue   minimum;
            GValue   maximum;
            GValue   step;
            GList   *allowed_values;
    } GUPnPServiceStateVariableInfo;

This structure contains information about service state variable.

#### Members

char *`name`; | The name of the state variable. |
gboolean `send_events`; | Whether this state variable can source events. |
gboolean `is_numeric`; | Wether this state variable is a numeric type (integer and float). |
GType `type`; | The GType of this state variable. |
GValue `default_value`; | The default value of this state variable. |
GValue `minimum`; | The minimum value of this state variable. Only applies to numeric data types. |
GValue `maximum`; | The maximum value of this state variable. Only applies to numeric data types. |
GValue `step`; | The step value of this state variable. Only applies to numeric data types. |
GList *`allowed_values`; | The allowed values of this state variable. Only applies to string data types. Unlike the other fields in this structure, this field contains a list of (char *) strings rather than GValues. | [element-type utf8]

### GUPnPServiceIntrospection

    typedef struct _GUPnPServiceIntrospection GUPnPServiceIntrospection;