EpcContents

EpcContents — custom contents

Stability Level

Unstable, unless otherwise indicated

Synopsis


#include <libepc/publish.h>


EpcContents*        (*EpcContentsHandler)               (EpcPublisher *publisher,
                                                         const gchar *key,
                                                         gpointer user_data);
                    EpcContents;
EpcContents*        epc_contents_new                    (const gchar *type,
                                                         gpointer data,
                                                         gsize length);
EpcContents*        epc_contents_ref                    (EpcContents *contents);
void                epc_contents_unref                  (EpcContents *contents);

Description

EpcContents is a reference counted structure for storing custom contents. To publish custom content call epc_publisher_add_handler to register a EpcContentsHandler like this:

Example 6. A custom contents handler

  static EpcContents*
  timestamp_handler (EpcPublisher *publisher G_GNUC_UNUSED,
                     const gchar  *key G_GNUC_UNUSED,
                     gpointer      data)
  {
    time_t now = time (NULL);
    struct tm *tm = localtime (&now);
    const gchar *format = data;
    gsize length = 60;
    gchar *buffer;
  
    buffer = g_malloc (length);
    length = strftime (buffer, length, format, tm);
  
    return epc_content_new ("text/plain", buffer, length);
  }
 


Details

EpcContentsHandler ()

EpcContents*        (*EpcContentsHandler)               (EpcPublisher *publisher,
                                                         const gchar *key,
                                                         gpointer user_data);

This callback is used to generate custom contents published with the epc_publisher_add_handler function. The arguments passed are the same as passed to epc_publisher_add_handler. The EpcPublisher will decrease the reference count of the returned buffer after deliving it. It's valid to return NULL in situations were no contents can be generated.

publisher : the EpcPublisher
key : the unique key
user_data : user data set when the signal handler was installed
Returns : The EpcContents buffer for this publication, or NULL.

EpcContents

typedef struct _EpcContents EpcContents;

A reference counted buffer for storing contents to deliver by the EpcPublisher. Use epc_contents_new to create instances of this buffer.


epc_contents_new ()

EpcContents*        epc_contents_new                    (const gchar *type,
                                                         gpointer data,
                                                         gsize length);

Creates a new EpcContents buffer. Passing NULL for type is equivalent to passing "application/octet-stream".

type : the MIME type of this contents, or NULL
data : the contents for this buffer
length : the contents length in bytes
Returns : The newly created EpcContents buffer.

epc_contents_ref ()

EpcContents*        epc_contents_ref                    (EpcContents *contents);

Increases the reference count of contents.

contents : a EpcContents buffer
Returns : the same contents buffer.

epc_contents_unref ()

void                epc_contents_unref                  (EpcContents *contents);

Decreases the reference count of contents. When its reference count drops to 0, the buffer is released (i.e. its memory is freed).

contents : a EpcContents buffer

See Also

EpcPublisher