Bug 1653433 Part 1 - Import CUPS headers r=jwatt,froydnj,mhoye

Differential Revision: https://phabricator.services.mozilla.com/D84019
This commit is contained in:
Emily McDonough 2020-07-21 23:39:42 +00:00
Родитель 029c6ab57b
Коммит 18d8e7f92a
14 изменённых файлов: 3017 добавлений и 0 удалений

202
third_party/cups/LICENSE поставляемый Normal file
Просмотреть файл

@ -0,0 +1,202 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

80
third_party/cups/include/cups/array.h поставляемый Normal file
Просмотреть файл

@ -0,0 +1,80 @@
/*
* Sorted array definitions for CUPS.
*
* Copyright 2007-2010 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
#ifndef _CUPS_ARRAY_H_
# define _CUPS_ARRAY_H_
/*
* Include necessary headers...
*/
# include "versioning.h"
# include <stdlib.h>
/*
* C++ magic...
*/
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* Types and structures...
*/
typedef struct _cups_array_s cups_array_t;
/**** CUPS array type ****/
typedef int (*cups_array_func_t)(void *first, void *second, void *data);
/**** Array comparison function ****/
typedef int (*cups_ahash_func_t)(void *element, void *data);
/**** Array hash function ****/
typedef void *(*cups_acopy_func_t)(void *element, void *data);
/**** Array element copy function ****/
typedef void (*cups_afree_func_t)(void *element, void *data);
/**** Array element free function ****/
/*
* Functions...
*/
extern int cupsArrayAdd(cups_array_t *a, void *e) _CUPS_API_1_2;
extern void cupsArrayClear(cups_array_t *a) _CUPS_API_1_2;
extern int cupsArrayCount(cups_array_t *a) _CUPS_API_1_2;
extern void *cupsArrayCurrent(cups_array_t *a) _CUPS_API_1_2;
extern void cupsArrayDelete(cups_array_t *a) _CUPS_API_1_2;
extern cups_array_t *cupsArrayDup(cups_array_t *a) _CUPS_API_1_2;
extern void *cupsArrayFind(cups_array_t *a, void *e) _CUPS_API_1_2;
extern void *cupsArrayFirst(cups_array_t *a) _CUPS_API_1_2;
extern int cupsArrayGetIndex(cups_array_t *a) _CUPS_API_1_3;
extern int cupsArrayGetInsert(cups_array_t *a) _CUPS_API_1_3;
extern void *cupsArrayIndex(cups_array_t *a, int n) _CUPS_API_1_2;
extern int cupsArrayInsert(cups_array_t *a, void *e) _CUPS_API_1_2;
extern void *cupsArrayLast(cups_array_t *a) _CUPS_API_1_2;
extern cups_array_t *cupsArrayNew(cups_array_func_t f, void *d) _CUPS_API_1_2;
extern cups_array_t *cupsArrayNew2(cups_array_func_t f, void *d,
cups_ahash_func_t h, int hsize) _CUPS_API_1_3;
extern cups_array_t *cupsArrayNew3(cups_array_func_t f, void *d,
cups_ahash_func_t h, int hsize,
cups_acopy_func_t cf,
cups_afree_func_t ff) _CUPS_API_1_5;
extern void *cupsArrayNext(cups_array_t *a) _CUPS_API_1_2;
extern void *cupsArrayPrev(cups_array_t *a) _CUPS_API_1_2;
extern int cupsArrayRemove(cups_array_t *a, void *e) _CUPS_API_1_2;
extern void *cupsArrayRestore(cups_array_t *a) _CUPS_API_1_2;
extern int cupsArraySave(cups_array_t *a) _CUPS_API_1_2;
extern void *cupsArrayUserData(cups_array_t *a) _CUPS_API_1_2;
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_CUPS_ARRAY_H_ */

611
third_party/cups/include/cups/cups.h поставляемый Normal file
Просмотреть файл

@ -0,0 +1,611 @@
/*
* API definitions for CUPS.
*
* Copyright © 2007-2019 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
#ifndef _CUPS_CUPS_H_
# define _CUPS_CUPS_H_
/*
* Include necessary headers...
*/
# include <sys/types.h>
# if defined(_WIN32) && !defined(__CUPS_SSIZE_T_DEFINED)
# define __CUPS_SSIZE_T_DEFINED
# include <stddef.h>
/* Windows does not support the ssize_t type, so map it to long... */
typedef long ssize_t; /* @private@ */
# endif /* _WIN32 && !__CUPS_SSIZE_T_DEFINED */
# include "file.h"
# include "ipp.h"
# include "language.h"
# include "pwg.h"
/*
* C++ magic...
*/
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* Constants...
*/
# define CUPS_VERSION 2.0303
# define CUPS_VERSION_MAJOR 2
# define CUPS_VERSION_MINOR 3
# define CUPS_VERSION_PATCH 3
# define CUPS_BC_FD 3
/* Back-channel file descriptor for
* select/poll */
# define CUPS_DATE_ANY (time_t)-1
# define CUPS_EXCLUDE_NONE (const char *)0
# define CUPS_FORMAT_AUTO "application/octet-stream"
# define CUPS_FORMAT_COMMAND "application/vnd.cups-command"
# define CUPS_FORMAT_JPEG "image/jpeg"
# define CUPS_FORMAT_PDF "application/pdf"
# define CUPS_FORMAT_POSTSCRIPT "application/postscript"
# define CUPS_FORMAT_RAW "application/vnd.cups-raw"
# define CUPS_FORMAT_TEXT "text/plain"
# define CUPS_HTTP_DEFAULT (http_t *)0
# define CUPS_INCLUDE_ALL (const char *)0
# define CUPS_JOBID_ALL -1
# define CUPS_JOBID_CURRENT 0
# define CUPS_LENGTH_VARIABLE (ssize_t)0
# define CUPS_TIMEOUT_DEFAULT 0
# define CUPS_WHICHJOBS_ALL -1
# define CUPS_WHICHJOBS_ACTIVE 0
# define CUPS_WHICHJOBS_COMPLETED 1
/* Flags for cupsConnectDest and cupsEnumDests */
# define CUPS_DEST_FLAGS_NONE 0x00
/* No flags are set */
# define CUPS_DEST_FLAGS_UNCONNECTED 0x01
/* There is no connection */
# define CUPS_DEST_FLAGS_MORE 0x02
/* There are more destinations */
# define CUPS_DEST_FLAGS_REMOVED 0x04
/* The destination has gone away */
# define CUPS_DEST_FLAGS_ERROR 0x08
/* An error occurred */
# define CUPS_DEST_FLAGS_RESOLVING 0x10
/* The destination address is being
* resolved */
# define CUPS_DEST_FLAGS_CONNECTING 0x20
/* A connection is being established */
# define CUPS_DEST_FLAGS_CANCELED 0x40
/* Operation was canceled */
# define CUPS_DEST_FLAGS_DEVICE 0x80
/* For @link cupsConnectDest@: Connect to device */
/* Flags for cupsGetDestMediaByName/Size */
# define CUPS_MEDIA_FLAGS_DEFAULT 0x00
/* Find the closest size supported by
* the printer */
# define CUPS_MEDIA_FLAGS_BORDERLESS 0x01
/* Find a borderless size */
# define CUPS_MEDIA_FLAGS_DUPLEX 0x02
/* Find a size compatible with 2-sided
* printing */
# define CUPS_MEDIA_FLAGS_EXACT 0x04
/* Find an exact match for the size */
# define CUPS_MEDIA_FLAGS_READY 0x08
/* If the printer supports media
* sensing, find the size amongst the
* "ready" media. */
/* Options and values */
# define CUPS_COPIES "copies"
# define CUPS_COPIES_SUPPORTED "copies-supported"
# define CUPS_FINISHINGS "finishings"
# define CUPS_FINISHINGS_SUPPORTED "finishings-supported"
# define CUPS_FINISHINGS_BIND "7"
# define CUPS_FINISHINGS_COVER "6"
# define CUPS_FINISHINGS_FOLD "10"
# define CUPS_FINISHINGS_NONE "3"
# define CUPS_FINISHINGS_PUNCH "5"
# define CUPS_FINISHINGS_STAPLE "4"
# define CUPS_FINISHINGS_TRIM "11"
# define CUPS_MEDIA "media"
# define CUPS_MEDIA_READY "media-ready"
# define CUPS_MEDIA_SUPPORTED "media-supported"
# define CUPS_MEDIA_3X5 "na_index-3x5_3x5in"
# define CUPS_MEDIA_4X6 "na_index-4x6_4x6in"
# define CUPS_MEDIA_5X7 "na_5x7_5x7in"
# define CUPS_MEDIA_8X10 "na_govt-letter_8x10in"
# define CUPS_MEDIA_A3 "iso_a3_297x420mm"
# define CUPS_MEDIA_A4 "iso_a4_210x297mm"
# define CUPS_MEDIA_A5 "iso_a5_148x210mm"
# define CUPS_MEDIA_A6 "iso_a6_105x148mm"
# define CUPS_MEDIA_ENV10 "na_number-10_4.125x9.5in"
# define CUPS_MEDIA_ENVDL "iso_dl_110x220mm"
# define CUPS_MEDIA_LEGAL "na_legal_8.5x14in"
# define CUPS_MEDIA_LETTER "na_letter_8.5x11in"
# define CUPS_MEDIA_PHOTO_L "oe_photo-l_3.5x5in"
# define CUPS_MEDIA_SUPERBA3 "na_super-b_13x19in"
# define CUPS_MEDIA_TABLOID "na_ledger_11x17in"
# define CUPS_MEDIA_SOURCE "media-source"
# define CUPS_MEDIA_SOURCE_SUPPORTED "media-source-supported"
# define CUPS_MEDIA_SOURCE_AUTO "auto"
# define CUPS_MEDIA_SOURCE_MANUAL "manual"
# define CUPS_MEDIA_TYPE "media-type"
# define CUPS_MEDIA_TYPE_SUPPORTED "media-type-supported"
# define CUPS_MEDIA_TYPE_AUTO "auto"
# define CUPS_MEDIA_TYPE_ENVELOPE "envelope"
# define CUPS_MEDIA_TYPE_LABELS "labels"
# define CUPS_MEDIA_TYPE_LETTERHEAD "stationery-letterhead"
# define CUPS_MEDIA_TYPE_PHOTO "photographic"
# define CUPS_MEDIA_TYPE_PHOTO_GLOSSY "photographic-glossy"
# define CUPS_MEDIA_TYPE_PHOTO_MATTE "photographic-matte"
# define CUPS_MEDIA_TYPE_PLAIN "stationery"
# define CUPS_MEDIA_TYPE_TRANSPARENCY "transparency"
# define CUPS_NUMBER_UP "number-up"
# define CUPS_NUMBER_UP_SUPPORTED "number-up-supported"
# define CUPS_ORIENTATION "orientation-requested"
# define CUPS_ORIENTATION_SUPPORTED "orientation-requested-supported"
# define CUPS_ORIENTATION_PORTRAIT "3"
# define CUPS_ORIENTATION_LANDSCAPE "4"
# define CUPS_PRINT_COLOR_MODE "print-color-mode"
# define CUPS_PRINT_COLOR_MODE_SUPPORTED "print-color-mode-supported"
# define CUPS_PRINT_COLOR_MODE_AUTO "auto"
# define CUPS_PRINT_COLOR_MODE_MONOCHROME "monochrome"
# define CUPS_PRINT_COLOR_MODE_COLOR "color"
# define CUPS_PRINT_QUALITY "print-quality"
# define CUPS_PRINT_QUALITY_SUPPORTED "print-quality-supported"
# define CUPS_PRINT_QUALITY_DRAFT "3"
# define CUPS_PRINT_QUALITY_NORMAL "4"
# define CUPS_PRINT_QUALITY_HIGH "5"
# define CUPS_SIDES "sides"
# define CUPS_SIDES_SUPPORTED "sides-supported"
# define CUPS_SIDES_ONE_SIDED "one-sided"
# define CUPS_SIDES_TWO_SIDED_PORTRAIT "two-sided-long-edge"
# define CUPS_SIDES_TWO_SIDED_LANDSCAPE "two-sided-short-edge"
/*
* Types and structures...
*/
typedef unsigned cups_ptype_t; /* Printer type/capability bits */
enum cups_ptype_e /* Printer type/capability bit
* constants */
{ /* Not a typedef'd enum so we can OR */
CUPS_PRINTER_LOCAL = 0x0000, /* Local printer or class */
CUPS_PRINTER_CLASS = 0x0001, /* Printer class */
CUPS_PRINTER_REMOTE = 0x0002, /* Remote printer or class */
CUPS_PRINTER_BW = 0x0004, /* Can do B&W printing */
CUPS_PRINTER_COLOR = 0x0008, /* Can do color printing */
CUPS_PRINTER_DUPLEX = 0x0010, /* Can do two-sided printing */
CUPS_PRINTER_STAPLE = 0x0020, /* Can staple output */
CUPS_PRINTER_COPIES = 0x0040, /* Can do copies in hardware */
CUPS_PRINTER_COLLATE = 0x0080, /* Can quickly collate copies */
CUPS_PRINTER_PUNCH = 0x0100, /* Can punch output */
CUPS_PRINTER_COVER = 0x0200, /* Can cover output */
CUPS_PRINTER_BIND = 0x0400, /* Can bind output */
CUPS_PRINTER_SORT = 0x0800, /* Can sort output */
CUPS_PRINTER_SMALL = 0x1000, /* Can print on Letter/Legal/A4-size media */
CUPS_PRINTER_MEDIUM = 0x2000, /* Can print on Tabloid/B/C/A3/A2-size media */
CUPS_PRINTER_LARGE = 0x4000, /* Can print on D/E/A1/A0-size media */
CUPS_PRINTER_VARIABLE = 0x8000, /* Can print on rolls and custom-size media */
CUPS_PRINTER_IMPLICIT = 0x10000, /* Implicit class @private@
* @since Deprecated@ */
CUPS_PRINTER_DEFAULT = 0x20000, /* Default printer on network */
CUPS_PRINTER_FAX = 0x40000, /* Fax queue */
CUPS_PRINTER_REJECTING = 0x80000, /* Printer is rejecting jobs */
CUPS_PRINTER_DELETE = 0x100000, /* Delete printer
* @deprecated@ @exclude all@ */
CUPS_PRINTER_NOT_SHARED = 0x200000, /* Printer is not shared
* @since CUPS 1.2/macOS 10.5@ */
CUPS_PRINTER_AUTHENTICATED = 0x400000,/* Printer requires authentication
* @since CUPS 1.2/macOS 10.5@ */
CUPS_PRINTER_COMMANDS = 0x800000, /* Printer supports maintenance commands
* @since CUPS 1.2/macOS 10.5@ */
CUPS_PRINTER_DISCOVERED = 0x1000000, /* Printer was discovered @since CUPS 1.2/macOS 10.5@ */
CUPS_PRINTER_SCANNER = 0x2000000, /* Scanner-only device
* @since CUPS 1.4/macOS 10.6@ @private@ */
CUPS_PRINTER_MFP = 0x4000000, /* Printer with scanning capabilities
* @since CUPS 1.4/macOS 10.6@ @private@ */
CUPS_PRINTER_3D = 0x8000000, /* Printer with 3D capabilities @exclude all@ @private@ */
CUPS_PRINTER_OPTIONS = 0x6fffc /* ~(CLASS | REMOTE | IMPLICIT |
* DEFAULT | FAX | REJECTING | DELETE |
* NOT_SHARED | AUTHENTICATED |
* COMMANDS | DISCOVERED) @private@ */
};
typedef struct cups_option_s /**** Printer Options ****/
{
char *name; /* Name of option */
char *value; /* Value of option */
} cups_option_t;
typedef struct cups_dest_s /**** Destination ****/
{
char *name, /* Printer or class name */
*instance; /* Local instance name or NULL */
int is_default; /* Is this printer the default? */
int num_options; /* Number of options */
cups_option_t *options; /* Options */
} cups_dest_t;
typedef struct _cups_dinfo_s cups_dinfo_t;
/* Destination capability and status
* information @since CUPS 1.6/macOS 10.8@ */
typedef struct cups_job_s /**** Job ****/
{
int id; /* The job ID */
char *dest; /* Printer or class name */
char *title; /* Title/job name */
char *user; /* User that submitted the job */
char *format; /* Document format */
ipp_jstate_t state; /* Job state */
int size; /* Size in kilobytes */
int priority; /* Priority (1-100) */
time_t completed_time; /* Time the job was completed */
time_t creation_time; /* Time the job was created */
time_t processing_time; /* Time the job was processed */
} cups_job_t;
typedef struct cups_size_s /**** Media Size @since CUPS 1.6/macOS 10.8@ ****/
{
char media[128]; /* Media name to use */
int width, /* Width in hundredths of millimeters */
length, /* Length in hundredths of
* millimeters */
bottom, /* Bottom margin in hundredths of
* millimeters */
left, /* Left margin in hundredths of
* millimeters */
right, /* Right margin in hundredths of
* millimeters */
top; /* Top margin in hundredths of
* millimeters */
} cups_size_t;
typedef int (*cups_client_cert_cb_t)(http_t *http, void *tls,
cups_array_t *distinguished_names,
void *user_data);
/* Client credentials callback
* @since CUPS 1.5/macOS 10.7@ */
typedef int (*cups_dest_cb_t)(void *user_data, unsigned flags,
cups_dest_t *dest);
/* Destination enumeration callback
* @since CUPS 1.6/macOS 10.8@ */
# ifdef __BLOCKS__
typedef int (^cups_dest_block_t)(unsigned flags, cups_dest_t *dest);
/* Destination enumeration block
* @since CUPS 1.6/macOS 10.8@
* @exclude all@ */
# endif /* __BLOCKS__ */
typedef const char *(*cups_password_cb_t)(const char *prompt);
/* Password callback @exclude all@ */
typedef const char *(*cups_password_cb2_t)(const char *prompt, http_t *http,
const char *method,
const char *resource,
void *user_data);
/* New password callback
* @since CUPS 1.4/macOS 10.6@ */
typedef int (*cups_server_cert_cb_t)(http_t *http, void *tls,
cups_array_t *certs, void *user_data);
/* Server credentials callback
* @since CUPS 1.5/macOS 10.7@ */
/*
* Functions...
*/
extern int cupsCancelJob(const char *name, int job_id) _CUPS_PUBLIC;
extern ipp_t *cupsDoFileRequest(http_t *http, ipp_t *request,
const char *resource,
const char *filename) _CUPS_PUBLIC;
extern ipp_t *cupsDoRequest(http_t *http, ipp_t *request,
const char *resource) _CUPS_PUBLIC;
extern http_encryption_t cupsEncryption(void);
extern void cupsFreeJobs(int num_jobs, cups_job_t *jobs) _CUPS_PUBLIC;
extern int cupsGetClasses(char ***classes) _CUPS_DEPRECATED_MSG("Use cupsEnumDests instead.");
extern const char *cupsGetDefault(void) _CUPS_PUBLIC;
extern int cupsGetJobs(cups_job_t **jobs, const char *name,
int myjobs, int whichjobs) _CUPS_PUBLIC;
extern int cupsGetPrinters(char ***printers) _CUPS_DEPRECATED_MSG("Use cupsEnumDests instead.");
extern ipp_status_t cupsLastError(void) _CUPS_PUBLIC;
extern int cupsPrintFile(const char *name, const char *filename,
const char *title, int num_options,
cups_option_t *options) _CUPS_PUBLIC;
extern int cupsPrintFiles(const char *name, int num_files,
const char **files, const char *title,
int num_options, cups_option_t *options) _CUPS_PUBLIC;
extern char *cupsTempFile(char *filename, int len) _CUPS_DEPRECATED_MSG("Use cupsTempFd or cupsTempFile2 instead.");
extern int cupsTempFd(char *filename, int len) _CUPS_PUBLIC;
extern int cupsAddDest(const char *name, const char *instance,
int num_dests, cups_dest_t **dests) _CUPS_PUBLIC;
extern void cupsFreeDests(int num_dests, cups_dest_t *dests) _CUPS_PUBLIC;
extern cups_dest_t *cupsGetDest(const char *name, const char *instance,
int num_dests, cups_dest_t *dests) _CUPS_PUBLIC;
extern int cupsGetDests(cups_dest_t **dests) _CUPS_PUBLIC;
extern void cupsSetDests(int num_dests, cups_dest_t *dests) _CUPS_PUBLIC;
extern int cupsAddOption(const char *name, const char *value,
int num_options, cups_option_t **options) _CUPS_PUBLIC;
extern void cupsEncodeOptions(ipp_t *ipp, int num_options,
cups_option_t *options) _CUPS_PUBLIC;
extern void cupsFreeOptions(int num_options,
cups_option_t *options) _CUPS_PUBLIC;
extern const char *cupsGetOption(const char *name, int num_options,
cups_option_t *options) _CUPS_PUBLIC;
extern int cupsParseOptions(const char *arg, int num_options,
cups_option_t **options) _CUPS_PUBLIC;
extern const char *cupsGetPassword(const char *prompt) _CUPS_PUBLIC;
extern const char *cupsServer(void) _CUPS_PUBLIC;
extern void cupsSetEncryption(http_encryption_t e) _CUPS_PUBLIC;
extern void cupsSetPasswordCB(cups_password_cb_t cb) _CUPS_PUBLIC;
extern void cupsSetServer(const char *server) _CUPS_PUBLIC;
extern void cupsSetUser(const char *user) _CUPS_PUBLIC;
extern const char *cupsUser(void) _CUPS_PUBLIC;
/**** New in CUPS 1.1.20 ****/
extern int cupsDoAuthentication(http_t *http, const char *method,
const char *resource)
_CUPS_API_1_1_20;
extern http_status_t cupsGetFile(http_t *http, const char *resource,
const char *filename) _CUPS_API_1_1_20;
extern http_status_t cupsGetFd(http_t *http, const char *resource, int fd) _CUPS_API_1_1_20;
extern http_status_t cupsPutFile(http_t *http, const char *resource,
const char *filename) _CUPS_API_1_1_20;
extern http_status_t cupsPutFd(http_t *http, const char *resource, int fd)
_CUPS_API_1_1_20;
/**** New in CUPS 1.1.21 ****/
extern const char *cupsGetDefault2(http_t *http) _CUPS_API_1_1_21;
extern int cupsGetDests2(http_t *http, cups_dest_t **dests)
_CUPS_API_1_1_21;
extern int cupsGetJobs2(http_t *http, cups_job_t **jobs,
const char *name, int myjobs,
int whichjobs) _CUPS_API_1_1_21;
extern int cupsPrintFile2(http_t *http, const char *name,
const char *filename,
const char *title, int num_options,
cups_option_t *options) _CUPS_API_1_1_21;
extern int cupsPrintFiles2(http_t *http, const char *name,
int num_files, const char **files,
const char *title, int num_options,
cups_option_t *options)
_CUPS_API_1_1_21;
extern int cupsSetDests2(http_t *http, int num_dests,
cups_dest_t *dests) _CUPS_API_1_1_21;
/**** New in CUPS 1.2/macOS 10.5 ****/
extern void cupsEncodeOptions2(ipp_t *ipp, int num_options,
cups_option_t *options,
ipp_tag_t group_tag) _CUPS_API_1_2;
extern const char *cupsLastErrorString(void) _CUPS_API_1_2;
extern char *cupsNotifySubject(cups_lang_t *lang, ipp_t *event)
_CUPS_API_1_2;
extern char *cupsNotifyText(cups_lang_t *lang, ipp_t *event)
_CUPS_API_1_2;
extern int cupsRemoveOption(const char *name, int num_options,
cups_option_t **options) _CUPS_API_1_2;
extern cups_file_t *cupsTempFile2(char *filename, int len) _CUPS_API_1_2;
/**** New in CUPS 1.3/macOS 10.5 ****/
extern ipp_t *cupsDoIORequest(http_t *http, ipp_t *request,
const char *resource, int infile,
int outfile) _CUPS_API_1_3;
extern int cupsRemoveDest(const char *name,
const char *instance,
int num_dests, cups_dest_t **dests)
_CUPS_API_1_3;
extern void cupsSetDefaultDest(const char *name,
const char *instance,
int num_dests,
cups_dest_t *dests) _CUPS_API_1_3;
/**** New in CUPS 1.4/macOS 10.6 ****/
extern ipp_status_t cupsCancelJob2(http_t *http, const char *name,
int job_id, int purge) _CUPS_API_1_4;
extern int cupsCreateJob(http_t *http, const char *name,
const char *title, int num_options,
cups_option_t *options) _CUPS_API_1_4;
extern ipp_status_t cupsFinishDocument(http_t *http,
const char *name) _CUPS_API_1_4;
extern cups_dest_t *cupsGetNamedDest(http_t *http, const char *name,
const char *instance) _CUPS_API_1_4;
extern const char *cupsGetPassword2(const char *prompt, http_t *http,
const char *method,
const char *resource) _CUPS_API_1_4;
extern ipp_t *cupsGetResponse(http_t *http,
const char *resource) _CUPS_API_1_4;
extern ssize_t cupsReadResponseData(http_t *http, char *buffer,
size_t length) _CUPS_API_1_4;
extern http_status_t cupsSendRequest(http_t *http, ipp_t *request,
const char *resource,
size_t length) _CUPS_API_1_4;
extern void cupsSetPasswordCB2(cups_password_cb2_t cb,
void *user_data) _CUPS_API_1_4;
extern http_status_t cupsStartDocument(http_t *http, const char *name,
int job_id, const char *docname,
const char *format,
int last_document) _CUPS_API_1_4;
extern http_status_t cupsWriteRequestData(http_t *http, const char *buffer,
size_t length) _CUPS_API_1_4;
/**** New in CUPS 1.5/macOS 10.7 ****/
extern void cupsSetClientCertCB(cups_client_cert_cb_t cb,
void *user_data) _CUPS_API_1_5;
extern int cupsSetCredentials(cups_array_t *certs) _CUPS_API_1_5;
extern void cupsSetServerCertCB(cups_server_cert_cb_t cb,
void *user_data) _CUPS_API_1_5;
/**** New in CUPS 1.6/macOS 10.8 ****/
extern ipp_status_t cupsCancelDestJob(http_t *http, cups_dest_t *dest,
int job_id) _CUPS_API_1_6;
extern int cupsCheckDestSupported(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info,
const char *option,
const char *value) _CUPS_API_1_6;
extern ipp_status_t cupsCloseDestJob(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info, int job_id)
_CUPS_API_1_6;
extern http_t *cupsConnectDest(cups_dest_t *dest, unsigned flags,
int msec, int *cancel,
char *resource, size_t resourcesize,
cups_dest_cb_t cb, void *user_data)
_CUPS_API_1_6;
# ifdef __BLOCKS__
extern http_t *cupsConnectDestBlock(cups_dest_t *dest,
unsigned flags, int msec,
int *cancel, char *resource,
size_t resourcesize,
cups_dest_block_t block)
_CUPS_API_1_6;
# endif /* __BLOCKS__ */
extern int cupsCopyDest(cups_dest_t *dest, int num_dests,
cups_dest_t **dests) _CUPS_API_1_6;
extern cups_dinfo_t *cupsCopyDestInfo(http_t *http, cups_dest_t *dest)
_CUPS_API_1_6;
extern int cupsCopyDestConflicts(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info,
int num_options,
cups_option_t *options,
const char *new_option,
const char *new_value,
int *num_conflicts,
cups_option_t **conflicts,
int *num_resolved,
cups_option_t **resolved)
_CUPS_API_1_6;
extern ipp_status_t cupsCreateDestJob(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info, int *job_id,
const char *title, int num_options,
cups_option_t *options) _CUPS_API_1_6;
extern int cupsEnumDests(unsigned flags, int msec, int *cancel,
cups_ptype_t type, cups_ptype_t mask,
cups_dest_cb_t cb, void *user_data)
_CUPS_API_1_6;
# ifdef __BLOCKS__
extern int cupsEnumDestsBlock(unsigned flags, int msec,
int *cancel, cups_ptype_t type,
cups_ptype_t mask,
cups_dest_block_t block)
_CUPS_API_1_6;
# endif /* __BLOCKS__ */
extern ipp_status_t cupsFinishDestDocument(http_t *http,
cups_dest_t *dest,
cups_dinfo_t *info)
_CUPS_API_1_6;
extern void cupsFreeDestInfo(cups_dinfo_t *dinfo) _CUPS_API_1_6;
extern int cupsGetDestMediaByName(http_t *http, cups_dest_t *dest,
cups_dinfo_t *dinfo,
const char *media,
unsigned flags,
cups_size_t *size) _CUPS_API_1_6;
extern int cupsGetDestMediaBySize(http_t *http, cups_dest_t *dest,
cups_dinfo_t *dinfo,
int width, int length,
unsigned flags,
cups_size_t *size) _CUPS_API_1_6;
extern const char *cupsLocalizeDestOption(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info,
const char *option)
_CUPS_API_1_6;
extern const char *cupsLocalizeDestValue(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info,
const char *option,
const char *value)
_CUPS_API_1_6;
extern http_status_t cupsStartDestDocument(http_t *http, cups_dest_t *dest,
cups_dinfo_t *info, int job_id,
const char *docname,
const char *format,
int num_options,
cups_option_t *options,
int last_document) _CUPS_API_1_6;
/* New in CUPS 1.7 */
extern ipp_attribute_t *cupsFindDestDefault(http_t *http, cups_dest_t *dest,
cups_dinfo_t *dinfo,
const char *option) _CUPS_API_1_7;
extern ipp_attribute_t *cupsFindDestReady(http_t *http, cups_dest_t *dest,
cups_dinfo_t *dinfo,
const char *option) _CUPS_API_1_7;
extern ipp_attribute_t *cupsFindDestSupported(http_t *http, cups_dest_t *dest,
cups_dinfo_t *dinfo,
const char *option)
_CUPS_API_1_7;
extern int cupsGetDestMediaByIndex(http_t *http, cups_dest_t *dest,
cups_dinfo_t *dinfo, int n,
unsigned flags,
cups_size_t *size)
_CUPS_API_1_7;
extern int cupsGetDestMediaCount(http_t *http, cups_dest_t *dest,
cups_dinfo_t *dinfo,
unsigned flags) _CUPS_API_1_7;
extern int cupsGetDestMediaDefault(http_t *http, cups_dest_t *dest,
cups_dinfo_t *dinfo,
unsigned flags,
cups_size_t *size)
_CUPS_API_1_7;
extern void cupsSetUserAgent(const char *user_agent) _CUPS_API_1_7;
extern const char *cupsUserAgent(void) _CUPS_API_1_7;
/* New in CUPS 2.0/macOS 10.10 */
extern cups_dest_t *cupsGetDestWithURI(const char *name, const char *uri) _CUPS_API_2_0;
extern const char *cupsLocalizeDestMedia(http_t *http, cups_dest_t *dest, cups_dinfo_t *info, unsigned flags, cups_size_t *size) _CUPS_API_2_0;
extern int cupsMakeServerCredentials(const char *path, const char *common_name, int num_alt_names, const char **alt_names, time_t expiration_date) _CUPS_API_2_0;
extern int cupsSetServerCredentials(const char *path, const char *common_name, int auto_create) _CUPS_API_2_0;
/* New in CUPS 2.2/macOS 10.12 */
extern ssize_t cupsHashData(const char *algorithm, const void *data, size_t datalen, unsigned char *hash, size_t hashsize) _CUPS_API_2_2;
/* New in CUPS 2.2.4 */
extern int cupsAddIntegerOption(const char *name, int value, int num_options, cups_option_t **options) _CUPS_API_2_2_4;
extern int cupsGetIntegerOption(const char *name, int num_options, cups_option_t *options) _CUPS_API_2_2_4;
/* New in CUPS 2.2.7 */
extern const char *cupsHashString(const unsigned char *hash, size_t hashsize, char *buffer, size_t bufsize) _CUPS_API_2_2_7;
/* New in CUPS 2.3 */
extern int cupsAddDestMediaOptions(http_t *http, cups_dest_t *dest, cups_dinfo_t *dinfo, unsigned flags, cups_size_t *size, int num_options, cups_option_t **options) _CUPS_API_2_3;
extern ipp_attribute_t *cupsEncodeOption(ipp_t *ipp, ipp_tag_t group_tag, const char *name, const char *value) _CUPS_API_2_3;
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_CUPS_CUPS_H_ */

