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
|