RygelWritableContainer

RygelWritableContainer — This interface should be implemented by 'writable' containers - ones that allow adding (via upload), removal and editing of items directly under them. Currently, only addition and removal are 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;
struct              RygelWritableContainerIface;

Object Hierarchy

  GInterface
   +----RygelWritableContainer

Prerequisites

RygelWritableContainer requires RygelMediaContainer.

Properties

  "create-classes"           GeeArrayList*         : Read / Write

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 its own URI but also that of its 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 can contain an item with the given upnp class, meaning that rygel_writable_container_add_item() should succeed.

self :

the RygelWritableContainer instance

upnp_class :

The upnp class of an item to check. [in]

Returns :

true if it can, false, if not.

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.

The caller should not first create the file(s) pointed to by the item's URI(s). That is handled by the container class.

This method corresponds to the UPnP ContentDirectory's CreateObject action. Currently there is no way to add child containers.

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_finish ()

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

Add a new item directly under this container.

The caller should not first create the file(s) pointed to by the item's URI(s). That is handled by the container class.

This method corresponds to the UPnP ContentDirectory's CreateObject action. Currently there is no way to add child containers.

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_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.

The caller should not first remove the file(s) pointed to by the item's URI(s). That is handled by the container class.

This method corresponds to the UPnP ContentDirectory's DestroyObject action.

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_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.

The caller should not first remove the file(s) pointed to by the item's URI(s). That is handled by the container class.

This method corresponds to the UPnP ContentDirectory's DestroyObject action.

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_get_create_classes ()

GeeArrayList *      rygel_writable_container_get_create_classes
                                                        (RygelWritableContainer *self);

Get and return the current value of the "create-classes" property.

self :

the RygelWritableContainer instance to query

Returns :

the value of the "create-classes" property

rygel_writable_container_set_create_classes ()

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

Set the value of the "create-classes" property to value.

self :

the RygelWritableContainer instance to modify

value :

the new value of the "create-classes" property

RygelWritableContainer

typedef struct _RygelWritableContainer RygelWritableContainer;

This interface should be implemented by 'writable' containers - ones that allow adding (via upload), removal and editing of items directly under them. Currently, only addition and removal are 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 its own URI but also that of its child items, though the latter is implied in the former if you use GIO for monitoring.


struct RygelWritableContainerIface

struct RygelWritableContainerIface {
	GTypeInterface parent_iface;
	void (*add_item) (RygelWritableContainer* self, RygelMediaItem* item, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*add_item_finish) (RygelWritableContainer* self, GAsyncResult* _res_, GError** error);
	void (*remove_item) (RygelWritableContainer* self, const gchar* id, GCancellable* cancellable, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*remove_item_finish) (RygelWritableContainer* self, GAsyncResult* _res_, GError** error);
	GeeArrayList* (*get_create_classes) (RygelWritableContainer* self);
	void (*set_create_classes) (RygelWritableContainer* self, GeeArrayList* value);
};

Interface for creating RygelWritableContainer implementations.

GTypeInterface parent_iface;

the parent interface structure

add_item ()

virtual method called by rygel_writable_container_add_item()

add_item_finish ()

asynchronous finish function for add_item, called by rygel_writable_container_add_item()

remove_item ()

virtual method called by rygel_writable_container_remove_item()

remove_item_finish ()

asynchronous finish function for remove_item, called by rygel_writable_container_remove_item()

get_create_classes ()

getter method for the abstract property "create-classes"

set_create_classes ()

setter method for the abstract property "create-classes"

Property Details

The "create-classes" property

  "create-classes"           GeeArrayList*         : Read / Write

The list of upnp classes that can be added to this container.

See rygel_writable_container_add_item().

This corresponds to the UPnP ContentDirectory's createClass properties.