94
third_party/cups/include/cups/file.h поставляемый Normal file
Просмотреть файл

@ -0,0 +1,94 @@
/*
* Public file definitions for CUPS.
*
* Since stdio files max out at 256 files on many systems, we have to
* write similar functions without this limit. At the same time, using
* our own file functions allows us to provide transparent support of
* different line endings, gzip'd print files, PPD files, etc.
*
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
#ifndef _CUPS_FILE_H_
# define _CUPS_FILE_H_
/*
* Include necessary headers...
*/
# include "versioning.h"
# include <stddef.h>
# include <sys/types.h>
# if defined(_WIN32) && !defined(__CUPS_SSIZE_T_DEFINED)
# define __CUPS_SSIZE_T_DEFINED
/* Windows does not support the ssize_t type, so map it to off_t... */
typedef off_t ssize_t; /* @private@ */
# endif /* _WIN32 && !__CUPS_SSIZE_T_DEFINED */
/*
* C++ magic...
*/
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* CUPS file definitions...
*/
# define CUPS_FILE_NONE 0 /* No compression */
# define CUPS_FILE_GZIP 1 /* GZIP compression */
/*
* Types and structures...
*/
typedef struct _cups_file_s cups_file_t;/**** CUPS file type ****/
/*
* Prototypes...
*/
extern int cupsFileClose(cups_file_t *fp) _CUPS_API_1_2;
extern int cupsFileCompression(cups_file_t *fp) _CUPS_API_1_2;
extern int cupsFileEOF(cups_file_t *fp) _CUPS_API_1_2;
extern const char *cupsFileFind(const char *filename, const char *path, int executable, char *buffer, int bufsize) _CUPS_API_1_2;
extern int cupsFileFlush(cups_file_t *fp) _CUPS_API_1_2;
extern int cupsFileGetChar(cups_file_t *fp) _CUPS_API_1_2;
extern char *cupsFileGetConf(cups_file_t *fp, char *buf, size_t buflen, char **value, int *linenum) _CUPS_API_1_2;
extern size_t cupsFileGetLine(cups_file_t *fp, char *buf, size_t buflen) _CUPS_API_1_2;
extern char *cupsFileGets(cups_file_t *fp, char *buf, size_t buflen) _CUPS_API_1_2;
extern int cupsFileLock(cups_file_t *fp, int block) _CUPS_API_1_2;
extern int cupsFileNumber(cups_file_t *fp) _CUPS_API_1_2;
extern cups_file_t *cupsFileOpen(const char *filename, const char *mode) _CUPS_API_1_2;
extern cups_file_t *cupsFileOpenFd(int fd, const char *mode) _CUPS_API_1_2;
extern int cupsFilePeekChar(cups_file_t *fp) _CUPS_API_1_2;
extern int cupsFilePrintf(cups_file_t *fp, const char *format, ...) _CUPS_FORMAT(2, 3) _CUPS_API_1_2;
extern int cupsFilePutChar(cups_file_t *fp, int c) _CUPS_API_1_2;
extern ssize_t cupsFilePutConf(cups_file_t *fp, const char *directive, const char *value) _CUPS_API_1_4;
extern int cupsFilePuts(cups_file_t *fp, const char *s) _CUPS_API_1_2;
extern ssize_t cupsFileRead(cups_file_t *fp, char *buf, size_t bytes) _CUPS_API_1_2;
extern off_t cupsFileRewind(cups_file_t *fp) _CUPS_API_1_2;
extern off_t cupsFileSeek(cups_file_t *fp, off_t pos) _CUPS_API_1_2;
extern cups_file_t *cupsFileStderr(void) _CUPS_API_1_2;
extern cups_file_t *cupsFileStdin(void) _CUPS_API_1_2;
extern cups_file_t *cupsFileStdout(void) _CUPS_API_1_2;
extern off_t cupsFileTell(cups_file_t *fp) _CUPS_API_1_2;
extern int cupsFileUnlock(cups_file_t *fp) _CUPS_API_1_2;
extern ssize_t cupsFileWrite(cups_file_t *fp, const char *buf, size_t bytes) _CUPS_API_1_2;
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_CUPS_FILE_H_ */

593
third_party/cups/include/cups/http.h поставляемый Normal file
Просмотреть файл

