RygelWritableContainer 3 LIBRYGEL-SERVER Library
RygelWritableContainer Interface to be implemented by 'writable' container: ones that allow creation, removal and editing of items directly under them. Currently, only addition and removal is supported.

## Synopsis

    gboolean            rygel_writable_container_can_create (RygelWritableContainer *self,
                                                             const gchar *upnp_class);
    void                rygel_writable_container_add_item   (RygelWritableContainer *self,
                                                             RygelMediaItem *item,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback _callback_,
                                                             gpointer _user_data_);
    void                rygel_writable_container_add_item_finish
                                                            (RygelWritableContainer *self,
                                                             GAsyncResult *_res_,
                                                             GError **error);
    void                rygel_writable_container_remove_item
                                                            (RygelWritableContainer *self,
                                                             const gchar *id,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback _callback_,
                                                             gpointer _user_data_);
    void                rygel_writable_container_remove_item_finish
                                                            (RygelWritableContainer *self,
                                                             GAsyncResult *_res_,
                                                             GError **error);
    GeeArrayList *      rygel_writable_container_get_create_classes
                                                            (RygelWritableContainer *self);
    void                rygel_writable_container_set_create_classes
                                                            (RygelWritableContainer *self,
                                                             GeeArrayList *value);
                        RygelWritableContainer;

## Description

In addition to implementing this interface, a writable container must also:

1. Provide one URI that points to a writable folder on a GIO supported filesystem. 2. Monitor not only it's own URI but also that of it's child items, though the latter is implied in the former if you use GIO for monitoring.

## Details

### rygel_writable_container_can_create ()

    gboolean            rygel_writable_container_can_create (RygelWritableContainer *self,
                                                             const gchar *upnp_class);

Check if this container claims to be able to create an item with the given upnp class.

self :

  the RygelWritableContainer instance

upnp_class :

  The class of an item to check. [in]

Returns :

  true if it can, false, if not.¨

rygel_writable_container_can_create

### rygel_writable_container_add_item ()

    void                rygel_writable_container_add_item   (RygelWritableContainer *self,
                                                             RygelMediaItem *item,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback _callback_,
                                                             gpointer _user_data_);

Add a new item directly under this container.

This doesn't imply creation of file(s) pointed to by item's URI(s), that is handled for you.

See also: ``rygel_writable_container_add_item_finish()``

self :

  the RygelWritableContainer instance

item :

  The item to add to this container. [in]

cancellable :

  optional cancellable for this operation. [in][allow-none]

_callback_ :

  callback to call when the request is satisfied. [scope async]

_user_data_ :

  the data to pass to _callback_ function. [closure]

rygel_writable_container_add_item

### rygel_writable_container_add_item_finish ()

    void                rygel_writable_container_add_item_finish
                                                            (RygelWritableContainer *self,
                                                             GAsyncResult *_res_,
                                                             GError **error);

Add a new item directly under this container.

This doesn't imply creation of file(s) pointed to by item's URI(s), that is handled for you.

See also: ``rygel_writable_container_add_item()``

self :

  the RygelWritableContainer instance

_res_ :

  a GAsyncResult

error :

  location to store the error occuring, or `NULL` to ignore

Returns :

  nothing.

rygel_writable_container_add_item_finish

### rygel_writable_container_remove_item ()

    void                rygel_writable_container_remove_item
                                                            (RygelWritableContainer *self,
                                                             const gchar *id,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback _callback_,
                                                             gpointer _user_data_);

Remove an item directly under this container that has the ID id.

This doesn't imply deletion of file(s) pointed to by item's URI(s), that is handled for you.

See also: ``rygel_writable_container_remove_item_finish()``

self :

  the RygelWritableContainer instance

id :

  The ID of the item to remove from this container. [in]

cancellable :

  optional cancellable for this operation. [in][allow-none]

_callback_ :

  callback to call when the request is satisfied. [scope async]

_user_data_ :

  the data to pass to _callback_ function. [closure]

rygel_writable_container_remove_item

### rygel_writable_container_remove_item_finish ()

    void                rygel_writable_container_remove_item_finish
                                                            (RygelWritableContainer *self,
                                                             GAsyncResult *_res_,
                                                             GError **error);

Remove an item directly under this container that has the ID id.

This doesn't imply deletion of file(s) pointed to by item's URI(s), that is handled for you.

See also: ``rygel_writable_container_remove_item()``

self :

  the RygelWritableContainer instance

_res_ :

  a GAsyncResult

error :

  location to store the error occuring, or `NULL` to ignore

Returns :

  nothing.

rygel_writable_container_remove_item_finish

### rygel_writable_container_get_create_classes ()

    GeeArrayList *      rygel_writable_container_get_create_classes
                                                            (RygelWritableContainer *self);

self :

  the RygelWritableContainer instance to query

Returns :

  the value of the "create-classes" property

rygel_writable_container_get_create_classes

### rygel_writable_container_set_create_classes ()

    void                rygel_writable_container_set_create_classes
                                                            (RygelWritableContainer *self,
                                                             GeeArrayList *value);

self :

  the RygelWritableContainer instance to modify

value :

  the new value of the "create-classes" property

rygel_writable_container_set_create_classes

### RygelWritableContainer

    typedef struct _RygelWritableContainer RygelWritableContainer;

Interface to be implemented by 'writable' container: ones that allow creation, removal and editing of items directly under them. Currently, only addition and removal is supported.

In addition to implementing this interface, a writable container must also:

1. Provide one URI that points to a writable folder on a GIO supported filesystem. 2. Monitor not only it's own URI but also that of it's child items, though the latter is implied in the former if you use GIO for monitoring.

RygelWritableContainer