blob: 664a566e858cce8e6aedc13a862bae526274ba19 [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);
/**
* PopplerAttachment:
* @name: The filename. Deprecated in poppler 20.09.0. Use
* poppler_attachment_get_name() instead.
* @description: Descriptive text. Deprecated in poppler 20.09.0. Use
* poppler_attachment_get_description() instead.
* @size: The size of the file. Deprecated in poppler 20.09.0. Use
* poppler_attachment_get_size() instead.
* @mtime: The date and time when the file was last modified. Deprecated in
* poppler 20.09.0. Use poppler_attachment_get_mtime() instead.
* @ctime: The date and time when the file was created. Deprecated in poppler
* 20.09.0. Use poppler_attachment_get_ctime() instead.
* @checksum: A 16-byte checksum of the file. Deprecated in poppler 20.09.0. Use
* poppler_attachment_get_checksum() instead.
*/
struct _PopplerAttachment
{
GObject parent;
/*< public >*/
gchar *name;
gchar *description;
gsize size;
/* GTime is deprecated, but is part of our ABI here (see #715, #765). */
G_GNUC_BEGIN_IGNORE_DEPRECATIONS
GTime mtime;
GTime ctime;
G_GNUC_END_IGNORE_DEPRECATIONS
GString *checksum;
};
/* This struct was not intended to be public, but can't be moved to
* poppler-attachment.cc without breaking the API stability.
*/
/**
* PopplerAttachmentClass:
*
* The GObject class structure of #PopplerAttachment.
*/
typedef struct _PopplerAttachmentClass
{
GObjectClass parent_class;
} PopplerAttachmentClass;
POPPLER_PUBLIC
GType poppler_attachment_get_type(void) G_GNUC_CONST;
POPPLER_PUBLIC
const GString *poppler_attachment_get_checksum(PopplerAttachment *attachment);
POPPLER_PUBLIC
GDateTime *poppler_attachment_get_ctime(PopplerAttachment *attachment);
POPPLER_PUBLIC
const gchar *poppler_attachment_get_description(PopplerAttachment *attachment);
POPPLER_PUBLIC
GDateTime *poppler_attachment_get_mtime(PopplerAttachment *attachment);
POPPLER_PUBLIC
const gchar *poppler_attachment_get_name(PopplerAttachment *attachment);
POPPLER_PUBLIC
gsize poppler_attachment_get_size(PopplerAttachment *attachment);
POPPLER_PUBLIC
gboolean poppler_attachment_save(PopplerAttachment *attachment, const char *filename, GError **error);
#ifndef G_OS_WIN32
POPPLER_PUBLIC
gboolean poppler_attachment_save_to_fd(PopplerAttachment *attachment, int fd, GError **error);
#endif
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__ */