@ -0,0 +1,593 @@
/*
* Hyper-Text Transport Protocol definitions for CUPS.
*
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1997-2007 by Easy Software Products, all rights reserved.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
#ifndef _CUPS_HTTP_H_
# define _CUPS_HTTP_H_
/*
* Include necessary headers...
*/
# include "versioning.h"
# include "array.h"
# include <string.h>
# include <time.h>
# include <sys/types.h>
# ifdef _WIN32
# ifndef __CUPS_SSIZE_T_DEFINED
# define __CUPS_SSIZE_T_DEFINED
/* Windows does not support the ssize_t type, so map it to off_t... */
typedef off_t ssize_t; /* @private@ */
# endif /* !__CUPS_SSIZE_T_DEFINED */
# include <winsock2.h>
# include <ws2tcpip.h>
# else
# include <unistd.h>
# include <sys/time.h>
# include <sys/socket.h>
# include <netdb.h>
# include <netinet/in.h>
# include <arpa/inet.h>
# include <netinet/in_systm.h>
# include <netinet/ip.h>
# if !defined(__APPLE__) || !defined(TCP_NODELAY)
# include <netinet/tcp.h>
# endif /* !__APPLE__ || !TCP_NODELAY */
# if defined(AF_UNIX) && !defined(AF_LOCAL)
# define AF_LOCAL AF_UNIX /* Older UNIX's have old names... */
# endif /* AF_UNIX && !AF_LOCAL */
# ifdef AF_LOCAL
# include <sys/un.h>
# endif /* AF_LOCAL */
# if defined(LOCAL_PEERCRED) && !defined(SO_PEERCRED)
# define SO_PEERCRED LOCAL_PEERCRED
# endif /* LOCAL_PEERCRED && !SO_PEERCRED */
# endif /* _WIN32 */
/*
* C++ magic...
*/
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* Oh, the wonderful world of IPv6 compatibility. Apparently some
* implementations expose the (more logical) 32-bit address parts
* to everyone, while others only expose it to kernel code... To
* make supporting IPv6 even easier, each vendor chose different
* core structure and union names, so the same defines or code
* can't be used on all platforms.
*
* The following will likely need tweaking on new platforms that
* support IPv6 - the "s6_addr32" define maps to the 32-bit integer
* array in the in6_addr union, which is named differently on various
* platforms.
*/
#if defined(AF_INET6) && !defined(s6_addr32)
# if defined(__sun)
# define s6_addr32 _S6_un._S6_u32
# elif defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)|| defined(__DragonFly__)
# define s6_addr32 __u6_addr.__u6_addr32
# elif defined(_WIN32)
/*
* Windows only defines byte and 16-bit word members of the union and
* requires special casing of all raw address code...
*/
# define s6_addr32 error_need_win32_specific_code
# endif /* __sun */
#endif /* AF_INET6 && !s6_addr32 */
/*
* Limits...
*/
# define HTTP_MAX_URI 1024 /* Max length of URI string */
# define HTTP_MAX_HOST 256 /* Max length of hostname string */
# define HTTP_MAX_BUFFER 2048 /* Max length of data buffer */
# define HTTP_MAX_VALUE 256 /* Max header field value length */
/*
* Types and structures...
*/
typedef enum http_auth_e /**** HTTP authentication types @exclude all@ ****/
{
HTTP_AUTH_NONE, /* No authentication in use */
HTTP_AUTH_BASIC, /* Basic authentication in use */
HTTP_AUTH_MD5, /* Digest authentication in use */
HTTP_AUTH_MD5_SESS, /* MD5-session authentication in use */
HTTP_AUTH_MD5_INT, /* Digest authentication in use for body */
HTTP_AUTH_MD5_SESS_INT, /* MD5-session authentication in use for body */
HTTP_AUTH_NEGOTIATE /* GSSAPI authentication in use @since CUPS 1.3/macOS 10.5@ */
} http_auth_t;
typedef enum http_encoding_e /**** HTTP transfer encoding values ****/
{
HTTP_ENCODING_LENGTH, /* Data is sent with Content-Length */
HTTP_ENCODING_CHUNKED, /* Data is chunked */
HTTP_ENCODING_FIELDS /* Sending HTTP fields */
# ifndef _CUPS_NO_DEPRECATED
# define HTTP_ENCODE_LENGTH HTTP_ENCODING_LENGTH
# define HTTP_ENCODE_CHUNKED HTTP_ENCODING_CHUNKED
# define HTTP_ENCODE_FIELDS HTTP_ENCODING_FIELDS
# endif /* !_CUPS_NO_DEPRECATED */
} http_encoding_t;
typedef enum http_encryption_e /**** HTTP encryption values ****/
{
HTTP_ENCRYPTION_IF_REQUESTED, /* Encrypt if requested (TLS upgrade) */
HTTP_ENCRYPTION_NEVER, /* Never encrypt */
HTTP_ENCRYPTION_REQUIRED, /* Encryption is required (TLS upgrade) */
HTTP_ENCRYPTION_ALWAYS /* Always encrypt (SSL) */
# ifndef _CUPS_NO_DEPRECATED
# define HTTP_ENCRYPT_IF_REQUESTED HTTP_ENCRYPTION_IF_REQUESTED
# define HTTP_ENCRYPT_NEVER HTTP_ENCRYPTION_NEVER
# define HTTP_ENCRYPT_REQUIRED HTTP_ENCRYPTION_REQUIRED
# define HTTP_ENCRYPT_ALWAYS HTTP_ENCRYPTION_ALWAYS
# endif /* !_CUPS_NO_DEPRECATED */
} http_encryption_t;
typedef enum http_field_e /**** HTTP field names ****/
{
HTTP_FIELD_UNKNOWN = -1, /* Unknown field */
HTTP_FIELD_ACCEPT_LANGUAGE, /* Accept-Language field */
HTTP_FIELD_ACCEPT_RANGES, /* Accept-Ranges field */
HTTP_FIELD_AUTHORIZATION, /* Authorization field */
HTTP_FIELD_CONNECTION, /* Connection field */
HTTP_FIELD_CONTENT_ENCODING, /* Content-Encoding field */
HTTP_FIELD_CONTENT_LANGUAGE, /* Content-Language field */
HTTP_FIELD_CONTENT_LENGTH, /* Content-Length field */
HTTP_FIELD_CONTENT_LOCATION, /* Content-Location field */
HTTP_FIELD_CONTENT_MD5, /* Content-MD5 field */
HTTP_FIELD_CONTENT_RANGE, /* Content-Range field */
HTTP_FIELD_CONTENT_TYPE, /* Content-Type field */
HTTP_FIELD_CONTENT_VERSION, /* Content-Version field */
HTTP_FIELD_DATE, /* Date field */
HTTP_FIELD_HOST, /* Host field */
HTTP_FIELD_IF_MODIFIED_SINCE, /* If-Modified-Since field */
HTTP_FIELD_IF_UNMODIFIED_SINCE, /* If-Unmodified-Since field */
HTTP_FIELD_KEEP_ALIVE, /* Keep-Alive field */
HTTP_FIELD_LAST_MODIFIED, /* Last-Modified field */
HTTP_FIELD_LINK, /* Link field */
HTTP_FIELD_LOCATION, /* Location field */
HTTP_FIELD_RANGE, /* Range field */
HTTP_FIELD_REFERER, /* Referer field */
HTTP_FIELD_RETRY_AFTER, /* Retry-After field */
HTTP_FIELD_TRANSFER_ENCODING, /* Transfer-Encoding field */
HTTP_FIELD_UPGRADE, /* Upgrade field */
HTTP_FIELD_USER_AGENT, /* User-Agent field */
HTTP_FIELD_WWW_AUTHENTICATE, /* WWW-Authenticate field */
HTTP_FIELD_ACCEPT_ENCODING, /* Accepting-Encoding field @since CUPS 1.7/macOS 10.9@ */
HTTP_FIELD_ALLOW, /* Allow field @since CUPS 1.7/macOS 10.9@ */
HTTP_FIELD_SERVER, /* Server field @since CUPS 1.7/macOS 10.9@ */
HTTP_FIELD_AUTHENTICATION_INFO, /* Authentication-Info field (@since CUPS 2.2.9) */
HTTP_FIELD_MAX /* Maximum field index */
} http_field_t;
typedef enum http_keepalive_e /**** HTTP keep-alive values ****/
{
HTTP_KEEPALIVE_OFF = 0, /* No keep alive support */
HTTP_KEEPALIVE_ON /* Use keep alive */
} http_keepalive_t;
typedef enum http_state_e /**** HTTP state values; states
**** are server-oriented...
****/
{
HTTP_STATE_ERROR = -1, /* Error on socket */
HTTP_STATE_WAITING, /* Waiting for command */
HTTP_STATE_OPTIONS, /* OPTIONS command, waiting for blank line */
HTTP_STATE_GET, /* GET command, waiting for blank line */
HTTP_STATE_GET_SEND, /* GET command, sending data */
HTTP_STATE_HEAD, /* HEAD command, waiting for blank line */
HTTP_STATE_POST, /* POST command, waiting for blank line */
HTTP_STATE_POST_RECV, /* POST command, receiving data */
HTTP_STATE_POST_SEND, /* POST command, sending data */
HTTP_STATE_PUT, /* PUT command, waiting for blank line */
HTTP_STATE_PUT_RECV, /* PUT command, receiving data */
HTTP_STATE_DELETE, /* DELETE command, waiting for blank line */
HTTP_STATE_TRACE, /* TRACE command, waiting for blank line */
HTTP_STATE_CONNECT, /* CONNECT command, waiting for blank line */
HTTP_STATE_STATUS, /* Command complete, sending status */
HTTP_STATE_UNKNOWN_METHOD, /* Unknown request method, waiting for blank line @since CUPS 1.7/macOS 10.9@ */
HTTP_STATE_UNKNOWN_VERSION /* Unknown request method, waiting for blank line @since CUPS 1.7/macOS 10.9@ */
# ifndef _CUPS_NO_DEPRECATED
# define HTTP_WAITING HTTP_STATE_WAITING
# define HTTP_OPTIONS HTTP_STATE_OPTIONS
# define HTTP_GET HTTP_STATE_GET
# define HTTP_GET_SEND HTTP_STATE_GET_SEND
# define HTTP_HEAD HTTP_STATE_HEAD
# define HTTP_POST HTTP_STATE_POST
# define HTTP_POST_RECV HTTP_STATE_POST_RECV
# define HTTP_POST_SEND HTTP_STATE_POST_SEND
# define HTTP_PUT HTTP_STATE_PUT
# define HTTP_PUT_RECV HTTP_STATE_PUT_RECV
# define HTTP_DELETE HTTP_STATE_DELETE
# define HTTP_TRACE HTTP_STATE_TRACE
# define HTTP_CLOSE HTTP_STATE_CONNECT
# define HTTP_STATUS HTTP_STATE_STATUS
# endif /* !_CUPS_NO_DEPRECATED */
} http_state_t;
typedef enum http_status_e /**** HTTP status codes ****/
{
HTTP_STATUS_ERROR = -1, /* An error response from httpXxxx() */
HTTP_STATUS_NONE = 0, /* No Expect value @since CUPS 1.7/macOS 10.9@ */
HTTP_STATUS_CONTINUE = 100, /* Everything OK, keep going... */
HTTP_STATUS_SWITCHING_PROTOCOLS, /* HTTP upgrade to TLS/SSL */
HTTP_STATUS_OK = 200, /* OPTIONS/GET/HEAD/POST/TRACE command was successful */
HTTP_STATUS_CREATED, /* PUT command was successful */
HTTP_STATUS_ACCEPTED, /* DELETE command was successful */
HTTP_STATUS_NOT_AUTHORITATIVE, /* Information isn't authoritative */
HTTP_STATUS_NO_CONTENT, /* Successful command, no new data */
HTTP_STATUS_RESET_CONTENT, /* Content was reset/recreated */
HTTP_STATUS_PARTIAL_CONTENT, /* Only a partial file was received/sent */
HTTP_STATUS_MULTIPLE_CHOICES = 300, /* Multiple files match request */
HTTP_STATUS_MOVED_PERMANENTLY, /* Document has moved permanently */
HTTP_STATUS_FOUND, /* Document was found at a different URI */
HTTP_STATUS_SEE_OTHER, /* See this other link */
HTTP_STATUS_NOT_MODIFIED, /* File not modified */
HTTP_STATUS_USE_PROXY, /* Must use a proxy to access this URI */
HTTP_STATUS_TEMPORARY_REDIRECT = 307, /* Temporary redirection */
HTTP_STATUS_BAD_REQUEST = 400, /* Bad request */
HTTP_STATUS_UNAUTHORIZED, /* Unauthorized to access host */
HTTP_STATUS_PAYMENT_REQUIRED, /* Payment required */
HTTP_STATUS_FORBIDDEN, /* Forbidden to access this URI */
HTTP_STATUS_NOT_FOUND, /* URI was not found */
HTTP_STATUS_METHOD_NOT_ALLOWED, /* Method is not allowed */
HTTP_STATUS_NOT_ACCEPTABLE, /* Not Acceptable */
HTTP_STATUS_PROXY_AUTHENTICATION, /* Proxy Authentication is Required */
HTTP_STATUS_REQUEST_TIMEOUT, /* Request timed out */
HTTP_STATUS_CONFLICT, /* Request is self-conflicting */
HTTP_STATUS_GONE, /* Server has gone away */
HTTP_STATUS_LENGTH_REQUIRED, /* A content length or encoding is required */
HTTP_STATUS_PRECONDITION, /* Precondition failed */
HTTP_STATUS_REQUEST_TOO_LARGE, /* Request entity too large */
HTTP_STATUS_URI_TOO_LONG, /* URI too long */
HTTP_STATUS_UNSUPPORTED_MEDIATYPE, /* The requested media type is unsupported */
HTTP_STATUS_REQUESTED_RANGE, /* The requested range is not satisfiable */
HTTP_STATUS_EXPECTATION_FAILED, /* The expectation given in an Expect header field was not met */
HTTP_STATUS_UPGRADE_REQUIRED = 426, /* Upgrade to SSL/TLS required */
HTTP_STATUS_SERVER_ERROR = 500, /* Internal server error */
HTTP_STATUS_NOT_IMPLEMENTED, /* Feature not implemented */
HTTP_STATUS_BAD_GATEWAY, /* Bad gateway */
HTTP_STATUS_SERVICE_UNAVAILABLE, /* Service is unavailable */
HTTP_STATUS_GATEWAY_TIMEOUT, /* Gateway connection timed out */
HTTP_STATUS_NOT_SUPPORTED, /* HTTP version not supported */
HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED = 1000,
/* User canceled authorization @since CUPS 1.4@ */
HTTP_STATUS_CUPS_PKI_ERROR, /* Error negotiating a secure connection @since CUPS 1.5/macOS 10.7@ */
HTTP_STATUS_CUPS_WEBIF_DISABLED /* Web interface is disabled @private@ */
# define HTTP_STATUS_MOVED_TEMPORARILY HTTP_STATUS_FOUND /* Renamed in RFC 7231 */
# ifndef _CUPS_NO_DEPRECATED
/* Old names for this enumeration */
# define HTTP_ERROR HTTP_STATUS_ERROR
# define HTTP_CONTINUE HTTP_STATUS_CONTINUE
# define HTTP_SWITCHING_PROTOCOLS HTTP_STATUS_SWITCHING_PROTOCOLS
# define HTTP_OK HTTP_STATUS_OK
# define HTTP_CREATED HTTP_STATUS_CREATED
# define HTTP_ACCEPTED HTTP_STATUS_ACCEPTED
# define HTTP_NOT_AUTHORITATIVE HTTP_STATUS_NOT_AUTHORITATIVE
# define HTTP_NO_CONTENT HTTP_STATUS_NO_CONTENT
# define HTTP_RESET_CONTENT HTTP_STATUS_RESET_CONTENT
# define HTTP_PARTIAL_CONTENT HTTP_STATUS_PARTIAL_CONTENT
# define HTTP_MULTIPLE_CHOICES HTTP_STATUS_MULTIPLE_CHOICES
# define HTTP_MOVED_PERMANENTLY HTTP_STATUS_MOVED_PERMANENTLY
# define HTTP_MOVED_TEMPORARILY HTTP_STATUS_MOVED_TEMPORARILY
# define HTTP_SEE_OTHER HTTP_STATUS_SEE_OTHER
# define HTTP_NOT_MODIFIED HTTP_STATUS_NOT_MODIFIED
# define HTTP_USE_PROXY HTTP_STATUS_USE_PROXY
# define HTTP_BAD_REQUEST HTTP_STATUS_BAD_REQUEST
# define HTTP_UNAUTHORIZED HTTP_STATUS_UNAUTHORIZED
# define HTTP_PAYMENT_REQUIRED HTTP_STATUS_PAYMENT_REQUIRED
# define HTTP_FORBIDDEN HTTP_STATUS_FORBIDDEN
# define HTTP_NOT_FOUND HTTP_STATUS_NOT_FOUND
# define HTTP_METHOD_NOT_ALLOWED HTTP_STATUS_METHOD_NOT_ALLOWED
# define HTTP_NOT_ACCEPTABLE HTTP_STATUS_NOT_ACCEPTABLE
# define HTTP_PROXY_AUTHENTICATION HTTP_STATUS_PROXY_AUTHENTICATION
# define HTTP_REQUEST_TIMEOUT HTTP_STATUS_REQUEST_TIMEOUT
# define HTTP_CONFLICT HTTP_STATUS_CONFLICT
# define HTTP_GONE HTTP_STATUS_GONE
# define HTTP_LENGTH_REQUIRED HTTP_STATUS_LENGTH_REQUIRED
# define HTTP_PRECONDITION HTTP_STATUS_PRECONDITION
# define HTTP_REQUEST_TOO_LARGE HTTP_STATUS_REQUEST_TOO_LARGE
# define HTTP_URI_TOO_LONG HTTP_STATUS_URI_TOO_LONG
# define HTTP_UNSUPPORTED_MEDIATYPE HTTP_STATUS_UNSUPPORTED_MEDIATYPE
# define HTTP_REQUESTED_RANGE HTTP_STATUS_REQUESTED_RANGE
# define HTTP_EXPECTATION_FAILED HTTP_STATUS_EXPECTATION_FAILED
# define HTTP_UPGRADE_REQUIRED HTTP_STATUS_UPGRADE_REQUIRED
# define HTTP_SERVER_ERROR HTTP_STATUS_SERVER_ERROR
# define HTTP_NOT_IMPLEMENTED HTTP_STATUS_NOT_IMPLEMENTED
# define HTTP_BAD_GATEWAY HTTP_STATUS_BAD_GATEWAY
# define HTTP_SERVICE_UNAVAILABLE HTTP_STATUS_SERVICE_UNAVAILABLE
# define HTTP_GATEWAY_TIMEOUT HTTP_STATUS_GATEWAY_TIMEOUT
# define HTTP_NOT_SUPPORTED HTTP_STATUS_NOT_SUPPORTED
# define HTTP_AUTHORIZATION_CANCELED HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED
# define HTTP_PKI_ERROR HTTP_STATUS_CUPS_PKI_ERROR
# define HTTP_WEBIF_DISABLED HTTP_STATUS_CUPS_WEBIF_DISABLED
# endif /* !_CUPS_NO_DEPRECATED */
} http_status_t;
typedef enum http_trust_e /**** Level of trust for credentials @since CUPS 2.0/OS 10.10@ */
{
HTTP_TRUST_OK = 0, /* Credentials are OK/trusted */
HTTP_TRUST_INVALID, /* Credentials are invalid */
HTTP_TRUST_CHANGED, /* Credentials have changed */
HTTP_TRUST_EXPIRED, /* Credentials are expired */
HTTP_TRUST_RENEWED, /* Credentials have been renewed */
HTTP_TRUST_UNKNOWN, /* Credentials are unknown/new */
} http_trust_t;
typedef enum http_uri_status_e /**** URI separation status @since CUPS 1.2@ ****/
{
HTTP_URI_STATUS_OVERFLOW = -8, /* URI buffer for httpAssembleURI is too small */
HTTP_URI_STATUS_BAD_ARGUMENTS = -7, /* Bad arguments to function (error) */
HTTP_URI_STATUS_BAD_RESOURCE = -6, /* Bad resource in URI (error) */
HTTP_URI_STATUS_BAD_PORT = -5, /* Bad port number in URI (error) */
HTTP_URI_STATUS_BAD_HOSTNAME = -4, /* Bad hostname in URI (error) */
HTTP_URI_STATUS_BAD_USERNAME = -3, /* Bad username in URI (error) */
HTTP_URI_STATUS_BAD_SCHEME = -2, /* Bad scheme in URI (error) */
HTTP_URI_STATUS_BAD_URI = -1, /* Bad/empty URI (error) */
HTTP_URI_STATUS_OK = 0, /* URI decoded OK */
HTTP_URI_STATUS_MISSING_SCHEME, /* Missing scheme in URI (warning) */
HTTP_URI_STATUS_UNKNOWN_SCHEME, /* Unknown scheme in URI (warning) */
HTTP_URI_STATUS_MISSING_RESOURCE /* Missing resource in URI (warning) */
# ifndef _CUPS_NO_DEPRECATED
# define HTTP_URI_OVERFLOW HTTP_URI_STATUS_OVERFLOW
# define HTTP_URI_BAD_ARGUMENTS HTTP_URI_STATUS_BAD_ARGUMENTS
# define HTTP_URI_BAD_RESOURCE HTTP_URI_STATUS_BAD_RESOURCE
# define HTTP_URI_BAD_PORT HTTP_URI_STATUS_BAD_PORT
# define HTTP_URI_BAD_HOSTNAME HTTP_URI_STATUS_BAD_HOSTNAME
# define HTTP_URI_BAD_USERNAME HTTP_URI_STATUS_BAD_USERNAME
# define HTTP_URI_BAD_SCHEME HTTP_URI_STATUS_BAD_SCHEME
# define HTTP_URI_BAD_URI HTTP_URI_STATUS_BAD_URI
# define HTTP_URI_OK HTTP_URI_STATUS_OK
# define HTTP_URI_MISSING_SCHEME HTTP_URI_STATUS_MISSING_SCHEME
# define HTTP_URI_UNKNOWN_SCHEME HTTP_URI_STATUS_UNKNOWN_SCHEME
# define HTTP_URI_MISSING_RESOURCE HTTP_URI_STATUS_MISSING_RESOURCE
# endif /* !_CUPS_NO_DEPRECATED */
} http_uri_status_t;
typedef enum http_uri_coding_e /**** URI en/decode flags ****/
{
HTTP_URI_CODING_NONE = 0, /* Don't en/decode anything */
HTTP_URI_CODING_USERNAME = 1, /* En/decode the username portion */
HTTP_URI_CODING_HOSTNAME = 2, /* En/decode the hostname portion */
HTTP_URI_CODING_RESOURCE = 4, /* En/decode the resource portion */
HTTP_URI_CODING_MOST = 7, /* En/decode all but the query */
HTTP_URI_CODING_QUERY = 8, /* En/decode the query portion */
HTTP_URI_CODING_ALL = 15, /* En/decode everything */
HTTP_URI_CODING_RFC6874 = 16 /* Use RFC 6874 address format */
} http_uri_coding_t;
typedef enum http_version_e /**** HTTP version numbers @exclude all@ ****/
{
HTTP_VERSION_0_9 = 9, /* HTTP/0.9 */
HTTP_VERSION_1_0 = 100, /* HTTP/1.0 */
HTTP_VERSION_1_1 = 101 /* HTTP/1.1 */
# ifndef _CUPS_NO_DEPRECATED
# define HTTP_0_9 HTTP_VERSION_0_9
# define HTTP_1_0 HTTP_VERSION_1_0
# define HTTP_1_1 HTTP_VERSION_1_1
# endif /* !_CUPS_NO_DEPRECATED */
} http_version_t;
typedef union _http_addr_u /**** Socket address union, which
**** makes using IPv6 and other
**** address types easier and
**** more portable. @since CUPS 1.2/macOS 10.5@
****/
{
struct sockaddr addr; /* Base structure for family value */
struct sockaddr_in ipv4; /* IPv4 address */
#ifdef AF_INET6
struct sockaddr_in6 ipv6; /* IPv6 address */
#endif /* AF_INET6 */
#ifdef AF_LOCAL
struct sockaddr_un un; /* Domain socket file */
#endif /* AF_LOCAL */
char pad[256]; /* Padding to ensure binary compatibility */
} http_addr_t;
typedef struct http_addrlist_s /**** Socket address list, which is
**** used to enumerate all of the
**** addresses that are associated
**** with a hostname. @since CUPS 1.2/macOS 10.5@
**** @exclude all@
****/
{
struct http_addrlist_s *next; /* Pointer to next address in list */
http_addr_t addr; /* Address */
} http_addrlist_t;
typedef struct _http_s http_t; /**** HTTP connection type ****/
typedef struct http_credential_s /**** HTTP credential data @since CUPS 1.5/macOS 10.7@ @exclude all@ ****/
{
void *data; /* Pointer to credential data */
size_t datalen; /* Credential length */
} http_credential_t;
typedef int (*http_timeout_cb_t)(http_t *http, void *user_data);
/**** HTTP timeout callback @since CUPS 1.5/macOS 10.7@ ****/
/*
* Prototypes...
*/
extern void httpBlocking(http_t *http, int b) _CUPS_PUBLIC;
extern int httpCheck(http_t *http) _CUPS_PUBLIC;
extern void httpClearFields(http_t *http) _CUPS_PUBLIC;
extern void httpClose(http_t *http) _CUPS_PUBLIC;
extern http_t *httpConnect(const char *host, int port) _CUPS_DEPRECATED_1_7_MSG("Use httpConnect2 instead.");
extern http_t *httpConnectEncrypt(const char *host, int port, http_encryption_t encryption) _CUPS_DEPRECATED_1_7_MSG("Use httpConnect2 instead.");
extern int httpDelete(http_t *http, const char *uri) _CUPS_PUBLIC;
extern int httpEncryption(http_t *http, http_encryption_t e) _CUPS_PUBLIC;
extern int httpError(http_t *http) _CUPS_PUBLIC;
extern void httpFlush(http_t *http) _CUPS_PUBLIC;
extern int httpGet(http_t *http, const char *uri) _CUPS_PUBLIC;
extern char *httpGets(char *line, int length, http_t *http) _CUPS_PUBLIC;
extern const char *httpGetDateString(time_t t) _CUPS_PUBLIC;
extern time_t httpGetDateTime(const char *s) _CUPS_PUBLIC;
extern const char *httpGetField(http_t *http, http_field_t field) _CUPS_PUBLIC;
extern struct hostent *httpGetHostByName(const char *name) _CUPS_PUBLIC;
extern char *httpGetSubField(http_t *http, http_field_t field, const char *name, char *value) _CUPS_PUBLIC;
extern int httpHead(http_t *http, const char *uri) _CUPS_PUBLIC;
extern void httpInitialize(void) _CUPS_PUBLIC;
extern int httpOptions(http_t *http, const char *uri) _CUPS_PUBLIC;
extern int httpPost(http_t *http, const char *uri) _CUPS_PUBLIC;
extern int httpPrintf(http_t *http, const char *format, ...) _CUPS_FORMAT(2, 3) _CUPS_PUBLIC;
extern int httpPut(http_t *http, const char *uri) _CUPS_PUBLIC;
extern int httpRead(http_t *http, char *buffer, int length) _CUPS_DEPRECATED_MSG("Use httpRead2 instead.");
extern int httpReconnect(http_t *http) _CUPS_DEPRECATED_1_6_MSG("Use httpReconnect2 instead.");
extern void httpSeparate(const char *uri, char *method, char *username, char *host, int *port, char *resource) _CUPS_DEPRECATED_1_2_MSG("Use httpSeparateURI instead.");
extern void httpSetField(http_t *http, http_field_t field, const char *value) _CUPS_PUBLIC;
extern const char *httpStatus(http_status_t status) _CUPS_PUBLIC;
extern int httpTrace(http_t *http, const char *uri) _CUPS_PUBLIC;
extern http_status_t httpUpdate(http_t *http) _CUPS_PUBLIC;
extern int httpWrite(http_t *http, const char *buffer, int length) _CUPS_DEPRECATED_MSG("Use httpWrite2 instead.");
extern char *httpEncode64(char *out, const char *in) _CUPS_DEPRECATED_MSG("Use httpEncode64_2 instead.");
extern char *httpDecode64(char *out, const char *in) _CUPS_DEPRECATED_MSG("Use httpDecode64_2 instead.");
extern int httpGetLength(http_t *http) _CUPS_DEPRECATED_1_2_MSG("Use httpGetLength2 instead.");
extern char *httpMD5(const char *, const char *, const char *, char [33]) _CUPS_DEPRECATED_MSG("Use cupsDoAuth or cupsHashData instead.");
extern char *httpMD5Final(const char *, const char *, const char *, char [33]) _CUPS_DEPRECATED_2_2_MSG("Use cupsDoAuth or cupsHashData instead.");
extern char *httpMD5String(const unsigned char *, char [33]) _CUPS_DEPRECATED_2_2_MSG("Use cupsHashString instead.");
/**** New in CUPS 1.1.19 ****/
extern void httpClearCookie(http_t *http) _CUPS_API_1_1_19;
extern const char *httpGetCookie(http_t *http) _CUPS_API_1_1_19;
extern void httpSetCookie(http_t *http, const char *cookie) _CUPS_API_1_1_19;
extern int httpWait(http_t *http, int msec) _CUPS_API_1_1_19;
/**** New in CUPS 1.1.21 ****/
extern char *httpDecode64_2(char *out, int *outlen, const char *in) _CUPS_API_1_1_21;
extern char *httpEncode64_2(char *out, int outlen, const char *in, int inlen) _CUPS_API_1_1_21;
extern void httpSeparate2(const char *uri, char *method, int methodlen, char *username, int usernamelen, char *host, int hostlen, int *port, char *resource, int resourcelen) _CUPS_DEPRECATED_1_2_MSG("Use httpSeparateURI instead.");
/**** New in CUPS 1.2/macOS 10.5 ****/
extern int httpAddrAny(const http_addr_t *addr) _CUPS_API_1_2;
extern http_addrlist_t *httpAddrConnect(http_addrlist_t *addrlist, int *sock) _CUPS_API_1_2;
extern int httpAddrEqual(const http_addr_t *addr1, const http_addr_t *addr2) _CUPS_API_1_2;
extern void httpAddrFreeList(http_addrlist_t *addrlist) _CUPS_API_1_2;
extern http_addrlist_t *httpAddrGetList(const char *hostname, int family, const char *service) _CUPS_API_1_2;
extern int httpAddrLength(const http_addr_t *addr) _CUPS_API_1_2;
extern int httpAddrLocalhost(const http_addr_t *addr) _CUPS_API_1_2;
extern char *httpAddrLookup(const http_addr_t *addr, char *name, int namelen) _CUPS_API_1_2;
extern char *httpAddrString(const http_addr_t *addr, char *s, int slen) _CUPS_API_1_2;
extern http_uri_status_t httpAssembleURI(http_uri_coding_t encoding, char *uri, int urilen, const char *scheme, const char *username, const char *host, int port, const char *resource) _CUPS_API_1_2;
extern http_uri_status_t httpAssembleURIf(http_uri_coding_t encoding, char *uri, int urilen, const char *scheme, const char *username, const char *host, int port, const char *resourcef, ...) _CUPS_FORMAT(8, 9) _CUPS_API_1_2;
extern int httpFlushWrite(http_t *http) _CUPS_API_1_2;
extern int httpGetBlocking(http_t *http) _CUPS_API_1_2;
extern const char *httpGetDateString2(time_t t, char *s, int slen) _CUPS_API_1_2;
extern int httpGetFd(http_t *http) _CUPS_API_1_2;
extern const char *httpGetHostname(http_t *http, char *s, int slen) _CUPS_API_1_2;
extern off_t httpGetLength2(http_t *http) _CUPS_API_1_2;
extern http_status_t httpGetStatus(http_t *http) _CUPS_API_1_2;
extern char *httpGetSubField2(http_t *http, http_field_t field, const char *name, char *value, int valuelen) _CUPS_API_1_2;
extern ssize_t httpRead2(http_t *http, char *buffer, size_t length) _CUPS_API_1_2;
extern http_uri_status_t httpSeparateURI(http_uri_coding_t decoding, const char *uri, char *scheme, int schemelen, char *username, int usernamelen, char *host, int hostlen, int *port, char *resource, int resourcelen) _CUPS_API_1_2;
extern void httpSetExpect(http_t *http, http_status_t expect) _CUPS_API_1_2;
extern void httpSetLength(http_t *http, size_t length) _CUPS_API_1_2;
extern ssize_t httpWrite2(http_t *http, const char *buffer, size_t length) _CUPS_API_1_2;
/**** New in CUPS 1.3/macOS 10.5 ****/
extern char *httpGetAuthString(http_t *http) _CUPS_API_1_3;
extern void httpSetAuthString(http_t *http, const char *scheme, const char *data) _CUPS_API_1_3;
/**** New in CUPS 1.5/macOS 10.7 ****/
extern int httpAddCredential(cups_array_t *credentials, const void *data, size_t datalen) _CUPS_API_1_5;
extern int httpCopyCredentials(http_t *http, cups_array_t **credentials) _CUPS_API_1_5;
extern void httpFreeCredentials(cups_array_t *certs) _CUPS_API_1_5;
extern int httpSetCredentials(http_t *http, cups_array_t *certs) _CUPS_API_1_5;
extern void httpSetTimeout(http_t *http, double timeout, http_timeout_cb_t cb, void *user_data) _CUPS_API_1_5;
/**** New in CUPS 1.6/macOS 10.8 ****/
extern http_addrlist_t *httpAddrConnect2(http_addrlist_t *addrlist, int *sock, int msec, int *cancel) _CUPS_API_1_6;
extern http_state_t httpGetState(http_t *http) _CUPS_API_1_6;
extern http_version_t httpGetVersion(http_t *http) _CUPS_API_1_6;
extern int httpReconnect2(http_t *http, int msec, int *cancel) _CUPS_API_1_6;
/**** New in CUPS 1.7/macOS 10.9 ****/
extern http_t *httpAcceptConnection(int fd, int blocking) _CUPS_API_1_7;
extern http_addrlist_t *httpAddrCopyList(http_addrlist_t *src) _CUPS_API_1_7;
extern int httpAddrListen(http_addr_t *addr, int port) _CUPS_API_1_7;
extern int httpAddrPort(http_addr_t *addr) _CUPS_API_1_7;
extern char *httpAssembleUUID(const char *server, int port, const char *name, int number, char *buffer, size_t bufsize) _CUPS_API_1_7;
extern http_t *httpConnect2(const char *host, int port, http_addrlist_t *addrlist, int family, http_encryption_t encryption, int blocking, int msec, int *cancel) _CUPS_API_1_7;
extern const char *httpGetContentEncoding(http_t *http) _CUPS_API_1_7;
extern http_status_t httpGetExpect(http_t *http) _CUPS_API_1_7;
extern ssize_t httpPeek(http_t *http, char *buffer, size_t length) _CUPS_API_1_7;
extern http_state_t httpReadRequest(http_t *http, char *resource, size_t resourcelen) _CUPS_API_1_7;
extern void httpSetDefaultField(http_t *http, http_field_t field, const char *value) _CUPS_API_1_7;
extern http_state_t httpWriteResponse(http_t *http, http_status_t status) _CUPS_API_1_7;
/* New in CUPS 2.0/macOS 10.10 */
extern int httpAddrClose(http_addr_t *addr, int fd) _CUPS_API_2_0;
extern int httpAddrFamily(http_addr_t *addr) _CUPS_API_2_0;
extern int httpCompareCredentials(cups_array_t *cred1, cups_array_t *cred2) _CUPS_API_2_0;
extern int httpCredentialsAreValidForName(cups_array_t *credentials, const char *common_name);
extern time_t httpCredentialsGetExpiration(cups_array_t *credentials) _CUPS_API_2_0;
extern http_trust_t httpCredentialsGetTrust(cups_array_t *credentials, const char *common_name) _CUPS_API_2_0;
extern size_t httpCredentialsString(cups_array_t *credentials, char *buffer, size_t bufsize) _CUPS_API_2_0;
extern http_field_t httpFieldValue(const char *name) _CUPS_API_2_0;
extern time_t httpGetActivity(http_t *http) _CUPS_API_2_0;
extern http_addr_t *httpGetAddress(http_t *http) _CUPS_API_2_0;
extern http_encryption_t httpGetEncryption(http_t *http) _CUPS_API_2_0;
extern http_keepalive_t httpGetKeepAlive(http_t *http) _CUPS_API_2_0;
extern size_t httpGetPending(http_t *http) _CUPS_API_2_0;
extern size_t httpGetReady(http_t *http) _CUPS_API_2_0;
extern size_t httpGetRemaining(http_t *http) _CUPS_API_2_0;
extern int httpIsChunked(http_t *http) _CUPS_API_2_0;
extern int httpIsEncrypted(http_t *http) _CUPS_API_2_0;
extern int httpLoadCredentials(const char *path, cups_array_t **credentials, const char *common_name) _CUPS_API_2_0;
extern const char *httpResolveHostname(http_t *http, char *buffer, size_t bufsize) _CUPS_API_2_0;
extern int httpSaveCredentials(const char *path, cups_array_t *credentials, const char *common_name) _CUPS_API_2_0;
extern void httpSetKeepAlive(http_t *http, http_keepalive_t keep_alive) _CUPS_API_2_0;
extern void httpShutdown(http_t *http) _CUPS_API_2_0;
extern const char *httpStateString(http_state_t state) _CUPS_API_2_0;
extern const char *httpURIStatusString(http_uri_status_t status) _CUPS_API_2_0;
/*
* C++ magic...
*/
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_CUPS_HTTP_H_ */

