#include "gskmimeencodings.h"
#include "../gsksimplefilter.h"
typedef struct _GskMimeIdentityFilter GskMimeIdentityFilter;
typedef struct _GskMimeIdentityFilterClass GskMimeIdentityFilterClass;
GType gsk_mime_identity_filter_get_type(void) G_GNUC_CONST;
#define GSK_TYPE_MIME_IDENTITY_FILTER (gsk_mime_identity_filter_get_type ())
#define GSK_MIME_IDENTITY_FILTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GSK_TYPE_MIME_IDENTITY_FILTER, GskMimeIdentityFilter))
#define GSK_MIME_IDENTITY_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GSK_TYPE_MIME_IDENTITY_FILTER, GskMimeIdentityFilterClass))
#define GSK_MIME_IDENTITY_FILTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GSK_TYPE_MIME_IDENTITY_FILTER, GskMimeIdentityFilterClass))
#define GSK_IS_MIME_IDENTITY_FILTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GSK_TYPE_MIME_IDENTITY_FILTER))
#define GSK_IS_MIME_IDENTITY_FILTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GSK_TYPE_MIME_IDENTITY_FILTER))
struct _GskMimeIdentityFilterClass
{
GskSimpleFilterClass simple_filter_class;
};
struct _GskMimeIdentityFilter
{
GskSimpleFilter simple_filter;
};
static GObjectClass *parent_class = NULL;
static gboolean
gsk_mime_identity_filter_process (GskSimpleFilter *filter,
GskBuffer *dst,
GskBuffer *src,
GError **error)
{
gsk_buffer_drain (dst, src);
return TRUE;
}
static gboolean
gsk_mime_identity_filter_flush (GskSimpleFilter *filter,
GskBuffer *dst,
GskBuffer *src,
GError **error)
{
g_return_val_if_fail (src->size == 0, FALSE);
return TRUE;
}
/* --- functions --- */
static void
gsk_mime_identity_filter_init (GskMimeIdentityFilter *mime_identity_filter)
{
g_assert (gsk_io_get_is_writable (mime_identity_filter));
g_assert (gsk_io_get_is_readable (mime_identity_filter));
}
static void
gsk_mime_identity_filter_class_init (GskMimeIdentityFilterClass *class)
{
GskSimpleFilterClass *simple_filter_class = GSK_SIMPLE_FILTER_CLASS (class);
parent_class = g_type_class_peek_parent (class);
simple_filter_class->process = gsk_mime_identity_filter_process;
simple_filter_class->flush = gsk_mime_identity_filter_flush;
}
GType gsk_mime_identity_filter_get_type()
{
static GType mime_identity_filter_type = 0;
if (!mime_identity_filter_type)
{
static const GTypeInfo mime_identity_filter_info =
{
sizeof(GskMimeIdentityFilterClass),
(GBaseInitFunc) NULL,
(GBaseFinalizeFunc) NULL,
(GClassInitFunc) gsk_mime_identity_filter_class_init,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof (GskMimeIdentityFilter),
0, /* n_preallocs */
(GInstanceInitFunc) gsk_mime_identity_filter_init,
NULL /* value_table */
};
mime_identity_filter_type = g_type_register_static (GSK_TYPE_SIMPLE_FILTER,
"GskMimeIdentityFilter",
&mime_identity_filter_info, 0);
}
return mime_identity_filter_type;
}
/**
* gsk_mime_identity_filter_new:
*
* A filter which gives the exact same output as it receives input.
*
* returns: the newly allocated identity filter.
*/
GskStream *
gsk_mime_identity_filter_new (void)
{
return g_object_new (GSK_TYPE_MIME_IDENTITY_FILTER, NULL);
}
syntax highlighted by Code2HTML, v. 0.9.1