blob: 5a8a7e0892b990d6232822af6f9588a7cf2c4238 [file] [log] [blame]
/* poppler-attachment.h: glib interface to poppler
* Copyright (C) 2004, Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifndef __POPPLER_ATTACHMENT_H__
#define __POPPLER_ATTACHMENT_H__
#include <glib.h>
#include <glib-object.h>
#include "poppler.h"
G_BEGIN_DECLS
#define POPPLER_TYPE_ATTACHMENT (poppler_attachment_get_type ())
#define POPPLER_ATTACHMENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), POPPLER_TYPE_ATTACHMENT, PopplerAttachment))
#define POPPLER_IS_ATTACHMENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), POPPLER_TYPE_ATTACHMENT))
/**
* PopplerAttachmentSaveFunc:
* @buf: (array length=count) (element-type guint8): buffer containing
* bytes to be written.
* @count: number of bytes in @buf.
* @data: (closure): user data passed to poppler_attachment_save_to_callback()
* @error: GError to set on error, or %NULL
*
* Specifies the type of the function passed to
* poppler_attachment_save_to_callback(). It is called once for each block of
* bytes that is "written" by poppler_attachment_save_to_callback(). If
* successful it should return %TRUE. If an error occurs it should set
* @error and return %FALSE, in which case poppler_attachment_save_to_callback()
* will fail with the same error.
*
* Returns: %TRUE if successful, %FALSE (with @error set) if failed.
*/
typedef gboolean (*PopplerAttachmentSaveFunc) (const gchar *buf,
gsize count,
gpointer data,
GError **error);
struct _PopplerAttachment
{
GObject parent;
gchar *name;
gchar *description;
gsize size;
GTime mtime;
GTime ctime;
GString *checksum;
};
typedef struct _PopplerAttachmentClass
{
GObjectClass parent_class;
} PopplerAttachmentClass;
POPPLER_PUBLIC
GType poppler_attachment_get_type (void) G_GNUC_CONST;
POPPLER_PUBLIC
gboolean poppler_attachment_save (PopplerAttachment *attachment,
const char *filename,
GError **error);
POPPLER_PUBLIC
gboolean poppler_attachment_save_to_callback (PopplerAttachment *attachment,
PopplerAttachmentSaveFunc save_func,
gpointer user_data,
GError **error);
G_END_DECLS
#endif /* __POPPLER_ATTACHMENT_H__ */