947
third_party/cups/include/cups/ipp.h поставляемый Normal file
Просмотреть файл

@ -0,0 +1,947 @@
/*
* Internet Printing Protocol definitions for CUPS.
*
* Copyright © 2007-2018 by Apple Inc.
* Copyright © 1997-2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
#ifndef _CUPS_IPP_H_
# define _CUPS_IPP_H_
/*
* Include necessary headers...
*/
# include "http.h"
# include <stdarg.h>
/*
* C++ magic...
*/
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* IPP version string...
*/
# define IPP_VERSION "\002\001"
/*
* IPP registered port number...
*
* Note: Applications should never use IPP_PORT, but instead use the
* ippPort() function to allow overrides via the IPP_PORT environment
* variable and services file if needed!
*/
# define IPP_PORT 631
/*
* Common limits...
*/
# define IPP_MAX_CHARSET 64 /* Maximum length of charset values w/nul */
# define IPP_MAX_KEYWORD 256 /* Maximum length of keyword values w/nul */
# define IPP_MAX_LANGUAGE 64 /* Maximum length of naturalLanguage values w/nul */
# define IPP_MAX_LENGTH 32767 /* Maximum size of any single value */
# define IPP_MAX_MIMETYPE 256 /* Maximum length of mimeMediaType values w/nul */
# define IPP_MAX_NAME 256 /* Maximum length of common name values w/nul */
# define IPP_MAX_OCTETSTRING 1023 /* Maximum length of octetString values w/o nul */
# define IPP_MAX_TEXT 1024 /* Maximum length of text values w/nul */
# define IPP_MAX_URI 1024 /* Maximum length of uri values w/nul */
# define IPP_MAX_URISCHEME 64 /* Maximum length of uriScheme values w/nul */
# define IPP_MAX_VALUES 8 /* Power-of-2 allocation increment */
/*
* Macro to flag a text string attribute as "const" (static storage) vs.
* allocated.
*/
# define IPP_CONST_TAG(x) (ipp_tag_t)(IPP_TAG_CUPS_CONST | (x))
/*
* Types and structures...
*/
typedef enum ipp_dstate_e /**** Document states @exclude all@ ****/
{
IPP_DSTATE_PENDING = 3, /* Document is pending */
IPP_DSTATE_PROCESSING = 5, /* Document is processing */
IPP_DSTATE_CANCELED = 7, /* Document is canceled */
IPP_DSTATE_ABORTED, /* Document is aborted */
IPP_DSTATE_COMPLETED /* Document is completed */
# ifndef _CUPS_NO_DEPRECATED
# define IPP_DOCUMENT_PENDING IPP_DSTATE_PENDING
# define IPP_DOCUMENT_PROCESSING IPP_DSTATE_PROCESSING
# define IPP_DOCUMENT_CANCELED IPP_DSTATE_CANCELED
# define IPP_DOCUMENT_ABORTED IPP_DSTATE_ABORTED
# define IPP_DOCUMENT_COMPLETED IPP_DSTATE_COMPLETED
# endif /* !_CUPS_NO_DEPRECATED */
} ipp_dstate_t;
typedef enum ipp_finishings_e /**** Finishings values ****/
{
IPP_FINISHINGS_NONE = 3, /* No finishing */
IPP_FINISHINGS_STAPLE, /* Staple (any location/method) */
IPP_FINISHINGS_PUNCH, /* Punch (any location/count) */
IPP_FINISHINGS_COVER, /* Add cover */
IPP_FINISHINGS_BIND, /* Bind */
IPP_FINISHINGS_SADDLE_STITCH, /* Staple interior */
IPP_FINISHINGS_EDGE_STITCH, /* Stitch along any side */
IPP_FINISHINGS_FOLD, /* Fold (any type) */
IPP_FINISHINGS_TRIM, /* Trim (any type) */
IPP_FINISHINGS_BALE, /* Bale (any type) */
IPP_FINISHINGS_BOOKLET_MAKER, /* Fold to make booklet */
IPP_FINISHINGS_JOG_OFFSET, /* Offset for binding (any type) */
IPP_FINISHINGS_COAT, /* Apply protective liquid or powder coating */
IPP_FINISHINGS_LAMINATE, /* Apply protective (solid) material */
IPP_FINISHINGS_STAPLE_TOP_LEFT = 20, /* Staple top left corner */
IPP_FINISHINGS_STAPLE_BOTTOM_LEFT, /* Staple bottom left corner */
IPP_FINISHINGS_STAPLE_TOP_RIGHT, /* Staple top right corner */
IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT, /* Staple bottom right corner */
IPP_FINISHINGS_EDGE_STITCH_LEFT, /* Stitch along left side */
IPP_FINISHINGS_EDGE_STITCH_TOP, /* Stitch along top edge */
IPP_FINISHINGS_EDGE_STITCH_RIGHT, /* Stitch along right side */
IPP_FINISHINGS_EDGE_STITCH_BOTTOM, /* Stitch along bottom edge */
IPP_FINISHINGS_STAPLE_DUAL_LEFT, /* Two staples on left */
IPP_FINISHINGS_STAPLE_DUAL_TOP, /* Two staples on top */
IPP_FINISHINGS_STAPLE_DUAL_RIGHT, /* Two staples on right */
IPP_FINISHINGS_STAPLE_DUAL_BOTTOM, /* Two staples on bottom */
IPP_FINISHINGS_STAPLE_TRIPLE_LEFT, /* Three staples on left */
IPP_FINISHINGS_STAPLE_TRIPLE_TOP, /* Three staples on top */
IPP_FINISHINGS_STAPLE_TRIPLE_RIGHT, /* Three staples on right */
IPP_FINISHINGS_STAPLE_TRIPLE_BOTTOM, /* Three staples on bottom */
IPP_FINISHINGS_BIND_LEFT = 50, /* Bind on left */
IPP_FINISHINGS_BIND_TOP, /* Bind on top */
IPP_FINISHINGS_BIND_RIGHT, /* Bind on right */
IPP_FINISHINGS_BIND_BOTTOM, /* Bind on bottom */
IPP_FINISHINGS_TRIM_AFTER_PAGES = 60, /* Trim output after each page */
IPP_FINISHINGS_TRIM_AFTER_DOCUMENTS, /* Trim output after each document */
IPP_FINISHINGS_TRIM_AFTER_COPIES, /* Trim output after each copy */
IPP_FINISHINGS_TRIM_AFTER_JOB, /* Trim output after job */
IPP_FINISHINGS_PUNCH_TOP_LEFT = 70, /* Punch 1 hole top left */
IPP_FINISHINGS_PUNCH_BOTTOM_LEFT, /* Punch 1 hole bottom left */
IPP_FINISHINGS_PUNCH_TOP_RIGHT, /* Punch 1 hole top right */
IPP_FINISHINGS_PUNCH_BOTTOM_RIGHT, /* Punch 1 hole bottom right */
IPP_FINISHINGS_PUNCH_DUAL_LEFT, /* Punch 2 holes left side */
IPP_FINISHINGS_PUNCH_DUAL_TOP, /* Punch 2 holes top edge */
IPP_FINISHINGS_PUNCH_DUAL_RIGHT, /* Punch 2 holes right side */
IPP_FINISHINGS_PUNCH_DUAL_BOTTOM, /* Punch 2 holes bottom edge */
IPP_FINISHINGS_PUNCH_TRIPLE_LEFT, /* Punch 3 holes left side */
IPP_FINISHINGS_PUNCH_TRIPLE_TOP, /* Punch 3 holes top edge */
IPP_FINISHINGS_PUNCH_TRIPLE_RIGHT, /* Punch 3 holes right side */
IPP_FINISHINGS_PUNCH_TRIPLE_BOTTOM, /* Punch 3 holes bottom edge */
IPP_FINISHINGS_PUNCH_QUAD_LEFT, /* Punch 4 holes left side */
IPP_FINISHINGS_PUNCH_QUAD_TOP, /* Punch 4 holes top edge */
IPP_FINISHINGS_PUNCH_QUAD_RIGHT, /* Punch 4 holes right side */
IPP_FINISHINGS_PUNCH_QUAD_BOTTOM, /* Punch 4 holes bottom edge */
IPP_FINISHINGS_PUNCH_MULTIPLE_LEFT, /* Punch multiple holes left side */
IPP_FINISHINGS_PUNCH_MULTIPLE_TOP, /* Punch multiple holes top edge */
IPP_FINISHINGS_PUNCH_MULTIPLE_RIGHT, /* Punch multiple holes right side */
IPP_FINISHINGS_PUNCH_MULTIPLE_BOTTOM, /* Punch multiple holes bottom edge */
IPP_FINISHINGS_FOLD_ACCORDION = 90, /* Accordion-fold the paper vertically into four sections */
IPP_FINISHINGS_FOLD_DOUBLE_GATE, /* Fold the top and bottom quarters of the paper towards the midline, then fold in half vertically */
IPP_FINISHINGS_FOLD_GATE, /* Fold the top and bottom quarters of the paper towards the midline */
IPP_FINISHINGS_FOLD_HALF, /* Fold the paper in half vertically */
IPP_FINISHINGS_FOLD_HALF_Z, /* Fold the paper in half horizontally, then Z-fold the paper vertically */
IPP_FINISHINGS_FOLD_LEFT_GATE, /* Fold the top quarter of the paper towards the midline */
IPP_FINISHINGS_FOLD_LETTER, /* Fold the paper into three sections vertically; sometimes also known as a C fold*/
IPP_FINISHINGS_FOLD_PARALLEL, /* Fold the paper in half vertically two times, yielding four sections */
IPP_FINISHINGS_FOLD_POSTER, /* Fold the paper in half horizontally and vertically; sometimes also called a cross fold */
IPP_FINISHINGS_FOLD_RIGHT_GATE, /* Fold the bottom quarter of the paper towards the midline */
IPP_FINISHINGS_FOLD_Z, /* Fold the paper vertically into three sections, forming a Z */
IPP_FINISHINGS_FOLD_ENGINEERING_Z, /* Fold the paper vertically into two small sections and one larger, forming an elongated Z */
/* CUPS extensions for finishings (pre-standard versions of values above) */
IPP_FINISHINGS_CUPS_PUNCH_TOP_LEFT = 0x40000046,
/* Punch 1 hole top left @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_BOTTOM_LEFT,/* Punch 1 hole bottom left @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_TOP_RIGHT, /* Punch 1 hole top right @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_BOTTOM_RIGHT,
/* Punch 1 hole bottom right @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_DUAL_LEFT, /* Punch 2 holes left side @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_DUAL_TOP, /* Punch 2 holes top edge @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_DUAL_RIGHT, /* Punch 2 holes right side @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_DUAL_BOTTOM,/* Punch 2 holes bottom edge @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_LEFT,/* Punch 3 holes left side @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_TOP, /* Punch 3 holes top edge @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_RIGHT,
/* Punch 3 holes right side @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_TRIPLE_BOTTOM,
/* Punch 3 holes bottom edge @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_QUAD_LEFT, /* Punch 4 holes left side @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_QUAD_TOP, /* Punch 4 holes top edge @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_QUAD_RIGHT, /* Punch 4 holes right side @exclude all@ */
IPP_FINISHINGS_CUPS_PUNCH_QUAD_BOTTOM,/* Punch 4 holes bottom edge @exclude all@ */
IPP_FINISHINGS_CUPS_FOLD_ACCORDION = 0x4000005A,
/* Accordion-fold the paper vertically into four sections @exclude all@ */
IPP_FINISHINGS_CUPS_FOLD_DOUBLE_GATE, /* Fold the top and bottom quarters of the paper towards the midline, then fold in half vertically @exclude all@ */
IPP_FINISHINGS_CUPS_FOLD_GATE, /* Fold the top and bottom quarters of the paper towards the midline @exclude all@ */
IPP_FINISHINGS_CUPS_FOLD_HALF, /* Fold the paper in half vertically @exclude all@ */
IPP_FINISHINGS_CUPS_FOLD_HALF_Z, /* Fold the paper in half horizontally, then Z-fold the paper vertically @exclude all@ */
IPP_FINISHINGS_CUPS_FOLD_LEFT_GATE, /* Fold the top quarter of the paper towards the midline @exclude all@ */
IPP_FINISHINGS_CUPS_FOLD_LETTER, /* Fold the paper into three sections vertically; sometimes also known as a C fold @exclude all@ */
IPP_FINISHINGS_CUPS_FOLD_PARALLEL, /* Fold the paper in half vertically two times, yielding four sections @exclude all@ */
IPP_FINISHINGS_CUPS_FOLD_POSTER, /* Fold the paper in half horizontally and vertically; sometimes also called a cross fold @exclude all@ */
IPP_FINISHINGS_CUPS_FOLD_RIGHT_GATE, /* Fold the bottom quarter of the paper towards the midline @exclude all@ */
IPP_FINISHINGS_CUPS_FOLD_Z /* Fold the paper vertically into three sections, forming a Z @exclude all@ */
} ipp_finishings_t;
# ifndef _CUPS_NO_DEPRECATED
# define IPP_FINISHINGS_CUPS_FOLD_ACCORDIAN IPP_FINISHINGS_CUPS_FOLD_ACCORDION
# define IPP_FINISHINGS_FOLD_ACCORDIAN IPP_FINISHINGS_FOLD_ACCORDION
# define IPP_FINISHINGS_JOB_OFFSET IPP_FINISHINGS_JOG_OFFSET
/* Long-time misspellings... */
typedef enum ipp_finishings_e ipp_finish_t;
# endif /* !_CUPS_NO_DEPRECATED */
typedef enum ipp_jcollate_e /**** Job collation types @deprecated@ @exclude all@ ****/
{
IPP_JCOLLATE_UNCOLLATED_SHEETS = 3,
IPP_JCOLLATE_COLLATED_DOCUMENTS,
IPP_JCOLLATE_UNCOLLATED_DOCUMENTS
# ifndef _CUPS_NO_DEPRECATED
# define IPP_JOB_UNCOLLATED_SHEETS IPP_JCOLLATE_UNCOLLATED_SHEETS
# define IPP_JOB_COLLATED_DOCUMENTS IPP_JCOLLATE_COLLATED_DOCUMENTS
# define IPP_JOB_UNCOLLATED_DOCUMENTS IPP_JCOLLATE_UNCOLLATED_DOCUMENTS
# endif /* !_CUPS_NO_DEPRECATED */
} ipp_jcollate_t;
typedef enum ipp_jstate_e /**** Job states ****/
{
IPP_JSTATE_PENDING = 3, /* Job is waiting to be printed */
IPP_JSTATE_HELD, /* Job is held for printing */
IPP_JSTATE_PROCESSING, /* Job is currently printing */
IPP_JSTATE_STOPPED, /* Job has been stopped */
IPP_JSTATE_CANCELED, /* Job has been canceled */
IPP_JSTATE_ABORTED, /* Job has aborted due to error */
IPP_JSTATE_COMPLETED /* Job has completed successfully */
# ifndef _CUPS_NO_DEPRECATED
# define IPP_JOB_PENDING IPP_JSTATE_PENDING
# define IPP_JOB_HELD IPP_JSTATE_HELD
# define IPP_JOB_PROCESSING IPP_JSTATE_PROCESSING
# define IPP_JOB_STOPPED IPP_JSTATE_STOPPED
# define IPP_JOB_CANCELED IPP_JSTATE_CANCELED
# define IPP_JOB_ABORTED IPP_JSTATE_ABORTED
# define IPP_JOB_COMPLETED IPP_JSTATE_COMPLETED
/* Legacy name for canceled state */
# define IPP_JOB_CANCELLED IPP_JSTATE_CANCELED
# endif /* !_CUPS_NO_DEPRECATED */
} ipp_jstate_t;
typedef enum ipp_op_e /**** IPP operations ****/
{
IPP_OP_CUPS_INVALID = -1, /* Invalid operation name for @link ippOpValue@ */
IPP_OP_CUPS_NONE = 0, /* No operation @private@ */
IPP_OP_PRINT_JOB = 0x0002, /* Print-Job: Print a single file */
IPP_OP_PRINT_URI, /* Print-URI: Print a single URL @exclude all@ */
IPP_OP_VALIDATE_JOB, /* Validate-Job: Validate job values prior to submission */
IPP_OP_CREATE_JOB, /* Create-Job: Create an empty print job */
IPP_OP_SEND_DOCUMENT, /* Send-Document: Add a file to a job */
IPP_OP_SEND_URI, /* Send-URI: Add a URL to a job @exclude all@ */
IPP_OP_CANCEL_JOB, /* Cancel-Job: Cancel a job */
IPP_OP_GET_JOB_ATTRIBUTES, /* Get-Job-Attribute: Get information about a job */
IPP_OP_GET_JOBS, /* Get-Jobs: Get a list of jobs */
IPP_OP_GET_PRINTER_ATTRIBUTES, /* Get-Printer-Attributes: Get information about a printer */
IPP_OP_HOLD_JOB, /* Hold-Job: Hold a job for printing */
IPP_OP_RELEASE_JOB, /* Release-Job: Release a job for printing */
IPP_OP_RESTART_JOB, /* Restart-Job: Reprint a job @deprecated@ */
IPP_OP_PAUSE_PRINTER = 0x0010, /* Pause-Printer: Stop a printer */
IPP_OP_RESUME_PRINTER, /* Resume-Printer: Start a printer */
IPP_OP_PURGE_JOBS, /* Purge-Jobs: Delete all jobs @deprecated@ @exclude all@ */
IPP_OP_SET_PRINTER_ATTRIBUTES, /* Set-Printer-Attributes: Set printer values */
IPP_OP_SET_JOB_ATTRIBUTES, /* Set-Job-Attributes: Set job values */
IPP_OP_GET_PRINTER_SUPPORTED_VALUES, /* Get-Printer-Supported-Values: Get supported values */
IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS, /* Create-Printer-Subscriptions: Create one or more printer subscriptions @since CUPS 1.2/macOS 10.5@ */
IPP_OP_CREATE_JOB_SUBSCRIPTIONS, /* Create-Job-Subscriptions: Create one of more job subscriptions @since CUPS 1.2/macOS 10.5@ */
IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES, /* Get-Subscription-Attributes: Get subscription information @since CUPS 1.2/macOS 10.5@ */
IPP_OP_GET_SUBSCRIPTIONS, /* Get-Subscriptions: Get list of subscriptions @since CUPS 1.2/macOS 10.5@ */
IPP_OP_RENEW_SUBSCRIPTION, /* Renew-Subscription: Renew a printer subscription @since CUPS 1.2/macOS 10.5@ */
IPP_OP_CANCEL_SUBSCRIPTION, /* Cancel-Subscription: Cancel a subscription @since CUPS 1.2/macOS 10.5@ */
IPP_OP_GET_NOTIFICATIONS, /* Get-Notifications: Get notification events @since CUPS 1.2/macOS 10.5@ */
IPP_OP_SEND_NOTIFICATIONS, /* Send-Notifications: Send notification events @private@ */
IPP_OP_GET_RESOURCE_ATTRIBUTES, /* Get-Resource-Attributes: Get resource information @private@ */
IPP_OP_GET_RESOURCE_DATA, /* Get-Resource-Data: Get resource data @private@ @deprecated@ */
IPP_OP_GET_RESOURCES, /* Get-Resources: Get list of resources @private@ */
IPP_OP_GET_PRINT_SUPPORT_FILES, /* Get-Printer-Support-Files: Get printer support files @private@ */
IPP_OP_ENABLE_PRINTER, /* Enable-Printer: Accept new jobs for a printer */
IPP_OP_DISABLE_PRINTER, /* Disable-Printer: Reject new jobs for a printer */
IPP_OP_PAUSE_PRINTER_AFTER_CURRENT_JOB,
/* Pause-Printer-After-Current-Job: Stop printer after the current job */
IPP_OP_HOLD_NEW_JOBS, /* Hold-New-Jobs: Hold new jobs */
IPP_OP_RELEASE_HELD_NEW_JOBS, /* Release-Held-New-Jobs: Release new jobs that were previously held */
IPP_OP_DEACTIVATE_PRINTER, /* Deactivate-Printer: Stop a printer and do not accept jobs @deprecated@ @exclude all@ */
IPP_OP_ACTIVATE_PRINTER, /* Activate-Printer: Start a printer and accept jobs @deprecated@ @exclude all@ */
IPP_OP_RESTART_PRINTER, /* Restart-Printer: Restart a printer @exclude all@ */
IPP_OP_SHUTDOWN_PRINTER, /* Shutdown-Printer: Turn a printer off @exclude all@ */
IPP_OP_STARTUP_PRINTER, /* Startup-Printer: Turn a printer on @exclude all@ */
IPP_OP_REPROCESS_JOB, /* Reprocess-Job: Reprint a job @deprecated@ @exclude all@*/
IPP_OP_CANCEL_CURRENT_JOB, /* Cancel-Current-Job: Cancel the current job */
IPP_OP_SUSPEND_CURRENT_JOB, /* Suspend-Current-Job: Suspend the current job */
IPP_OP_RESUME_JOB, /* Resume-Job: Resume the current job */
IPP_OP_PROMOTE_JOB, /* Promote-Job: Promote a job to print sooner */
IPP_OP_SCHEDULE_JOB_AFTER, /* Schedule-Job-After: Schedule a job to print after another */
IPP_OP_CANCEL_DOCUMENT = 0x0033, /* Cancel-Document: Cancel a document @exclude all@ */
IPP_OP_GET_DOCUMENT_ATTRIBUTES, /* Get-Document-Attributes: Get document information @exclude all@ */
IPP_OP_GET_DOCUMENTS, /* Get-Documents: Get a list of documents in a job @exclude all@ */
IPP_OP_DELETE_DOCUMENT, /* Delete-Document: Delete a document @deprecated@ @exclude all@ */
IPP_OP_SET_DOCUMENT_ATTRIBUTES, /* Set-Document-Attributes: Set document values @exclude all@ */
IPP_OP_CANCEL_JOBS, /* Cancel-Jobs: Cancel all jobs (administrative) */
IPP_OP_CANCEL_MY_JOBS, /* Cancel-My-Jobs: Cancel a user's jobs */
IPP_OP_RESUBMIT_JOB, /* Resubmit-Job: Copy and reprint a job @exclude all@ */
IPP_OP_CLOSE_JOB, /* Close-Job: Close a job and start printing */
IPP_OP_IDENTIFY_PRINTER, /* Identify-Printer: Make the printer beep, flash, or display a message for identification */
IPP_OP_VALIDATE_DOCUMENT, /* Validate-Document: Validate document values prior to submission @exclude all@ */
IPP_OP_ADD_DOCUMENT_IMAGES, /* Add-Document-Images: Add image(s) from the specified scanner source @exclude all@ */
IPP_OP_ACKNOWLEDGE_DOCUMENT, /* Acknowledge-Document: Acknowledge processing of a document @exclude all@ */
IPP_OP_ACKNOWLEDGE_IDENTIFY_PRINTER, /* Acknowledge-Identify-Printer: Acknowledge action on an Identify-Printer request @exclude all@ */
IPP_OP_ACKNOWLEDGE_JOB, /* Acknowledge-Job: Acknowledge processing of a job @exclude all@ */
IPP_OP_FETCH_DOCUMENT, /* Fetch-Document: Fetch a document for processing @exclude all@ */
IPP_OP_FETCH_JOB, /* Fetch-Job: Fetch a job for processing @exclude all@ */
IPP_OP_GET_OUTPUT_DEVICE_ATTRIBUTES, /* Get-Output-Device-Attributes: Get printer information for a specific output device @exclude all@ */
IPP_OP_UPDATE_ACTIVE_JOBS, /* Update-Active-Jobs: Update the list of active jobs that a proxy has processed @exclude all@ */
IPP_OP_DEREGISTER_OUTPUT_DEVICE, /* Deregister-Output-Device: Remove an output device @exclude all@ */
IPP_OP_UPDATE_DOCUMENT_STATUS, /* Update-Document-Status: Update document values @exclude all@ */
IPP_OP_UPDATE_JOB_STATUS, /* Update-Job-Status: Update job values @exclude all@ */
IPP_OP_UPDATE_OUTPUT_DEVICE_ATTRIBUTES,
/* Update-Output-Device-Attributes: Update output device values @exclude all@ */
IPP_OP_GET_NEXT_DOCUMENT_DATA, /* Get-Next-Document-Data: Scan more document data @exclude all@ */
IPP_OP_ALLOCATE_PRINTER_RESOURCES, /* Allocate-Printer-Resources: Use resources for a printer. */
IPP_OP_CREATE_PRINTER, /* Create-Printer: Create a new service. */
IPP_OP_DEALLOCATE_PRINTER_RESOURCES, /* Deallocate-Printer-Resources: Stop using resources for a printer. */
IPP_OP_DELETE_PRINTER, /* Delete-Printer: Delete an existing service. */
IPP_OP_GET_PRINTERS, /* Get-Printers: Get a list of services. */
IPP_OP_SHUTDOWN_ONE_PRINTER, /* Shutdown-One-Printer: Shutdown a service. */
IPP_OP_STARTUP_ONE_PRINTER, /* Startup-One-Printer: Start a service. */
IPP_OP_CANCEL_RESOURCE, /* Cancel-Resource: Uninstall a resource. */
IPP_OP_CREATE_RESOURCE, /* Create-Resource: Create a new (empty) resource. */
IPP_OP_INSTALL_RESOURCE, /* Install-Resource: Install a resource. */
IPP_OP_SEND_RESOURCE_DATA, /* Send-Resource-Data: Upload the data for a resource. */
IPP_OP_SET_RESOURCE_ATTRIBUTES, /* Set-Resource-Attributes: Set resource object attributes. */
IPP_OP_CREATE_RESOURCE_SUBSCRIPTIONS, /* Create-Resource-Subscriptions: Create event subscriptions for a resource. */
IPP_OP_CREATE_SYSTEM_SUBSCRIPTIONS, /* Create-System-Subscriptions: Create event subscriptions for a system. */
IPP_OP_DISABLE_ALL_PRINTERS, /* Disable-All-Printers: Stop accepting new jobs on all services. */
IPP_OP_ENABLE_ALL_PRINTERS, /* Enable-All-Printers: Start accepting new jobs on all services. */
IPP_OP_GET_SYSTEM_ATTRIBUTES, /* Get-System-Attributes: Get system object attributes. */
IPP_OP_GET_SYSTEM_SUPPORTED_VALUES, /* Get-System-Supported-Values: Get supported values for system object attributes. */
IPP_OP_PAUSE_ALL_PRINTERS, /* Pause-All-Printers: Stop all services immediately. */
IPP_OP_PAUSE_ALL_PRINTERS_AFTER_CURRENT_JOB,
/* Pause-All-Printers-After-Current-Job: Stop all services after processing the current jobs. */
IPP_OP_REGISTER_OUTPUT_DEVICE, /* Register-Output-Device: Register a remote service. */
IPP_OP_RESTART_SYSTEM, /* Restart-System: Restart all services. */
IPP_OP_RESUME_ALL_PRINTERS, /* Resume-All-Printers: Start job processing on all services. */
IPP_OP_SET_SYSTEM_ATTRIBUTES, /* Set-System-Attributes: Set system object attributes. */
IPP_OP_SHUTDOWN_ALL_PRINTERS, /* Shutdown-All-Printers: Shutdown all services. */
IPP_OP_STARTUP_ALL_PRINTERS, /* Startup-All-Printers: Startup all services. */
IPP_OP_PRIVATE = 0x4000, /* Reserved @private@ */
IPP_OP_CUPS_GET_DEFAULT, /* CUPS-Get-Default: Get the default printer */
IPP_OP_CUPS_GET_PRINTERS, /* CUPS-Get-Printers: Get a list of printers and/or classes */
IPP_OP_CUPS_ADD_MODIFY_PRINTER, /* CUPS-Add-Modify-Printer: Add or modify a printer */
IPP_OP_CUPS_DELETE_PRINTER, /* CUPS-Delete-Printer: Delete a printer */
IPP_OP_CUPS_GET_CLASSES, /* CUPS-Get-Classes: Get a list of classes @deprecated@ @exclude all@ */
IPP_OP_CUPS_ADD_MODIFY_CLASS, /* CUPS-Add-Modify-Class: Add or modify a class */
IPP_OP_CUPS_DELETE_CLASS, /* CUPS-Delete-Class: Delete a class */
IPP_OP_CUPS_ACCEPT_JOBS, /* CUPS-Accept-Jobs: Accept new jobs on a printer @exclude all@ */
IPP_OP_CUPS_REJECT_JOBS, /* CUPS-Reject-Jobs: Reject new jobs on a printer @exclude all@ */
IPP_OP_CUPS_SET_DEFAULT, /* CUPS-Set-Default: Set the default printer */
IPP_OP_CUPS_GET_DEVICES, /* CUPS-Get-Devices: Get a list of supported devices @deprecated@ */
IPP_OP_CUPS_GET_PPDS, /* CUPS-Get-PPDs: Get a list of supported drivers @deprecated@ */
IPP_OP_CUPS_MOVE_JOB, /* CUPS-Move-Job: Move a job to a different printer */
IPP_OP_CUPS_AUTHENTICATE_JOB, /* CUPS-Authenticate-Job: Authenticate a job @since CUPS 1.2/macOS 10.5@ */
IPP_OP_CUPS_GET_PPD, /* CUPS-Get-PPD: Get a PPD file @deprecated@ */
IPP_OP_CUPS_GET_DOCUMENT = 0x4027, /* CUPS-Get-Document: Get a document file @since CUPS 1.4/macOS 10.6@ */
IPP_OP_CUPS_CREATE_LOCAL_PRINTER /* CUPS-Create-Local-Printer: Create a local (temporary) printer @since CUPS 2.2@ */
# ifndef _CUPS_NO_DEPRECATED
# define IPP_PRINT_JOB IPP_OP_PRINT_JOB
# define IPP_PRINT_URI IPP_OP_PRINT_URI
# define IPP_VALIDATE_JOB IPP_OP_VALIDATE_JOB
# define IPP_CREATE_JOB IPP_OP_CREATE_JOB
# define IPP_SEND_DOCUMENT IPP_OP_SEND_DOCUMENT
# define IPP_SEND_URI IPP_OP_SEND_URI
# define IPP_CANCEL_JOB IPP_OP_CANCEL_JOB
# define IPP_GET_JOB_ATTRIBUTES IPP_OP_GET_JOB_ATTRIBUTES
# define IPP_GET_JOBS IPP_OP_GET_JOBS
# define IPP_GET_PRINTER_ATTRIBUTES IPP_OP_GET_PRINTER_ATTRIBUTES
# define IPP_HOLD_JOB IPP_OP_HOLD_JOB
# define IPP_RELEASE_JOB IPP_OP_RELEASE_JOB
# define IPP_RESTART_JOB IPP_OP_RESTART_JOB
# define IPP_PAUSE_PRINTER IPP_OP_PAUSE_PRINTER
# define IPP_RESUME_PRINTER IPP_OP_RESUME_PRINTER
# define IPP_PURGE_JOBS IPP_OP_PURGE_JOBS
# define IPP_SET_PRINTER_ATTRIBUTES IPP_OP_SET_PRINTER_ATTRIBUTES
# define IPP_SET_JOB_ATTRIBUTES IPP_OP_SET_JOB_ATTRIBUTES
# define IPP_GET_PRINTER_SUPPORTED_VALUES IPP_OP_GET_PRINTER_SUPPORTED_VALUES
# define IPP_CREATE_PRINTER_SUBSCRIPTION IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS
# define IPP_CREATE_JOB_SUBSCRIPTION IPP_OP_CREATE_JOB_SUBSCRIPTIONS
# define IPP_OP_CREATE_PRINTER_SUBSCRIPTION IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS
# define IPP_OP_CREATE_JOB_SUBSCRIPTION IPP_OP_CREATE_JOB_SUBSCRIPTIONS
# define IPP_GET_SUBSCRIPTION_ATTRIBUTES IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES
# define IPP_GET_SUBSCRIPTIONS IPP_OP_GET_SUBSCRIPTIONS
# define IPP_RENEW_SUBSCRIPTION IPP_OP_RENEW_SUBSCRIPTION
# define IPP_CANCEL_SUBSCRIPTION IPP_OP_CANCEL_SUBSCRIPTION
# define IPP_GET_NOTIFICATIONS IPP_OP_GET_NOTIFICATIONS
# define IPP_SEND_NOTIFICATIONS IPP_OP_SEND_NOTIFICATIONS
# define IPP_GET_RESOURCE_ATTRIBUTES IPP_OP_GET_RESOURCE_ATTRIBUTES
# define IPP_GET_RESOURCE_DATA IPP_OP_GET_RESOURCE_DATA
# define IPP_GET_RESOURCES IPP_OP_GET_RESOURCES
# define IPP_GET_PRINT_SUPPORT_FILES IPP_OP_GET_PRINT_SUPPORT_FILES
# define IPP_ENABLE_PRINTER IPP_OP_ENABLE_PRINTER
# define IPP_DISABLE_PRINTER IPP_OP_DISABLE_PRINTER
# define IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB IPP_OP_PAUSE_PRINTER_AFTER_CURRENT_JOB
# define IPP_HOLD_NEW_JOBS IPP_OP_HOLD_NEW_JOBS
# define IPP_RELEASE_HELD_NEW_JOBS IPP_OP_RELEASE_HELD_NEW_JOBS
# define IPP_DEACTIVATE_PRINTER IPP_OP_DEACTIVATE_PRINTER
# define IPP_ACTIVATE_PRINTER IPP_OP_ACTIVATE_PRINTER
# define IPP_RESTART_PRINTER IPP_OP_RESTART_PRINTER
# define IPP_SHUTDOWN_PRINTER IPP_OP_SHUTDOWN_PRINTER
# define IPP_STARTUP_PRINTER IPP_OP_STARTUP_PRINTER
# define IPP_REPROCESS_JOB IPP_OP_REPROCESS_JOB
# define IPP_CANCEL_CURRENT_JOB IPP_OP_CANCEL_CURRENT_JOB
# define IPP_SUSPEND_CURRENT_JOB IPP_OP_SUSPEND_CURRENT_JOB
# define IPP_RESUME_JOB IPP_OP_RESUME_JOB
# define IPP_PROMOTE_JOB IPP_OP_PROMOTE_JOB
# define IPP_SCHEDULE_JOB_AFTER IPP_OP_SCHEDULE_JOB_AFTER
# define IPP_CANCEL_DOCUMENT IPP_OP_CANCEL_DOCUMENT
# define IPP_GET_DOCUMENT_ATTRIBUTES IPP_OP_GET_DOCUMENT_ATTRIBUTES
# define IPP_GET_DOCUMENTS IPP_OP_GET_DOCUMENTS
# define IPP_DELETE_DOCUMENT IPP_OP_DELETE_DOCUMENT
# define IPP_SET_DOCUMENT_ATTRIBUTES IPP_OP_SET_DOCUMENT_ATTRIBUTES
# define IPP_CANCEL_JOBS IPP_OP_CANCEL_JOBS
# define IPP_CANCEL_MY_JOBS IPP_OP_CANCEL_MY_JOBS
# define IPP_RESUBMIT_JOB IPP_OP_RESUBMIT_JOB
# define IPP_CLOSE_JOB IPP_OP_CLOSE_JOB
# define IPP_IDENTIFY_PRINTER IPP_OP_IDENTIFY_PRINTER
# define IPP_VALIDATE_DOCUMENT IPP_OP_VALIDATE_DOCUMENT
# define IPP_OP_SEND_HARDCOPY_DOCUMENT IPP_OP_ADD_DOCUMENT_IMAGES
# define IPP_PRIVATE IPP_OP_PRIVATE
# define CUPS_GET_DEFAULT IPP_OP_CUPS_GET_DEFAULT
# define CUPS_GET_PRINTERS IPP_OP_CUPS_GET_PRINTERS
# define CUPS_ADD_MODIFY_PRINTER IPP_OP_CUPS_ADD_MODIFY_PRINTER
# define CUPS_DELETE_PRINTER IPP_OP_CUPS_DELETE_PRINTER
# define CUPS_GET_CLASSES IPP_OP_CUPS_GET_CLASSES
# define CUPS_ADD_MODIFY_CLASS IPP_OP_CUPS_ADD_MODIFY_CLASS
# define CUPS_DELETE_CLASS IPP_OP_CUPS_DELETE_CLASS
# define CUPS_ACCEPT_JOBS IPP_OP_CUPS_ACCEPT_JOBS
# define CUPS_REJECT_JOBS IPP_OP_CUPS_REJECT_JOBS
# define CUPS_SET_DEFAULT IPP_OP_CUPS_SET_DEFAULT
# define CUPS_GET_DEVICES IPP_OP_CUPS_GET_DEVICES
# define CUPS_GET_PPDS IPP_OP_CUPS_GET_PPDS
# define CUPS_MOVE_JOB IPP_OP_CUPS_MOVE_JOB
# define CUPS_AUTHENTICATE_JOB IPP_OP_CUPS_AUTHENTICATE_JOB
# define CUPS_GET_PPD IPP_OP_CUPS_GET_PPD
# define CUPS_GET_DOCUMENT IPP_OP_CUPS_GET_DOCUMENT
/* Legacy names */
# define CUPS_ADD_PRINTER IPP_OP_CUPS_ADD_MODIFY_PRINTER
# define CUPS_ADD_CLASS IPP_OP_CUPS_ADD_MODIFY_CLASS
# endif /* !_CUPS_NO_DEPRECATED */
} ipp_op_t;
typedef enum ipp_orient_e /**** Orientation values ****/
{
IPP_ORIENT_PORTRAIT = 3, /* No rotation */
IPP_ORIENT_LANDSCAPE, /* 90 degrees counter-clockwise */
IPP_ORIENT_REVERSE_LANDSCAPE, /* 90 degrees clockwise */
IPP_ORIENT_REVERSE_PORTRAIT, /* 180 degrees */
IPP_ORIENT_NONE /* No rotation */
# ifndef _CUPS_NO_DEPRECATED
# define IPP_PORTRAIT IPP_ORIENT_PORTRAIT
# define IPP_LANDSCAPE IPP_ORIENT_LANDSCAPE
# define IPP_REVERSE_LANDSCAPE IPP_ORIENT_REVERSE_LANDSCAPE
# define IPP_REVERSE_PORTRAIT IPP_ORIENT_REVERSE_PORTRAIT
# endif /* !_CUPS_NO_DEPRECATED */
} ipp_orient_t;
typedef enum ipp_pstate_e /**** Printer state values ****/
{
IPP_PSTATE_IDLE = 3, /* Printer is idle */
IPP_PSTATE_PROCESSING, /* Printer is working */
IPP_PSTATE_STOPPED /* Printer is stopped */
# ifndef _CUPS_NO_DEPRECATED
# define IPP_PRINTER_IDLE IPP_PSTATE_IDLE
# define IPP_PRINTER_PROCESSING IPP_PSTATE_PROCESSING
# define IPP_PRINTER_STOPPED IPP_PSTATE_STOPPED
# endif /* _CUPS_NO_DEPRECATED */
} ipp_pstate_t;
typedef enum ipp_quality_e /**** Print quality values ****/
{
IPP_QUALITY_DRAFT = 3, /* Draft quality */
IPP_QUALITY_NORMAL, /* Normal quality */
IPP_QUALITY_HIGH /* High quality */
} ipp_quality_t;
typedef enum ipp_res_e /**** Resolution units ****/
{
IPP_RES_PER_INCH = 3, /* Pixels per inch */
IPP_RES_PER_CM /* Pixels per centimeter */
} ipp_res_t;
typedef enum ipp_rstate_e /**** resource-state values ****/
{
IPP_RSTATE_PENDING = 3, /* Resource is created but has no data yet. */
IPP_RSTATE_AVAILABLE, /* Resource is available for installation. */
IPP_RSTATE_INSTALLED, /* Resource is installed. */
IPP_RSTATE_CANCELED, /* Resource has been canceled and is pending deletion. */
IPP_RSTATE_ABORTED /* Resource has been aborted and is pending deletion. */
} ipp_rstate_t;
typedef enum ipp_sstate_e /**** system-state values ****/
{
IPP_SSTATE_IDLE = 3, /* At least one printer is idle and none are processing a job. */
IPP_SSTATE_PROCESSING, /* At least one printer is processing a job. */
IPP_SSTATE_STOPPED /* All printers are stopped. */
} ipp_sstate_t;
typedef enum ipp_state_e /**** ipp_t state values ****/
{
IPP_STATE_ERROR = -1, /* An error occurred */
IPP_STATE_IDLE, /* Nothing is happening/request completed */
IPP_STATE_HEADER, /* The request header needs to be sent/received */
IPP_STATE_ATTRIBUTE, /* One or more attributes need to be sent/received */
IPP_STATE_DATA /* IPP request data needs to be sent/received */
# ifndef _CUPS_NO_DEPRECATED
# define IPP_ERROR IPP_STATE_ERROR
# define IPP_IDLE IPP_STATE_IDLE
# define IPP_HEADER IPP_STATE_HEADER
# define IPP_ATTRIBUTE IPP_STATE_ATTRIBUTE
# define IPP_DATA IPP_STATE_DATA
# endif /* !_CUPS_NO_DEPRECATED */
} ipp_state_t;
typedef enum ipp_status_e /**** IPP status code values ****/
{
IPP_STATUS_CUPS_INVALID = -1, /* Invalid status name for @link ippErrorValue@ */
IPP_STATUS_OK = 0x0000, /* successful-ok */
IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED, /* successful-ok-ignored-or-substituted-attributes */
IPP_STATUS_OK_CONFLICTING, /* successful-ok-conflicting-attributes */
IPP_STATUS_OK_IGNORED_SUBSCRIPTIONS, /* successful-ok-ignored-subscriptions */
IPP_STATUS_OK_IGNORED_NOTIFICATIONS, /* successful-ok-ignored-notifications @private@ */
IPP_STATUS_OK_TOO_MANY_EVENTS, /* successful-ok-too-many-events */
IPP_STATUS_OK_BUT_CANCEL_SUBSCRIPTION,/* successful-ok-but-cancel-subscription @private@ */
IPP_STATUS_OK_EVENTS_COMPLETE, /* successful-ok-events-complete */
IPP_STATUS_REDIRECTION_OTHER_SITE = 0x0200,
/* redirection-other-site @private@ */
IPP_STATUS_CUPS_SEE_OTHER = 0x0280, /* cups-see-other @private@ */
IPP_STATUS_ERROR_BAD_REQUEST = 0x0400,/* client-error-bad-request */
IPP_STATUS_ERROR_FORBIDDEN, /* client-error-forbidden */
IPP_STATUS_ERROR_NOT_AUTHENTICATED, /* client-error-not-authenticated */
IPP_STATUS_ERROR_NOT_AUTHORIZED, /* client-error-not-authorized */
IPP_STATUS_ERROR_NOT_POSSIBLE, /* client-error-not-possible */
IPP_STATUS_ERROR_TIMEOUT, /* client-error-timeout */
IPP_STATUS_ERROR_NOT_FOUND, /* client-error-not-found */
IPP_STATUS_ERROR_GONE, /* client-error-gone */
IPP_STATUS_ERROR_REQUEST_ENTITY, /* client-error-request-entity-too-large */
IPP_STATUS_ERROR_REQUEST_VALUE, /* client-error-request-value-too-long */
IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED,
/* client-error-document-format-not-supported */
IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES,/* client-error-attributes-or-values-not-supported */
IPP_STATUS_ERROR_URI_SCHEME, /* client-error-uri-scheme-not-supported */
IPP_STATUS_ERROR_CHARSET, /* client-error-charset-not-supported */
IPP_STATUS_ERROR_CONFLICTING, /* client-error-conflicting-attributes */
IPP_STATUS_ERROR_COMPRESSION_NOT_SUPPORTED,
/* client-error-compression-not-supported */
IPP_STATUS_ERROR_COMPRESSION_ERROR, /* client-error-compression-error */
IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR,
/* client-error-document-format-error */
IPP_STATUS_ERROR_DOCUMENT_ACCESS, /* client-error-document-access-error */
IPP_STATUS_ERROR_ATTRIBUTES_NOT_SETTABLE,
/* client-error-attributes-not-settable */
IPP_STATUS_ERROR_IGNORED_ALL_SUBSCRIPTIONS,
/* client-error-ignored-all-subscriptions */
IPP_STATUS_ERROR_TOO_MANY_SUBSCRIPTIONS,
/* client-error-too-many-subscriptions */
IPP_STATUS_ERROR_IGNORED_ALL_NOTIFICATIONS,
/* client-error-ignored-all-notifications @private@ */
IPP_STATUS_ERROR_PRINT_SUPPORT_FILE_NOT_FOUND,
/* client-error-print-support-file-not-found @private@ */
IPP_STATUS_ERROR_DOCUMENT_PASSWORD, /* client-error-document-password-error */
IPP_STATUS_ERROR_DOCUMENT_PERMISSION, /* client-error-document-permission-error */
IPP_STATUS_ERROR_DOCUMENT_SECURITY, /* client-error-document-security-error */
IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE,/* client-error-document-unprintable-error */
IPP_STATUS_ERROR_ACCOUNT_INFO_NEEDED, /* client-error-account-info-needed */
IPP_STATUS_ERROR_ACCOUNT_CLOSED, /* client-error-account-closed */
IPP_STATUS_ERROR_ACCOUNT_LIMIT_REACHED,
/* client-error-account-limit-reached */
IPP_STATUS_ERROR_ACCOUNT_AUTHORIZATION_FAILED,
/* client-error-account-authorization-failed */
IPP_STATUS_ERROR_NOT_FETCHABLE, /* client-error-not-fetchable */
/* Legacy status codes for paid printing */
IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED = 0x049C,
/* cups-error-account-info-needed @deprecated@ */
IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED, /* cups-error-account-closed @deprecate@ */
IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED,
/* cups-error-account-limit-reached @deprecated@ */
IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED,
/* cups-error-account-authorization-failed @deprecated@ */
IPP_STATUS_ERROR_INTERNAL = 0x0500, /* server-error-internal-error */
IPP_STATUS_ERROR_OPERATION_NOT_SUPPORTED,
/* server-error-operation-not-supported */
IPP_STATUS_ERROR_SERVICE_UNAVAILABLE, /* server-error-service-unavailable */
IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED,
/* server-error-version-not-supported */
IPP_STATUS_ERROR_DEVICE, /* server-error-device-error */
IPP_STATUS_ERROR_TEMPORARY, /* server-error-temporary-error */
IPP_STATUS_ERROR_NOT_ACCEPTING_JOBS, /* server-error-not-accepting-jobs */
IPP_STATUS_ERROR_BUSY, /* server-error-busy */
IPP_STATUS_ERROR_JOB_CANCELED, /* server-error-job-canceled */
IPP_STATUS_ERROR_MULTIPLE_JOBS_NOT_SUPPORTED,
/* server-error-multiple-document-jobs-not-supported */
IPP_STATUS_ERROR_PRINTER_IS_DEACTIVATED,
/* server-error-printer-is-deactivated */
IPP_STATUS_ERROR_TOO_MANY_JOBS, /* server-error-too-many-jobs */
IPP_STATUS_ERROR_TOO_MANY_DOCUMENTS, /* server-error-too-many-documents */
/* These are internal and never sent over the wire... */
IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED = 0x1000,
/* cups-authentication-canceled - Authentication canceled by user @since CUPS 1.5/macOS 10.7@ */
IPP_STATUS_ERROR_CUPS_PKI, /* cups-pki-error - Error negotiating a secure connection @since CUPS 1.5/macOS 10.7@ */
IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED/* cups-upgrade-required - TLS upgrade required @since CUPS 1.5/macOS 10.7@ */
# ifndef _CUPS_NO_DEPRECATED
# define IPP_OK IPP_STATUS_OK
# define IPP_OK_SUBST IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED
# define IPP_OK_CONFLICT IPP_STATUS_OK_CONFLICTING
# define IPP_OK_IGNORED_SUBSCRIPTIONS IPP_STATUS_OK_IGNORED_SUBSCRIPTIONS
# define IPP_OK_IGNORED_NOTIFICATIONS IPP_STATUS_OK_IGNORED_NOTIFICATIONS
# define IPP_OK_TOO_MANY_EVENTS IPP_STATUS_OK_TOO_MANY_EVENTS
# define IPP_OK_BUT_CANCEL_SUBSCRIPTION IPP_STATUS_OK_BUT_CANCEL_SUBSCRIPTION
# define IPP_OK_EVENTS_COMPLETE IPP_STATUS_OK_EVENTS_COMPLETE
# define IPP_REDIRECTION_OTHER_SITE IPP_STATUS_REDIRECTION_OTHER_SITE
# define CUPS_SEE_OTHER IPP_STATUS_CUPS_SEE_OTHER
# define IPP_BAD_REQUEST IPP_STATUS_ERROR_BAD_REQUEST
# define IPP_FORBIDDEN IPP_STATUS_ERROR_FORBIDDEN
# define IPP_NOT_AUTHENTICATED IPP_STATUS_ERROR_NOT_AUTHENTICATED
# define IPP_NOT_AUTHORIZED IPP_STATUS_ERROR_NOT_AUTHORIZED
# define IPP_NOT_POSSIBLE IPP_STATUS_ERROR_NOT_POSSIBLE
# define IPP_TIMEOUT IPP_STATUS_ERROR_TIMEOUT
# define IPP_NOT_FOUND IPP_STATUS_ERROR_NOT_FOUND
# define IPP_GONE IPP_STATUS_ERROR_GONE
# define IPP_REQUEST_ENTITY IPP_STATUS_ERROR_REQUEST_ENTITY
# define IPP_REQUEST_VALUE IPP_STATUS_ERROR_REQUEST_VALUE
# define IPP_DOCUMENT_FORMAT IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED
# define IPP_ATTRIBUTES IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES
# define IPP_URI_SCHEME IPP_STATUS_ERROR_URI_SCHEME
# define IPP_CHARSET IPP_STATUS_ERROR_CHARSET
# define IPP_CONFLICT IPP_STATUS_ERROR_CONFLICTING
# define IPP_COMPRESSION_NOT_SUPPORTED IPP_STATUS_ERROR_COMPRESSION_NOT_SUPPORTED
# define IPP_COMPRESSION_ERROR IPP_STATUS_ERROR_COMPRESSION_ERROR
# define IPP_DOCUMENT_FORMAT_ERROR IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR
# define IPP_DOCUMENT_ACCESS_ERROR IPP_STATUS_ERROR_DOCUMENT_ACCESS
# define IPP_ATTRIBUTES_NOT_SETTABLE IPP_STATUS_ERROR_ATTRIBUTES_NOT_SETTABLE
# define IPP_IGNORED_ALL_SUBSCRIPTIONS IPP_STATUS_ERROR_IGNORED_ALL_SUBSCRIPTIONS
# define IPP_TOO_MANY_SUBSCRIPTIONS IPP_STATUS_ERROR_TOO_MANY_SUBSCRIPTIONS
# define IPP_IGNORED_ALL_NOTIFICATIONS IPP_STATUS_ERROR_IGNORED_ALL_NOTIFICATIONS
# define IPP_PRINT_SUPPORT_FILE_NOT_FOUND IPP_STATUS_ERROR_PRINT_SUPPORT_FILE_NOT_FOUND
# define IPP_DOCUMENT_PASSWORD_ERROR IPP_STATUS_ERROR_DOCUMENT_PASSWORD
# define IPP_DOCUMENT_PERMISSION_ERROR IPP_STATUS_ERROR_DOCUMENT_PERMISSION
# define IPP_DOCUMENT_SECURITY_ERROR IPP_STATUS_ERROR_DOCUMENT_SECURITY
# define IPP_DOCUMENT_UNPRINTABLE_ERROR IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE
# define IPP_INTERNAL_ERROR IPP_STATUS_ERROR_INTERNAL
# define IPP_OPERATION_NOT_SUPPORTED IPP_STATUS_ERROR_OPERATION_NOT_SUPPORTED
# define IPP_SERVICE_UNAVAILABLE IPP_STATUS_ERROR_SERVICE_UNAVAILABLE
# define IPP_VERSION_NOT_SUPPORTED IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED
# define IPP_DEVICE_ERROR IPP_STATUS_ERROR_DEVICE
# define IPP_TEMPORARY_ERROR IPP_STATUS_ERROR_TEMPORARY
# define IPP_NOT_ACCEPTING IPP_STATUS_ERROR_NOT_ACCEPTING_JOBS
# define IPP_PRINTER_BUSY IPP_STATUS_ERROR_BUSY
# define IPP_ERROR_JOB_CANCELED IPP_STATUS_ERROR_JOB_CANCELED
# define IPP_MULTIPLE_JOBS_NOT_SUPPORTED IPP_STATUS_ERROR_MULTIPLE_JOBS_NOT_SUPPORTED
# define IPP_PRINTER_IS_DEACTIVATED IPP_STATUS_ERROR_PRINTER_IS_DEACTIVATED
# define IPP_TOO_MANY_JOBS IPP_STATUS_ERROR_TOO_MANY_JOBS
# define IPP_TOO_MANY_DOCUMENTS IPP_STATUS_ERROR_TOO_MANY_DOCUMENTS
# define IPP_AUTHENTICATION_CANCELED IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED
# define IPP_PKI_ERROR IPP_STATUS_ERROR_CUPS_PKI
# define IPP_UPGRADE_REQUIRED IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED
/* Legacy name for canceled status */
# define IPP_ERROR_JOB_CANCELLED IPP_STATUS_ERROR_JOB_CANCELED
# endif /* _CUPS_NO_DEPRECATED */
} ipp_status_t;
typedef enum ipp_tag_e /**** Value and group tag values for attributes ****/
{
IPP_TAG_CUPS_INVALID = -1, /* Invalid tag name for @link ippTagValue@ */
IPP_TAG_ZERO = 0x00, /* Zero tag - used for separators */
IPP_TAG_OPERATION, /* Operation group */
IPP_TAG_JOB, /* Job group */
IPP_TAG_END, /* End-of-attributes */
IPP_TAG_PRINTER, /* Printer group */
IPP_TAG_UNSUPPORTED_GROUP, /* Unsupported attributes group */
IPP_TAG_SUBSCRIPTION, /* Subscription group */
IPP_TAG_EVENT_NOTIFICATION, /* Event group */
IPP_TAG_RESOURCE, /* Resource group */
IPP_TAG_DOCUMENT, /* Document group */
IPP_TAG_SYSTEM, /* System group */
IPP_TAG_UNSUPPORTED_VALUE = 0x10, /* Unsupported value */
IPP_TAG_DEFAULT, /* Default value */
IPP_TAG_UNKNOWN, /* Unknown value */
IPP_TAG_NOVALUE, /* No-value value */
IPP_TAG_NOTSETTABLE = 0x15, /* Not-settable value */
IPP_TAG_DELETEATTR, /* Delete-attribute value */
IPP_TAG_ADMINDEFINE, /* Admin-defined value */
IPP_TAG_INTEGER = 0x21, /* Integer value */
IPP_TAG_BOOLEAN, /* Boolean value */
IPP_TAG_ENUM, /* Enumeration value */
IPP_TAG_STRING = 0x30, /* Octet string value */
IPP_TAG_DATE, /* Date/time value */
IPP_TAG_RESOLUTION, /* Resolution value */
IPP_TAG_RANGE, /* Range value */
IPP_TAG_BEGIN_COLLECTION, /* Beginning of collection value @exclude all@ */
IPP_TAG_TEXTLANG, /* Text-with-language value */
IPP_TAG_NAMELANG, /* Name-with-language value */
IPP_TAG_END_COLLECTION, /* End of collection value @exclude all@ */
IPP_TAG_TEXT = 0x41, /* Text value */
IPP_TAG_NAME, /* Name value */
IPP_TAG_RESERVED_STRING, /* Reserved for future string value @private@ */
IPP_TAG_KEYWORD, /* Keyword value */
IPP_TAG_URI, /* URI value */
IPP_TAG_URISCHEME, /* URI scheme value */
IPP_TAG_CHARSET, /* Character set value */
IPP_TAG_LANGUAGE, /* Language value */
IPP_TAG_MIMETYPE, /* MIME media type value */
IPP_TAG_MEMBERNAME, /* Collection member name value @exclude all@ */
IPP_TAG_EXTENSION = 0x7f, /* Extension point for 32-bit tags @exclude all@ */
IPP_TAG_CUPS_MASK = 0x7fffffff, /* Mask for copied attribute values @private@ */
/* The following expression is used to avoid compiler warnings with +/-0x80000000 */
IPP_TAG_CUPS_CONST = -0x7fffffff-1 /* Bitflag for copied/const attribute values @private@ */
# ifndef _CUPS_NO_DEPRECATED
# define IPP_TAG_MASK IPP_TAG_CUPS_MASK
# define IPP_TAG_COPY IPP_TAG_CUPS_CONST
# endif /* !_CUPS_NO_DEPRECATED */
} ipp_tag_t;
typedef unsigned char ipp_uchar_t; /**** Unsigned 8-bit integer/character @exclude all@ ****/
typedef struct _ipp_s ipp_t; /**** IPP request/response data ****/
typedef struct _ipp_attribute_s ipp_attribute_t;
/**** IPP attribute ****/
/**** New in CUPS 1.2/macOS 10.5 ****/
typedef ssize_t (*ipp_iocb_t)(void *context, ipp_uchar_t *buffer, size_t bytes);
/**** ippReadIO/ippWriteIO callback function @since CUPS 1.2/macOS 10.5@ ****/
/**** New in CUPS 1.6/macOS 10.8 ****/
typedef int (*ipp_copycb_t)(void *context, ipp_t *dst, ipp_attribute_t *attr);
/**** ippCopyAttributes callback function @since CUPS 1.6/macOS 10.8 ****/
/*
* Prototypes...
*/
extern ipp_attribute_t *ippAddBoolean(ipp_t *ipp, ipp_tag_t group,
const char *name, char value) _CUPS_PUBLIC;
extern ipp_attribute_t *ippAddBooleans(ipp_t *ipp, ipp_tag_t group,
const char *name, int num_values,
const char *values) _CUPS_PUBLIC;
extern ipp_attribute_t *ippAddDate(ipp_t *ipp, ipp_tag_t group,
const char *name, const ipp_uchar_t *value) _CUPS_PUBLIC;
extern ipp_attribute_t *ippAddInteger(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name,
int value) _CUPS_PUBLIC;
extern ipp_attribute_t *ippAddIntegers(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name,
int num_values, const int *values) _CUPS_PUBLIC;
extern ipp_attribute_t *ippAddRange(ipp_t *ipp, ipp_tag_t group,
const char *name, int lower, int upper) _CUPS_PUBLIC;
extern ipp_attribute_t *ippAddRanges(ipp_t *ipp, ipp_tag_t group,
const char *name, int num_values,
const int *lower, const int *upper) _CUPS_PUBLIC;
extern ipp_attribute_t *ippAddResolution(ipp_t *ipp, ipp_tag_t group,
const char *name, ipp_res_t units,
int xres, int yres) _CUPS_PUBLIC;
extern ipp_attribute_t *ippAddResolutions(ipp_t *ipp, ipp_tag_t group,
const char *name, int num_values,
ipp_res_t units, const int *xres,
const int *yres) _CUPS_PUBLIC;
extern ipp_attribute_t *ippAddSeparator(ipp_t *ipp) _CUPS_PUBLIC;
extern ipp_attribute_t *ippAddString(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name,
const char *language, const char *value) _CUPS_PUBLIC;
extern ipp_attribute_t *ippAddStrings(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name,
int num_values, const char *language,
const char * const *values) _CUPS_PUBLIC;
extern time_t ippDateToTime(const ipp_uchar_t *date) _CUPS_PUBLIC;
extern void ippDelete(ipp_t *ipp) _CUPS_PUBLIC;
extern const char *ippErrorString(ipp_status_t error) _CUPS_PUBLIC;
extern ipp_attribute_t *ippFindAttribute(ipp_t *ipp, const char *name,
ipp_tag_t value_tag) _CUPS_PUBLIC;
extern ipp_attribute_t *ippFindNextAttribute(ipp_t *ipp, const char *name,
ipp_tag_t value_tag) _CUPS_PUBLIC;
extern size_t ippLength(ipp_t *ipp) _CUPS_PUBLIC;
extern ipp_t *ippNew(void) _CUPS_PUBLIC;
extern ipp_state_t ippRead(http_t *http, ipp_t *ipp) _CUPS_PUBLIC;
extern const ipp_uchar_t *ippTimeToDate(time_t t) _CUPS_PUBLIC;
extern ipp_state_t ippWrite(http_t *http, ipp_t *ipp) _CUPS_PUBLIC;
extern int ippPort(void) _CUPS_PUBLIC;
extern void ippSetPort(int p) _CUPS_PUBLIC;
/**** New in CUPS 1.1.19 ****/
extern ipp_attribute_t *ippAddCollection(ipp_t *ipp, ipp_tag_t group,
const char *name, ipp_t *value) _CUPS_API_1_1_19;
extern ipp_attribute_t *ippAddCollections(ipp_t *ipp, ipp_tag_t group,
const char *name, int num_values,
const ipp_t **values) _CUPS_API_1_1_19;
extern void ippDeleteAttribute(ipp_t *ipp, ipp_attribute_t *attr) _CUPS_API_1_1_19;
extern ipp_state_t ippReadFile(int fd, ipp_t *ipp) _CUPS_API_1_1_19;
extern ipp_state_t ippWriteFile(int fd, ipp_t *ipp) _CUPS_API_1_1_19;
/**** New in CUPS 1.2/macOS 10.5 ****/
extern ipp_attribute_t *ippAddOctetString(ipp_t *ipp, ipp_tag_t group,
const char *name,
const void *data, int datalen) _CUPS_API_1_2;
extern ipp_status_t ippErrorValue(const char *name) _CUPS_API_1_2;
extern ipp_t *ippNewRequest(ipp_op_t op) _CUPS_API_1_2;
extern const char *ippOpString(ipp_op_t op) _CUPS_API_1_2;
extern ipp_op_t ippOpValue(const char *name) _CUPS_API_1_2;
extern ipp_state_t ippReadIO(void *src, ipp_iocb_t cb, int blocking,
ipp_t *parent, ipp_t *ipp) _CUPS_API_1_2;
extern ipp_state_t ippWriteIO(void *dst, ipp_iocb_t cb, int blocking,
ipp_t *parent, ipp_t *ipp) _CUPS_API_1_2;
/**** New in CUPS 1.4/macOS 10.6 ****/
extern const char *ippTagString(ipp_tag_t tag) _CUPS_API_1_4;
extern ipp_tag_t ippTagValue(const char *name) _CUPS_API_1_4;
/**** New in CUPS 1.6/macOS 10.8 ****/
extern ipp_attribute_t *ippAddOutOfBand(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name)
_CUPS_API_1_6;
extern size_t ippAttributeString(ipp_attribute_t *attr, char *buffer,
size_t bufsize) _CUPS_API_1_6;
extern ipp_attribute_t *ippCopyAttribute(ipp_t *dst, ipp_attribute_t *attr,
int quickcopy) _CUPS_API_1_6;
extern int ippCopyAttributes(ipp_t *dst, ipp_t *src,
int quickcopy, ipp_copycb_t cb,
void *context) _CUPS_API_1_6;
extern int ippDeleteValues(ipp_t *ipp, ipp_attribute_t **attr,
int element, int count) _CUPS_API_1_6;
extern const char *ippEnumString(const char *attrname, int enumvalue)
_CUPS_API_1_6;
extern int ippEnumValue(const char *attrname,
const char *enumstring) _CUPS_API_1_6;
extern ipp_attribute_t *ippFirstAttribute(ipp_t *ipp) _CUPS_API_1_6;
extern int ippGetBoolean(ipp_attribute_t *attr, int element)
_CUPS_API_1_6;
extern ipp_t *ippGetCollection(ipp_attribute_t *attr,
int element) _CUPS_API_1_6;
extern int ippGetCount(ipp_attribute_t *attr) _CUPS_API_1_6;
extern const ipp_uchar_t *ippGetDate(ipp_attribute_t *attr, int element)
_CUPS_API_1_6;
extern ipp_tag_t ippGetGroupTag(ipp_attribute_t *attr) _CUPS_API_1_6;
extern int ippGetInteger(ipp_attribute_t *attr, int element)
_CUPS_API_1_6;
extern const char *ippGetName(ipp_attribute_t *attr) _CUPS_API_1_6;
extern ipp_op_t ippGetOperation(ipp_t *ipp) _CUPS_API_1_6;
extern int ippGetRange(ipp_attribute_t *attr, int element,
int *upper) _CUPS_API_1_6;
extern int ippGetRequestId(ipp_t *ipp) _CUPS_API_1_6;
extern int ippGetResolution(ipp_attribute_t *attr, int element,
int *yres, ipp_res_t *units)
_CUPS_API_1_6;
extern ipp_state_t ippGetState(ipp_t *ipp) _CUPS_API_1_6;
extern ipp_status_t ippGetStatusCode(ipp_t *ipp) _CUPS_API_1_6;
extern const char *ippGetString(ipp_attribute_t *attr, int element,
const char **language) _CUPS_API_1_6;
extern ipp_tag_t ippGetValueTag(ipp_attribute_t *attr) _CUPS_API_1_6;
extern int ippGetVersion(ipp_t *ipp, int *minor) _CUPS_API_1_6;
extern ipp_attribute_t *ippNextAttribute(ipp_t *ipp) _CUPS_API_1_6;
extern int ippSetBoolean(ipp_t *ipp, ipp_attribute_t **attr,
int element, int boolvalue) _CUPS_API_1_6;
extern int ippSetCollection(ipp_t *ipp, ipp_attribute_t **attr,
int element, ipp_t *colvalue)
_CUPS_API_1_6;
extern int ippSetDate(ipp_t *ipp, ipp_attribute_t **attr,
int element, const ipp_uchar_t *datevalue)
_CUPS_API_1_6;
extern int ippSetGroupTag(ipp_t *ipp, ipp_attribute_t **attr,
ipp_tag_t group_tag) _CUPS_API_1_6;
extern int ippSetInteger(ipp_t *ipp, ipp_attribute_t **attr,
int element, int intvalue) _CUPS_API_1_6;
extern int ippSetName(ipp_t *ipp, ipp_attribute_t **attr,
const char *name) _CUPS_API_1_6;
extern int ippSetOperation(ipp_t *ipp, ipp_op_t op) _CUPS_API_1_6;
extern int ippSetRange(ipp_t *ipp, ipp_attribute_t **attr,
int element, int lowervalue, int uppervalue)
_CUPS_API_1_6;
extern int ippSetRequestId(ipp_t *ipp, int request_id)
_CUPS_API_1_6;
extern int ippSetResolution(ipp_t *ipp, ipp_attribute_t **attr,
int element, ipp_res_t unitsvalue,
int xresvalue, int yresvalue)
_CUPS_API_1_6;
extern int ippSetState(ipp_t *ipp, ipp_state_t state)
_CUPS_API_1_6;
extern int ippSetStatusCode(ipp_t *ipp, ipp_status_t status)
_CUPS_API_1_6;
extern int ippSetString(ipp_t *ipp, ipp_attribute_t **attr,
int element, const char *strvalue)
_CUPS_API_1_6;
extern int ippSetValueTag(ipp_t *ipp, ipp_attribute_t **attr,
ipp_tag_t value_tag) _CUPS_API_1_6;
extern int ippSetVersion(ipp_t *ipp, int major, int minor)
_CUPS_API_1_6;
/**** New in CUPS 1.7 ****/
extern ipp_attribute_t *ippAddStringf(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name,
const char *language, const char *format,
...) _CUPS_API_1_7;
extern ipp_attribute_t *ippAddStringfv(ipp_t *ipp, ipp_tag_t group,
ipp_tag_t value_tag, const char *name,
const char *language,
const char *format, va_list ap)
_CUPS_API_1_7;
extern int ippContainsInteger(ipp_attribute_t *attr, int value)
_CUPS_API_1_7;
extern int ippContainsString(ipp_attribute_t *attr,
const char *value) _CUPS_API_1_7;
extern cups_array_t *ippCreateRequestedArray(ipp_t *request) _CUPS_API_1_7;
extern void *ippGetOctetString(ipp_attribute_t *attr, int element,
int *datalen) _CUPS_API_1_7;
extern ipp_t *ippNewResponse(ipp_t *request) _CUPS_API_1_7;
extern int ippSetOctetString(ipp_t *ipp, ipp_attribute_t **attr,
int element, const void *data,
int datalen) _CUPS_API_1_7;
extern int ippSetStringf(ipp_t *ipp, ipp_attribute_t **attr,
int element, const char *format,
...) _CUPS_API_1_7;
extern int ippSetStringfv(ipp_t *ipp, ipp_attribute_t **attr,
int element, const char *format,
va_list ap) _CUPS_API_1_7;
extern int ippValidateAttribute(ipp_attribute_t *attr)
_CUPS_API_1_7;
extern int ippValidateAttributes(ipp_t *ipp) _CUPS_API_1_7;
/**** New in CUPS 2.0 ****/
extern const char *ippStateString(ipp_state_t state) _CUPS_API_2_0;
/*
* C++ magic...
*/
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_CUPS_IPP_H_ */

