/* * Header for PPD data encoding example code. * * Copyright 2012 by Apple Inc. * * Licensed under Apache License v2.0. See the file "LICENSE" for more information. */ #ifndef _PPDX_H_ # define _PPDX_H_ /* * Include necessary headers... */ # include /* * C++ magic... */ # ifdef __cplusplus extern "C" { # endif /* __cplusplus */ /* * Maximum amount of data to encode/decode... */ # define PPDX_MAX_STATUS 1024 /* Limit on log messages in 10.6 */ # define PPDX_MAX_DATA 16777216/* 16MiB */ /* * 'ppdxReadData()' - Read encoded data from a ppd_file_t *. * * Reads chunked data in the PPD file "ppd" using the prefix "name". Returns * an allocated pointer to the data (which is nul-terminated for convenience) * along with the length of the data in the variable pointed to by "datasize", * which can be NULL to indicate the caller doesn't need the length. * * Returns NULL if no data is present in the PPD with the prefix. */ extern void *ppdxReadData(ppd_file_t *ppd, const char *name, size_t *datasize); /* * 'ppdxWriteData()' - Writes encoded data to stderr using PPD: messages. * * Writes chunked data to the PPD file using PPD: messages sent to stderr for * cupsd. "name" must be a valid PPD keyword string whose length is less than * 37 characters to allow for chunk numbering. "data" provides a pointer to the * data to be written, and "datasize" provides the length. */ extern void ppdxWriteData(const char *name, const void *data, size_t datasize); # ifdef __cplusplus } # endif /* __cplusplus */ #endif /* !_PPDX_H */