pdfio/pdfio-private.h

82 lines
1.9 KiB
C
Raw Normal View History

2021-04-10 14:00:52 +02:00
//
// Private header file for pdfio.
//
// Copyright © 2021 by Michael R Sweet.
//
// Licensed under Apache License v2.0. See the file "LICENSE" for more
// information.
//
#ifndef PDFIO_PRIVATE_H
# define PDFIO_PRIVATE_H
//
// Include necessary headers...
//
2021-04-17 03:09:43 +02:00
# include "pdfio.h"
2021-04-10 14:00:52 +02:00
//
// Visibility and other annotations...
//
# if defined(__has_extension) || defined(__GNUC__)
# define PDFIO_INTERNAL __attribute__ ((visibility("hidden")))
# define PDFIO_PRIVATE __attribute__ ((visibility("default")))
# define PDFIO_NONNULL(...) __attribute__ ((nonnull(__VA_ARGS__)))
# define PDFIO_NORETURN __attribute__ ((noreturn))
# else
# define PDFIO_INTERNAL
# define PDFIO_PRIVATE
# define PDFIO_NONNULL(...)
# define PDFIO_NORETURN
# endif // __has_extension || __GNUC__
//
// Debug macro...
//
# ifdef DEBUG
# define PDFIO_DEBUG(...) fprintf(stderr, __VA_ARGS__)
# else
# define PDFIO_DEBUG(...)
# endif // DEBUG
//
// Types and constants...
//
2021-04-17 03:09:43 +02:00
typedef struct _pdfio_value_s // Value structure
{
pdfio_valtype_t type; // Type of value
union
{
pdfio_array_t *array; // Array value
bool boolean; // Boolean value
time_t date; // Date/time value
pdfio_dict_t *dict; // Dictionary value
pdfio_obj_t *obj; // Indirect object (N G obj) value
const char *name; // Name value
float number; // Number value
const char *string; // String value
} value; // Value union
} _pdfio_value_t;
2021-04-10 14:00:52 +02:00
//
// Functions...
//
2021-04-17 03:09:43 +02:00
extern void _pdfioArrayDelete(pdfio_array_t *a) PDFIO_INTERNAL;
extern void _pdfioDictDelete(pdfio_dict_t *dict) PDFIO_INTERNAL;
extern void _pdfioFileDelete(pdfio_file_t *file) PDFIO_INTERNAL;
extern void _pdfioObjDelete(pdfio_object_t *obj) PDFIO_INTERNAL;
extern void _pdfioStreamDelete(pdfio_stream_t *obj) PDFIO_INTERNAL;
extern void _pdfioValueDelete(pdfio_value_t *v) PDFIO_INTERNAL;
2021-04-10 14:00:52 +02:00
#endif // !PDFIO_PRIVATE_H