103
third_party/cups/include/cups/language.h поставляемый Normal file
Просмотреть файл

@ -0,0 +1,103 @@
/*
* Multi-language support for CUPS.
*
* Copyright 2007-2011 by Apple Inc.
* Copyright 1997-2006 by Easy Software Products.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
#ifndef _CUPS_LANGUAGE_H_
# define _CUPS_LANGUAGE_H_
/*
* Include necessary headers...
*/
# include <locale.h>
# include "array.h"
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* Types...
*/
typedef enum cups_encoding_e /**** Language Encodings @exclude all@ ****/
{
CUPS_AUTO_ENCODING = -1, /* Auto-detect the encoding @private@ */
CUPS_US_ASCII, /* US ASCII */
CUPS_ISO8859_1, /* ISO-8859-1 */
CUPS_ISO8859_2, /* ISO-8859-2 */
CUPS_ISO8859_3, /* ISO-8859-3 */
CUPS_ISO8859_4, /* ISO-8859-4 */
CUPS_ISO8859_5, /* ISO-8859-5 */
CUPS_ISO8859_6, /* ISO-8859-6 */
CUPS_ISO8859_7, /* ISO-8859-7 */
CUPS_ISO8859_8, /* ISO-8859-8 */
CUPS_ISO8859_9, /* ISO-8859-9 */
CUPS_ISO8859_10, /* ISO-8859-10 */
CUPS_UTF8, /* UTF-8 */
CUPS_ISO8859_13, /* ISO-8859-13 */
CUPS_ISO8859_14, /* ISO-8859-14 */
CUPS_ISO8859_15, /* ISO-8859-15 */
CUPS_WINDOWS_874, /* CP-874 */
CUPS_WINDOWS_1250, /* CP-1250 */
CUPS_WINDOWS_1251, /* CP-1251 */
CUPS_WINDOWS_1252, /* CP-1252 */
CUPS_WINDOWS_1253, /* CP-1253 */
CUPS_WINDOWS_1254, /* CP-1254 */
CUPS_WINDOWS_1255, /* CP-1255 */
CUPS_WINDOWS_1256, /* CP-1256 */
CUPS_WINDOWS_1257, /* CP-1257 */
CUPS_WINDOWS_1258, /* CP-1258 */
CUPS_KOI8_R, /* KOI-8-R */
CUPS_KOI8_U, /* KOI-8-U */
CUPS_ISO8859_11, /* ISO-8859-11 */
CUPS_ISO8859_16, /* ISO-8859-16 */
CUPS_MAC_ROMAN, /* MacRoman */
CUPS_ENCODING_SBCS_END = 63, /* End of single-byte encodings @private@ */
CUPS_WINDOWS_932, /* Japanese JIS X0208-1990 */
CUPS_WINDOWS_936, /* Simplified Chinese GB 2312-80 */
CUPS_WINDOWS_949, /* Korean KS C5601-1992 */
CUPS_WINDOWS_950, /* Traditional Chinese Big Five */
CUPS_WINDOWS_1361, /* Korean Johab */
CUPS_ENCODING_DBCS_END = 127, /* End of double-byte encodings @private@ */
CUPS_EUC_CN, /* EUC Simplified Chinese */
CUPS_EUC_JP, /* EUC Japanese */
CUPS_EUC_KR, /* EUC Korean */
CUPS_EUC_TW, /* EUC Traditional Chinese */
CUPS_JIS_X0213, /* JIS X0213 aka Shift JIS */
CUPS_ENCODING_VBCS_END = 191 /* End of variable-length encodings @private@ */
} cups_encoding_t;
typedef struct cups_lang_s /**** Language Cache Structure ****/
{
struct cups_lang_s *next; /* Next language in cache */
int used; /* Number of times this entry has been used. */
cups_encoding_t encoding; /* Text encoding */
char language[16]; /* Language/locale name */
cups_array_t *strings; /* Message strings @private@ */
} cups_lang_t;
/*
* Prototypes...
*/
extern cups_lang_t *cupsLangDefault(void) _CUPS_PUBLIC;
extern const char *cupsLangEncoding(cups_lang_t *lang) _CUPS_PUBLIC;
extern void cupsLangFlush(void) _CUPS_PUBLIC;
extern void cupsLangFree(cups_lang_t *lang) _CUPS_PUBLIC;
extern cups_lang_t *cupsLangGet(const char *language) _CUPS_PUBLIC;
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_CUPS_LANGUAGE_H_ */

