mirror of
https://github.com/michaelrsweet/pdfio.git
synced 2024-07-03 12:09:49 +02:00
82 lines
1.9 KiB
C
82 lines
1.9 KiB
C
//
|
||
// 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...
|
||
//
|
||
|
||
# include "pdfio.h"
|
||
|
||
|
||
//
|
||
// 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...
|
||
//
|
||
|
||
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;
|
||
|
||
|
||
//
|
||
// Functions...
|
||
//
|
||
|
||
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;
|
||
|
||
|
||
#endif // !PDFIO_PRIVATE_H
|