82
third_party/cups/include/cups/pwg.h поставляемый Normal file
Просмотреть файл

@ -0,0 +1,82 @@
/*
* PWG media API definitions for CUPS.
*
* Copyright 2009-2017 by Apple Inc.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more information.
*/
#ifndef _CUPS_PWG_H_
# define _CUPS_PWG_H_
/*
* C++ magic...
*/
# ifdef __cplusplus
extern "C" {
# endif /* __cplusplus */
/*
* Macros...
*/
/* Convert from points to hundredths of millimeters */
# define PWG_FROM_POINTS(n) (int)(((n) * 2540 + 36) / 72)
/* Convert from hundredths of millimeters to points */
# define PWG_TO_POINTS(n) ((n) * 72.0 / 2540.0)
/*
* Types and structures...
*/
typedef struct pwg_map_s /**** Map element - PPD to/from PWG @exclude all@ */
{
char *pwg, /* PWG media keyword */
*ppd; /* PPD option keyword */
} pwg_map_t;
typedef struct pwg_media_s /**** Common media size data ****/
{
const char *pwg, /* PWG 5101.1 "self describing" name */
*legacy, /* IPP/ISO legacy name */
*ppd; /* Standard Adobe PPD name */
int width, /* Width in 2540ths */
length; /* Length in 2540ths */
} pwg_media_t;
typedef struct pwg_size_s /**** Size element - PPD to/from PWG @exclude all@ */
{
pwg_map_t map; /* Map element */
int width, /* Width in 2540ths */
length, /* Length in 2540ths */
left, /* Left margin in 2540ths */
bottom, /* Bottom margin in 2540ths */
right, /* Right margin in 2540ths */
top; /* Top margin in 2540ths */
} pwg_size_t;
/*
* Functions...
*/
extern int pwgFormatSizeName(char *keyword, size_t keysize,
const char *prefix, const char *name,
int width, int length,
const char *units) _CUPS_API_1_7;
extern int pwgInitSize(pwg_size_t *size, ipp_t *job,
int *margins_set) _CUPS_API_1_7;
extern pwg_media_t *pwgMediaForLegacy(const char *legacy) _CUPS_API_1_7;
extern pwg_media_t *pwgMediaForPPD(const char *ppd) _CUPS_API_1_7;
extern pwg_media_t *pwgMediaForPWG(const char *pwg) _CUPS_API_1_7;
extern pwg_media_t *pwgMediaForSize(int width, int length) _CUPS_API_1_7;
# ifdef __cplusplus
}
# endif /* __cplusplus */
#endif /* !_CUPS_PWG_H_ */

267
third_party/cups/include/cups/versioning.h поставляемый Normal file
Просмотреть файл

@ -0,0 +1,267 @@
/*
* API versioning definitions for CUPS.
*
* Copyright © 2007-2019 by Apple Inc.
*
* Licensed under Apache License v2.0. See the file "LICENSE" for more
* information.
*/
#ifndef _CUPS_VERSIONING_H_
# define _CUPS_VERSIONING_H_
/*
* This header defines several macros that add compiler-specific attributes for
* functions:
*
* - _CUPS_API_major_minor[_patch]: Specifies when an API became available by
* CUPS version.
* - _CUPS_DEPRECATED: Function is deprecated with no replacement.
* - _CUPS_DEPRECATED_MSG("message"): Function is deprecated and has a
* replacement.
* - _CUPS_FORMAT(format-index, additional-args-index): Function has a
* printf-style format argument followed by zero or more additional
* arguments. Indices start at 1.
* - _CUPS_INTERNAL: Function is internal with no replacement API.
* - _CUPS_INTERNAL_MSG("msg"): Function is internal - use specified API
* instead.
* - _CUPS_NONNULL((arg list)): Specifies the comma-separated argument indices
* are assumed non-NULL. Indices start at 1.
* - _CUPS_NORETURN: Specifies the function does not return.
* - _CUPS_PRIVATE: Specifies the function is private to CUPS.
* - _CUPS_PUBLIC: Specifies the function is public API.
*/
/*
* Determine which compiler is being used and what annotation features are
* available...
*/
# ifdef __APPLE__
# include <os/availability.h>
# endif /* __APPLE__ */
# ifdef __has_extension /* Clang */
# define _CUPS_HAS_DEPRECATED
# define _CUPS_HAS_FORMAT
# define _CUPS_HAS_NORETURN
# define _CUPS_HAS_VISIBILITY
# if __has_extension(attribute_deprecated_with_message)
# define _CUPS_HAS_DEPRECATED_WITH_MESSAGE
# endif
# if __has_extension(attribute_unavailable_with_message)
# define _CUPS_HAS_UNAVAILABLE_WITH_MESSAGE
# endif
# elif defined(__GNUC__) /* GCC and compatible */
# if __GNUC__ >= 3 /* GCC 3.0 or higher */
# define _CUPS_HAS_DEPRECATED
# define _CUPS_HAS_FORMAT
# define _CUPS_HAS_NORETURN
# define _CUPS_HAS_VISIBILITY
# endif /* __GNUC__ >= 3 */
# if __GNUC__ >= 5 /* GCC 5.x */
# define _CUPS_HAS_DEPRECATED_WITH_MESSAGE
# elif __GNUC__ == 4 && __GNUC_MINOR__ >= 5
/* GCC 4.5 or higher */
# define _CUPS_HAS_DEPRECATED_WITH_MESSAGE
# endif /* __GNUC__ >= 5 */
# elif defined(_WIN32)
# define __attribute__(...)
# endif /* __has_extension */
/*
* Define _CUPS_INTERNAL, _CUPS_PRIVATE, and _CUPS_PUBLIC visibilty macros for
* internal/private/public functions...
*/
# ifdef _CUPS_HAS_VISIBILITY
# define _CUPS_INTERNAL __attribute__ ((visibility("hidden")))
# define _CUPS_PRIVATE __attribute__ ((visibility("default")))
# define _CUPS_PUBLIC __attribute__ ((visibility("default")))
# elif defined(_WIN32) && defined(LIBCUPS2_EXPORTS) && 0
# define _CUPS_INTERNAL
# define _CUPS_PRIVATE __declspec(dllexport)
# define _CUPS_PUBLIC __declspec(dllexport)
# else
# define _CUPS_INTERNAL
# define _CUPS_PRIVATE
# define _CUPS_PUBLIC
# endif /* _CUPS_HAS_VISIBILITY */
/*
* Define _CUPS_API_major_minor[_patch] availability macros for CUPS.
*
* Note: Using any of the _CUPS_API macros automatically adds _CUPS_PUBLIC.
*/
# if defined(__APPLE__) && !defined(_CUPS_SOURCE) && TARGET_OS_OSX
/*
* On Apple operating systems, the _CUPS_API_* constants are defined using the
* API_ macros in <os/availability.h>.
*
* On iOS, we don't actually have libcups available directly, but the supplied
* libcups_static target in the Xcode project supports building on iOS 11.0 and
* later.
*/
# define _CUPS_API_1_1_19 API_AVAILABLE(macos(10.3), ios(11.0)) _CUPS_PUBLIC
# define _CUPS_API_1_1_20 API_AVAILABLE(macos(10.4), ios(11.0)) _CUPS_PUBLIC
# define _CUPS_API_1_1_21 API_AVAILABLE(macos(10.4), ios(11.0)) _CUPS_PUBLIC
# define _CUPS_API_1_2 API_AVAILABLE(macos(10.5), ios(11.0)) _CUPS_PUBLIC
# define _CUPS_API_1_3 API_AVAILABLE(macos(10.5), ios(11.0)) _CUPS_PUBLIC
# define _CUPS_API_1_4 API_AVAILABLE(macos(10.6), ios(11.0)) _CUPS_PUBLIC
# define _CUPS_API_1_5 API_AVAILABLE(macos(10.7), ios(11.0)) _CUPS_PUBLIC
# define _CUPS_API_1_6 API_AVAILABLE(macos(10.8), ios(11.0)) _CUPS_PUBLIC
# define _CUPS_API_1_7 API_AVAILABLE(macos(10.9), ios(11.0)) _CUPS_PUBLIC
# define _CUPS_API_2_0 API_AVAILABLE(macos(10.10), ios(11.0)) _CUPS_PUBLIC
# define _CUPS_API_2_2 API_AVAILABLE(macos(10.12), ios(11.0)) _CUPS_PUBLIC
# define _CUPS_API_2_2_4 API_AVAILABLE(macos(10.13), ios(12.0)) _CUPS_PUBLIC
# define _CUPS_API_2_2_7 API_AVAILABLE(macos(10.14), ios(13.0)) _CUPS_PUBLIC
# define _CUPS_API_2_3 API_AVAILABLE(macos(10.14), ios(13.0)) _CUPS_PUBLIC
# else
# define _CUPS_API_1_1_19 _CUPS_PUBLIC
# define _CUPS_API_1_1_20 _CUPS_PUBLIC
# define _CUPS_API_1_1_21 _CUPS_PUBLIC
# define _CUPS_API_1_2 _CUPS_PUBLIC
# define _CUPS_API_1_3 _CUPS_PUBLIC
# define _CUPS_API_1_4 _CUPS_PUBLIC
# define _CUPS_API_1_5 _CUPS_PUBLIC
# define _CUPS_API_1_6 _CUPS_PUBLIC
# define _CUPS_API_1_7 _CUPS_PUBLIC
# define _CUPS_API_2_0 _CUPS_PUBLIC
# define _CUPS_API_2_2 _CUPS_PUBLIC
# define _CUPS_API_2_2_4 _CUPS_PUBLIC
# define _CUPS_API_2_2_7 _CUPS_PUBLIC
# define _CUPS_API_2_3 _CUPS_PUBLIC
# endif /* __APPLE__ && !_CUPS_SOURCE */
/*
* Define _CUPS_DEPRECATED and _CUPS_INTERNAL macros to mark old APIs as
* "deprecated" or "unavailable" with messages so you get warnings/errors are
* compile-time...
*
* Note: Using any of the _CUPS_DEPRECATED macros automatically adds
* _CUPS_PUBLIC.
*/
# if !defined(_CUPS_HAS_DEPRECATED) || (defined(_CUPS_SOURCE) && !defined(_CUPS_NO_DEPRECATED))
/*
* Don't mark functions deprecated if the compiler doesn't support it
* or we are building CUPS source that doesn't care.
*/
# define _CUPS_DEPRECATED _CUPS_PUBLIC
# define _CUPS_DEPRECATED_MSG(m) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_2_MSG(m) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_6_MSG(m) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_7_MSG(m) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_2_2_MSG(m) _CUPS_PUBLIC
# elif defined(__APPLE__) && defined(_CUPS_NO_DEPRECATED)
/*
* Compiler supports the unavailable attribute, so use it when the code
* wants to exclude the use of deprecated API.
*/
# define _CUPS_DEPRECATED __attribute__ ((unavailable)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_2_MSG(m) API_DEPRECATED(m, macos(10.2,10.5), ios(11.0,11.0)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_6_MSG(m) API_DEPRECATED(m, macos(10.2,10.8), ios(11.0,11.0)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_7_MSG(m) API_DEPRECATED(m, macos(10.2,10.9), ios(11.0,11.0)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_2_2_MSG(m) API_DEPRECATED(m, macos(10.2,10.12), ios(11.0,11.0)) _CUPS_PUBLIC
# elif defined(__APPLE__)
/*
* Just mark things as deprecated...
*/
# define _CUPS_DEPRECATED __attribute__ ((deprecated)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_2_MSG(m) API_DEPRECATED(m, macos(10.2,10.5), ios(11.0,11.0)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_6_MSG(m) API_DEPRECATED(m, macos(10.2,10.8), ios(11.0,11.0)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_7_MSG(m) API_DEPRECATED(m, macos(10.2,10.9), ios(11.0,11.0)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_2_2_MSG(m) API_DEPRECATED(m, macos(10.2,10.12), ios(11.0,11.0)) _CUPS_PUBLIC
# elif defined(_CUPS_HAS_UNAVAILABLE_WITH_MESSAGE) && defined(_CUPS_NO_DEPRECATED)
/*
* Compiler supports the unavailable attribute, so use it when the code
* wants to exclude the use of deprecated API.
*/
# define _CUPS_DEPRECATED __attribute__ ((unavailable)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_2_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_6_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_7_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_2_2_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC
# else
/*
* Compiler supports the deprecated attribute, so use it.
*/
# define _CUPS_DEPRECATED __attribute__ ((deprecated)) _CUPS_PUBLIC
# ifdef _CUPS_HAS_DEPRECATED_WITH_MESSAGE
# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_2_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_6_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_7_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_2_2_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC
# else
# define _CUPS_DEPRECATED_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_2_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_6_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_1_7_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC
# define _CUPS_DEPRECATED_2_2_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC
# endif /* _CUPS_HAS_DEPRECATED_WITH_MESSAGE */
# endif /* !_CUPS_HAS_DEPRECATED || (_CUPS_SOURCE && !_CUPS_NO_DEPRECATED) */
/*
* Define _CUPS_FORMAT macro for printf-style functions...
*/
# ifdef _CUPS_HAS_FORMAT
# define _CUPS_FORMAT(a,b) __attribute__ ((__format__(__printf__, a,b)))
# else
# define _CUPS_FORMAT(a,b)
# endif /* _CUPS_HAS_FORMAT */
/*
* Define _CUPS_INTERNAL_MSG macro for private APIs that have (historical)
* public visibility.
*
* Note: Using the _CUPS_INTERNAL_MSG macro automatically adds _CUPS_PUBLIC.
*/
# ifdef _CUPS_SOURCE
# define _CUPS_INTERNAL_MSG(m) _CUPS_PUBLIC
# elif defined(_CUPS_HAS_UNAVAILABLE_WITH_MESSAGE)
# define _CUPS_INTERNAL_MSG(m) __attribute__ ((unavailable(m))) _CUPS_PUBLIC
# elif defined(_CUPS_HAS_DEPRECATED_WITH_MESSAGE)
# define _CUPS_INTERNAL_MSG(m) __attribute__ ((deprecated(m))) _CUPS_PUBLIC
# else
# define _CUPS_INTERNAL_MSG(m) __attribute__ ((deprecated)) _CUPS_PUBLIC
# endif /* _CUPS_SOURCE */
/*
* Define _CUPS_NONNULL macro for functions that don't expect non-null
* arguments...
*/
# ifdef _CUPS_HAS_NONNULL
# define _CUPS_NONNULL(...) __attribute__ ((nonnull(__VA_ARGS__)))
# else
# define _CUPS_NONNULL(...)
# endif /* _CUPS_HAS_FORMAT */
/*
* Define _CUPS_NORETURN macro for functions that don't return.
*/
# ifdef _CUPS_HAS_NORETURN
# define _CUPS_NORETURN __attribute__ ((noreturn))
# else
# define _CUPS_NORETURN
# endif /* _CUPS_HAS_NORETURN */
#endif /* !_CUPS_VERSIONING_H_ */

27
third_party/cups/update.sh поставляемый Executable file
Просмотреть файл

@ -0,0 +1,27 @@
#!/bin/sh
# Script to update the mozilla in-tree copy of CUPS headers
# Run this within the /third_party/cups directory of the source tree.
MY_TEMP_DIR=`mktemp -d -t cups_update.XXXXXX` || exit 1
COMMIT='82e3ee0e3230287b76a76fb8f16b92ca6e50b444'
FILES='cups/cups.h cups/array.h cups/file.h cups/http.h cups/ipp.h cups/language.h cups/pwg.h cups/versioning.h'
git clone git://github.com/apple/cups.git "$MY_TEMP_DIR" --depth 1
git -C "$MY_TEMP_DIR" fetch origin "$COMMIT"
git -C "$MY_TEMP_DIR" reset --hard "$COMMIT"
mkdir -p include/cups 2> /dev/null
rm -rf include/cups/*
for FILE in $FILES ; do
mv "$MY_TEMP_DIR/$FILE" "include/$FILE"
done
rm -rf "$MY_TEMP_DIR"
echo "###"
echo "### Updated cups to $COMMIT."
echo "### Remember to verify and commit the changes to source control!"
echo "###"

3
third_party/moz.build поставляемый
Просмотреть файл

@ -7,6 +7,9 @@ with Files('moz.build'):
with Files('aom/**'):
BUG_COMPONENT = ('Core', 'Audio/Video: Playback')
with Files('cups/**'):
BUG_COMPONENT = ('Core', 'Printing: Setup')
with Files('dav1d/**'):
BUG_COMPONENT = ('Core', 'Audio/Video: Playback')

Просмотреть файл

@ -2247,6 +2247,7 @@ licences.
<code>devtools/client/netmonitor/src/components/messages/parsers/signalr/JSONHubProtocol.js</code><br/>
<code>devtools/client/netmonitor/src/components/messages/parsers/signalr/TextMessageFormat.js</code><br/>
<code>devtools/client/netmonitor/src/components/messages/parsers/signalr/Utils.js</code><br/>
<code>third_party/cups/include</code><br/>
</p>
<pre>

Просмотреть файл

@ -137,6 +137,7 @@ LOCAL_INCLUDES += [
'/layout/generic',
'/layout/xul',
'/other-licenses/atk-1.0',
'/third_party/cups/include',
'/widget',
'/widget/headless',
]

Просмотреть файл

@ -318,6 +318,12 @@ LOCAL_INCLUDES += [
'/widget/headless',
]
# We use the CUPS headers on Cocoa and GTK, but on GTK we don't depend on there being system headers.
if toolkit == 'gtk':
LOCAL_INCLUDES += [
'/third_party/cups/include'
]
if toolkit == 'windows':
IPDL_SOURCES = [
'headless/HeadlessWidgetTypes.ipdlh',