xref: /aosp_15_r20/external/libcups/doc/help/cupspm.html (revision 5e7646d21f1134fb0638875d812ef646c12ab91e)
1*5e7646d2SAndroid Build Coastguard Worker<!DOCTYPE html>
2*5e7646d2SAndroid Build Coastguard Worker<html>
3*5e7646d2SAndroid Build Coastguard Worker<!-- SECTION: Programming -->
4*5e7646d2SAndroid Build Coastguard Worker  <head>
5*5e7646d2SAndroid Build Coastguard Worker    <title>CUPS Programming Manual</title>
6*5e7646d2SAndroid Build Coastguard Worker    <meta name="keywords" content="Programming">
7*5e7646d2SAndroid Build Coastguard Worker    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
8*5e7646d2SAndroid Build Coastguard Worker    <meta name="creator" content="codedoc v3.1">
9*5e7646d2SAndroid Build Coastguard Worker    <meta name="author" content="Michael R Sweet">
10*5e7646d2SAndroid Build Coastguard Worker    <meta name="copyright" content="Copyright &#xa9; 2007-2022 by Apple Inc. All Rights Reserved.">
11*5e7646d2SAndroid Build Coastguard Worker    <meta name="version" content="2.3.6">
12*5e7646d2SAndroid Build Coastguard Worker    <style type="text/css"><!--
13*5e7646d2SAndroid Build Coastguard Workerbody, p, h1, h2, h3, h4 {
14*5e7646d2SAndroid Build Coastguard Worker  font-family: sans-serif;
15*5e7646d2SAndroid Build Coastguard Worker}
16*5e7646d2SAndroid Build Coastguard Workerdiv.body h1 {
17*5e7646d2SAndroid Build Coastguard Worker  font-size: 250%;
18*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
19*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
20*5e7646d2SAndroid Build Coastguard Worker}
21*5e7646d2SAndroid Build Coastguard Workerdiv.body h2 {
22*5e7646d2SAndroid Build Coastguard Worker  font-size: 250%;
23*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
24*5e7646d2SAndroid Build Coastguard Worker}
25*5e7646d2SAndroid Build Coastguard Workerdiv.body h3 {
26*5e7646d2SAndroid Build Coastguard Worker  font-size: 150%;
27*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0.5em;
28*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
29*5e7646d2SAndroid Build Coastguard Worker}
30*5e7646d2SAndroid Build Coastguard Workerdiv.body h4 {
31*5e7646d2SAndroid Build Coastguard Worker  font-size: 110%;
32*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0.5em;
33*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
34*5e7646d2SAndroid Build Coastguard Worker}
35*5e7646d2SAndroid Build Coastguard Workerdiv.body h5 {
36*5e7646d2SAndroid Build Coastguard Worker  font-size: 100%;
37*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0.5em;
38*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
39*5e7646d2SAndroid Build Coastguard Worker}
40*5e7646d2SAndroid Build Coastguard Workerdiv.contents {
41*5e7646d2SAndroid Build Coastguard Worker  background: #e8e8e8;
42*5e7646d2SAndroid Build Coastguard Worker  border: solid thin black;
43*5e7646d2SAndroid Build Coastguard Worker  padding: 10px;
44*5e7646d2SAndroid Build Coastguard Worker}
45*5e7646d2SAndroid Build Coastguard Workerdiv.contents h1 {
46*5e7646d2SAndroid Build Coastguard Worker  font-size: 110%;
47*5e7646d2SAndroid Build Coastguard Worker}
48*5e7646d2SAndroid Build Coastguard Workerdiv.contents h2 {
49*5e7646d2SAndroid Build Coastguard Worker  font-size: 100%;
50*5e7646d2SAndroid Build Coastguard Worker}
51*5e7646d2SAndroid Build Coastguard Workerdiv.contents ul.contents {
52*5e7646d2SAndroid Build Coastguard Worker  font-size: 80%;
53*5e7646d2SAndroid Build Coastguard Worker}
54*5e7646d2SAndroid Build Coastguard Worker.class {
55*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
56*5e7646d2SAndroid Build Coastguard Worker}
57*5e7646d2SAndroid Build Coastguard Worker.constants {
58*5e7646d2SAndroid Build Coastguard Worker}
59*5e7646d2SAndroid Build Coastguard Worker.description {
60*5e7646d2SAndroid Build Coastguard Worker  margin-top: 0.5em;
61*5e7646d2SAndroid Build Coastguard Worker}
62*5e7646d2SAndroid Build Coastguard Worker.discussion {
63*5e7646d2SAndroid Build Coastguard Worker}
64*5e7646d2SAndroid Build Coastguard Worker.enumeration {
65*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
66*5e7646d2SAndroid Build Coastguard Worker}
67*5e7646d2SAndroid Build Coastguard Worker.function {
68*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
69*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0;
70*5e7646d2SAndroid Build Coastguard Worker}
71*5e7646d2SAndroid Build Coastguard Worker.members {
72*5e7646d2SAndroid Build Coastguard Worker}
73*5e7646d2SAndroid Build Coastguard Worker.method {
74*5e7646d2SAndroid Build Coastguard Worker}
75*5e7646d2SAndroid Build Coastguard Worker.parameters {
76*5e7646d2SAndroid Build Coastguard Worker}
77*5e7646d2SAndroid Build Coastguard Worker.returnvalue {
78*5e7646d2SAndroid Build Coastguard Worker}
79*5e7646d2SAndroid Build Coastguard Worker.struct {
80*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
81*5e7646d2SAndroid Build Coastguard Worker}
82*5e7646d2SAndroid Build Coastguard Worker.typedef {
83*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
84*5e7646d2SAndroid Build Coastguard Worker}
85*5e7646d2SAndroid Build Coastguard Worker.union {
86*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
87*5e7646d2SAndroid Build Coastguard Worker}
88*5e7646d2SAndroid Build Coastguard Worker.variable {
89*5e7646d2SAndroid Build Coastguard Worker}
90*5e7646d2SAndroid Build Coastguard Workerh1, h2, h3, h4, h5, h6 {
91*5e7646d2SAndroid Build Coastguard Worker  page-break-inside: avoid;
92*5e7646d2SAndroid Build Coastguard Worker}
93*5e7646d2SAndroid Build Coastguard Workerblockquote {
94*5e7646d2SAndroid Build Coastguard Worker  border: solid thin gray;
95*5e7646d2SAndroid Build Coastguard Worker  box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
96*5e7646d2SAndroid Build Coastguard Worker  padding: 0px 10px;
97*5e7646d2SAndroid Build Coastguard Worker  page-break-inside: avoid;
98*5e7646d2SAndroid Build Coastguard Worker}
99*5e7646d2SAndroid Build Coastguard Workerp code, li code, p.code, pre, ul.code li {
100*5e7646d2SAndroid Build Coastguard Worker  background: rgba(127,127,127,0.1);
101*5e7646d2SAndroid Build Coastguard Worker  border: thin dotted gray;
102*5e7646d2SAndroid Build Coastguard Worker  font-family: monospace;
103*5e7646d2SAndroid Build Coastguard Worker  font-size: 90%;
104*5e7646d2SAndroid Build Coastguard Worker  hyphens: manual;
105*5e7646d2SAndroid Build Coastguard Worker  -webkit-hyphens: manual;
106*5e7646d2SAndroid Build Coastguard Worker  page-break-inside: avoid;
107*5e7646d2SAndroid Build Coastguard Worker}
108*5e7646d2SAndroid Build Coastguard Workerp.code, pre, ul.code li {
109*5e7646d2SAndroid Build Coastguard Worker  padding: 10px;
110*5e7646d2SAndroid Build Coastguard Worker}
111*5e7646d2SAndroid Build Coastguard Workerp code, li code {
112*5e7646d2SAndroid Build Coastguard Worker  padding: 2px 5px;
113*5e7646d2SAndroid Build Coastguard Worker}
114*5e7646d2SAndroid Build Coastguard Workera:link, a:visited {
115*5e7646d2SAndroid Build Coastguard Worker  text-decoration: none;
116*5e7646d2SAndroid Build Coastguard Worker}
117*5e7646d2SAndroid Build Coastguard Workerspan.info {
118*5e7646d2SAndroid Build Coastguard Worker  background: black;
119*5e7646d2SAndroid Build Coastguard Worker  border: solid thin black;
120*5e7646d2SAndroid Build Coastguard Worker  color: white;
121*5e7646d2SAndroid Build Coastguard Worker  font-size: 80%;
122*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
123*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
124*5e7646d2SAndroid Build Coastguard Worker  white-space: nowrap;
125*5e7646d2SAndroid Build Coastguard Worker}
126*5e7646d2SAndroid Build Coastguard Workerh3 span.info, h4 span.info {
127*5e7646d2SAndroid Build Coastguard Worker  border-top-left-radius: 10px;
128*5e7646d2SAndroid Build Coastguard Worker  border-top-right-radius: 10px;
129*5e7646d2SAndroid Build Coastguard Worker  float: right;
130*5e7646d2SAndroid Build Coastguard Worker  padding: 3px 6px;
131*5e7646d2SAndroid Build Coastguard Worker}
132*5e7646d2SAndroid Build Coastguard Workerul.code, ul.contents, ul.subcontents {
133*5e7646d2SAndroid Build Coastguard Worker  list-style-type: none;
134*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
135*5e7646d2SAndroid Build Coastguard Worker  padding-left: 0;
136*5e7646d2SAndroid Build Coastguard Worker}
137*5e7646d2SAndroid Build Coastguard Workerul.code li {
138*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
139*5e7646d2SAndroid Build Coastguard Worker}
140*5e7646d2SAndroid Build Coastguard Workerul.contents > li {
141*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1em;
142*5e7646d2SAndroid Build Coastguard Worker}
143*5e7646d2SAndroid Build Coastguard Workerul.contents li ul.code, ul.contents li ul.subcontents {
144*5e7646d2SAndroid Build Coastguard Worker  padding-left: 2em;
145*5e7646d2SAndroid Build Coastguard Worker}
146*5e7646d2SAndroid Build Coastguard Workertable.list {
147*5e7646d2SAndroid Build Coastguard Worker  border-collapse: collapse;
148*5e7646d2SAndroid Build Coastguard Worker  width: 100%;
149*5e7646d2SAndroid Build Coastguard Worker}
150*5e7646d2SAndroid Build Coastguard Workertable.list tr:nth-child(even) {
151*5e7646d2SAndroid Build Coastguard Worker  background: rgba(127,127,127,0.1);]n}
152*5e7646d2SAndroid Build Coastguard Workertable.list th {
153*5e7646d2SAndroid Build Coastguard Worker  border-right: 2px solid gray;
154*5e7646d2SAndroid Build Coastguard Worker  font-family: monospace;
155*5e7646d2SAndroid Build Coastguard Worker  padding: 5px 10px 5px 2px;
156*5e7646d2SAndroid Build Coastguard Worker  text-align: right;
157*5e7646d2SAndroid Build Coastguard Worker  vertical-align: top;
158*5e7646d2SAndroid Build Coastguard Worker}
159*5e7646d2SAndroid Build Coastguard Workertable.list td {
160*5e7646d2SAndroid Build Coastguard Worker  padding: 5px 2px 5px 10px;
161*5e7646d2SAndroid Build Coastguard Worker  text-align: left;
162*5e7646d2SAndroid Build Coastguard Worker  vertical-align: top;
163*5e7646d2SAndroid Build Coastguard Worker}
164*5e7646d2SAndroid Build Coastguard Workerh1.title {
165*5e7646d2SAndroid Build Coastguard Worker}
166*5e7646d2SAndroid Build Coastguard Workerh2.title {
167*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px black;
168*5e7646d2SAndroid Build Coastguard Worker}
169*5e7646d2SAndroid Build Coastguard Workerh3.title {
170*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px black;
171*5e7646d2SAndroid Build Coastguard Worker}
172*5e7646d2SAndroid Build Coastguard Worker--></style>
173*5e7646d2SAndroid Build Coastguard Worker  </head>
174*5e7646d2SAndroid Build Coastguard Worker  <body>
175*5e7646d2SAndroid Build Coastguard Worker    <h1 class="title">CUPS Programming Manual</h1>
176*5e7646d2SAndroid Build Coastguard Worker    <p>Michael R Sweet</p>
177*5e7646d2SAndroid Build Coastguard Worker    <p>Copyright &#xa9; 2007-2020 by Apple Inc. All Rights Reserved.</p>
178*5e7646d2SAndroid Build Coastguard Worker    <div class="contents">
179*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title">Contents</h2>
180*5e7646d2SAndroid Build Coastguard Worker      <ul class="contents">
181*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#introduction">Introduction</a><ul class="subcontents">
182*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#guidelines">Guidelines</a></li>
183*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#terms-used-in-this-document">Terms Used in This Document</a></li>
184*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#compiling-programs-that-use-the-cups-api">Compiling Programs That Use the CUPS API</a></li>
185*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
186*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#working-with-destinations">Working with Destinations</a><ul class="subcontents">
187*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#finding-available-destinations">Finding Available Destinations</a></li>
188*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#basic-destination-information">Basic Destination Information</a></li>
189*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#detailed-destination-information">Detailed Destination Information</a></li>
190*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#submitting-a-print-job">Submitting a Print Job</a></li>
191*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
192*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#sending-ipp-requests">Sending IPP Requests</a><ul class="subcontents">
193*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#connecting-to-the-scheduler-or-printer">Connecting to the Scheduler or Printer</a></li>
194*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#creating-an-ipp-request">Creating an IPP Request</a></li>
195*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#sending-the-ipp-request">Sending the IPP Request</a></li>
196*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#processing-the-ipp-response">Processing the IPP Response</a></li>
197*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#authentication">Authentication</a></li>
198*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
199*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#FUNCTIONS">Functions</a><ul class="subcontents">
200*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsAddDest">cupsAddDest</a></li>
201*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsAddDestMediaOptions">cupsAddDestMediaOptions</a></li>
202*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsAddIntegerOption">cupsAddIntegerOption</a></li>
203*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsAddOption">cupsAddOption</a></li>
204*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsCancelDestJob">cupsCancelDestJob</a></li>
205*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsCheckDestSupported">cupsCheckDestSupported</a></li>
206*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsCloseDestJob">cupsCloseDestJob</a></li>
207*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsConnectDest">cupsConnectDest</a></li>
208*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsCopyDest">cupsCopyDest</a></li>
209*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsCopyDestConflicts">cupsCopyDestConflicts</a></li>
210*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsCopyDestInfo">cupsCopyDestInfo</a></li>
211*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsCreateDestJob">cupsCreateDestJob</a></li>
212*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsDoAuthentication">cupsDoAuthentication</a></li>
213*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsEncodeOption">cupsEncodeOption</a></li>
214*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsEncodeOptions">cupsEncodeOptions</a></li>
215*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsEncodeOptions2">cupsEncodeOptions2</a></li>
216*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsEncryption">cupsEncryption</a></li>
217*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsEnumDests">cupsEnumDests</a></li>
218*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsFindDestDefault">cupsFindDestDefault</a></li>
219*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsFindDestReady">cupsFindDestReady</a></li>
220*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsFindDestSupported">cupsFindDestSupported</a></li>
221*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsFinishDestDocument">cupsFinishDestDocument</a></li>
222*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsFreeDestInfo">cupsFreeDestInfo</a></li>
223*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsFreeDests">cupsFreeDests</a></li>
224*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsFreeJobs">cupsFreeJobs</a></li>
225*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsFreeOptions">cupsFreeOptions</a></li>
226*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetDest">cupsGetDest</a></li>
227*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetDestMediaByIndex">cupsGetDestMediaByIndex</a></li>
228*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetDestMediaByName">cupsGetDestMediaByName</a></li>
229*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetDestMediaBySize">cupsGetDestMediaBySize</a></li>
230*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetDestMediaCount">cupsGetDestMediaCount</a></li>
231*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetDestMediaDefault">cupsGetDestMediaDefault</a></li>
232*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetDestWithURI">cupsGetDestWithURI</a></li>
233*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetDests2">cupsGetDests2</a></li>
234*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetIntegerOption">cupsGetIntegerOption</a></li>
235*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetJobs2">cupsGetJobs2</a></li>
236*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetNamedDest">cupsGetNamedDest</a></li>
237*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetOption">cupsGetOption</a></li>
238*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetPassword2">cupsGetPassword2</a></li>
239*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsLocalizeDestMedia">cupsLocalizeDestMedia</a></li>
240*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsLocalizeDestOption">cupsLocalizeDestOption</a></li>
241*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsLocalizeDestValue">cupsLocalizeDestValue</a></li>
242*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsMakeServerCredentials">cupsMakeServerCredentials</a></li>
243*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsParseOptions">cupsParseOptions</a></li>
244*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsRemoveDest">cupsRemoveDest</a></li>
245*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsRemoveOption">cupsRemoveOption</a></li>
246*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsServer">cupsServer</a></li>
247*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsSetClientCertCB">cupsSetClientCertCB</a></li>
248*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsSetCredentials">cupsSetCredentials</a></li>
249*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsSetDefaultDest">cupsSetDefaultDest</a></li>
250*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsSetDests2">cupsSetDests2</a></li>
251*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsSetEncryption">cupsSetEncryption</a></li>
252*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsSetPasswordCB2">cupsSetPasswordCB2</a></li>
253*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsSetServer">cupsSetServer</a></li>
254*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsSetServerCertCB">cupsSetServerCertCB</a></li>
255*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsSetServerCredentials">cupsSetServerCredentials</a></li>
256*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsSetUser">cupsSetUser</a></li>
257*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsSetUserAgent">cupsSetUserAgent</a></li>
258*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsStartDestDocument">cupsStartDestDocument</a></li>
259*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsUser">cupsUser</a></li>
260*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsUserAgent">cupsUserAgent</a></li>
261*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAcceptConnection">httpAcceptConnection</a></li>
262*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddCredential">httpAddCredential</a></li>
263*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrAny">httpAddrAny</a></li>
264*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrClose">httpAddrClose</a></li>
265*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrConnect2">httpAddrConnect2</a></li>
266*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrCopyList">httpAddrCopyList</a></li>
267*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrEqual">httpAddrEqual</a></li>
268*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrFamily">httpAddrFamily</a></li>
269*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrFreeList">httpAddrFreeList</a></li>
270*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrGetList">httpAddrGetList</a></li>
271*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrLength">httpAddrLength</a></li>
272*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrListen">httpAddrListen</a></li>
273*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrLocalhost">httpAddrLocalhost</a></li>
274*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrLookup">httpAddrLookup</a></li>
275*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrPort">httpAddrPort</a></li>
276*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAddrString">httpAddrString</a></li>
277*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAssembleURI">httpAssembleURI</a></li>
278*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAssembleURIf">httpAssembleURIf</a></li>
279*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpAssembleUUID">httpAssembleUUID</a></li>
280*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpBlocking">httpBlocking</a></li>
281*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpCheck">httpCheck</a></li>
282*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpClearCookie">httpClearCookie</a></li>
283*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpClearFields">httpClearFields</a></li>
284*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpClose">httpClose</a></li>
285*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpCompareCredentials">httpCompareCredentials</a></li>
286*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpConnect2">httpConnect2</a></li>
287*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpCopyCredentials">httpCopyCredentials</a></li>
288*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpCredentialsAreValidForName">httpCredentialsAreValidForName</a></li>
289*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpCredentialsGetExpiration">httpCredentialsGetExpiration</a></li>
290*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpCredentialsGetTrust">httpCredentialsGetTrust</a></li>
291*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpCredentialsString">httpCredentialsString</a></li>
292*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpDecode64_2">httpDecode64_2</a></li>
293*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpDelete">httpDelete</a></li>
294*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpEncode64_2">httpEncode64_2</a></li>
295*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpEncryption">httpEncryption</a></li>
296*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpError">httpError</a></li>
297*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpFieldValue">httpFieldValue</a></li>
298*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpFlush">httpFlush</a></li>
299*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpFlushWrite">httpFlushWrite</a></li>
300*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpFreeCredentials">httpFreeCredentials</a></li>
301*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGet">httpGet</a></li>
302*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetActivity">httpGetActivity</a></li>
303*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetAddress">httpGetAddress</a></li>
304*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetAuthString">httpGetAuthString</a></li>
305*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetBlocking">httpGetBlocking</a></li>
306*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetContentEncoding">httpGetContentEncoding</a></li>
307*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetCookie">httpGetCookie</a></li>
308*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetDateString2">httpGetDateString2</a></li>
309*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetDateTime">httpGetDateTime</a></li>
310*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetEncryption">httpGetEncryption</a></li>
311*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetExpect">httpGetExpect</a></li>
312*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetFd">httpGetFd</a></li>
313*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetField">httpGetField</a></li>
314*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetHostname">httpGetHostname</a></li>
315*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetKeepAlive">httpGetKeepAlive</a></li>
316*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetLength2">httpGetLength2</a></li>
317*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetPending">httpGetPending</a></li>
318*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetReady">httpGetReady</a></li>
319*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetRemaining">httpGetRemaining</a></li>
320*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetState">httpGetState</a></li>
321*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetStatus">httpGetStatus</a></li>
322*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetSubField2">httpGetSubField2</a></li>
323*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGetVersion">httpGetVersion</a></li>
324*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpGets">httpGets</a></li>
325*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpHead">httpHead</a></li>
326*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpInitialize">httpInitialize</a></li>
327*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpIsChunked">httpIsChunked</a></li>
328*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpIsEncrypted">httpIsEncrypted</a></li>
329*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpLoadCredentials">httpLoadCredentials</a></li>
330*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpOptions">httpOptions</a></li>
331*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpPeek">httpPeek</a></li>
332*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpPost">httpPost</a></li>
333*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpPut">httpPut</a></li>
334*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpRead2">httpRead2</a></li>
335*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpReadRequest">httpReadRequest</a></li>
336*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpReconnect2">httpReconnect2</a></li>
337*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpResolveHostname">httpResolveHostname</a></li>
338*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpSaveCredentials">httpSaveCredentials</a></li>
339*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpSeparateURI">httpSeparateURI</a></li>
340*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpSetAuthString">httpSetAuthString</a></li>
341*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpSetCookie">httpSetCookie</a></li>
342*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpSetCredentials">httpSetCredentials</a></li>
343*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpSetDefaultField">httpSetDefaultField</a></li>
344*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpSetExpect">httpSetExpect</a></li>
345*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpSetField">httpSetField</a></li>
346*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpSetKeepAlive">httpSetKeepAlive</a></li>
347*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpSetLength">httpSetLength</a></li>
348*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpSetTimeout">httpSetTimeout</a></li>
349*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpShutdown">httpShutdown</a></li>
350*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpStateString">httpStateString</a></li>
351*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpStatus">httpStatus</a></li>
352*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpURIStatusString">httpURIStatusString</a></li>
353*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpUpdate">httpUpdate</a></li>
354*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpWait">httpWait</a></li>
355*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpWrite2">httpWrite2</a></li>
356*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#httpWriteResponse">httpWriteResponse</a></li>
357*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddBoolean">ippAddBoolean</a></li>
358*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddBooleans">ippAddBooleans</a></li>
359*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddCollection">ippAddCollection</a></li>
360*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddCollections">ippAddCollections</a></li>
361*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddDate">ippAddDate</a></li>
362*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddInteger">ippAddInteger</a></li>
363*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddIntegers">ippAddIntegers</a></li>
364*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddOctetString">ippAddOctetString</a></li>
365*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddOutOfBand">ippAddOutOfBand</a></li>
366*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddRange">ippAddRange</a></li>
367*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddRanges">ippAddRanges</a></li>
368*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddResolution">ippAddResolution</a></li>
369*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddResolutions">ippAddResolutions</a></li>
370*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddSeparator">ippAddSeparator</a></li>
371*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddString">ippAddString</a></li>
372*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddStringf">ippAddStringf</a></li>
373*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddStringfv">ippAddStringfv</a></li>
374*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAddStrings">ippAddStrings</a></li>
375*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippAttributeString">ippAttributeString</a></li>
376*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippContainsInteger">ippContainsInteger</a></li>
377*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippContainsString">ippContainsString</a></li>
378*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippCopyAttribute">ippCopyAttribute</a></li>
379*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippCopyAttributes">ippCopyAttributes</a></li>
380*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippCreateRequestedArray">ippCreateRequestedArray</a></li>
381*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippDateToTime">ippDateToTime</a></li>
382*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippDelete">ippDelete</a></li>
383*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippDeleteAttribute">ippDeleteAttribute</a></li>
384*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippDeleteValues">ippDeleteValues</a></li>
385*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippEnumString">ippEnumString</a></li>
386*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippEnumValue">ippEnumValue</a></li>
387*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippErrorString">ippErrorString</a></li>
388*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippErrorValue">ippErrorValue</a></li>
389*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippFindAttribute">ippFindAttribute</a></li>
390*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippFindNextAttribute">ippFindNextAttribute</a></li>
391*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippFirstAttribute">ippFirstAttribute</a></li>
392*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetBoolean">ippGetBoolean</a></li>
393*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetCollection">ippGetCollection</a></li>
394*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetCount">ippGetCount</a></li>
395*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetDate">ippGetDate</a></li>
396*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetGroupTag">ippGetGroupTag</a></li>
397*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetInteger">ippGetInteger</a></li>
398*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetName">ippGetName</a></li>
399*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetOctetString">ippGetOctetString</a></li>
400*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetOperation">ippGetOperation</a></li>
401*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetRange">ippGetRange</a></li>
402*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetRequestId">ippGetRequestId</a></li>
403*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetResolution">ippGetResolution</a></li>
404*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetState">ippGetState</a></li>
405*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetStatusCode">ippGetStatusCode</a></li>
406*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetString">ippGetString</a></li>
407*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetValueTag">ippGetValueTag</a></li>
408*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippGetVersion">ippGetVersion</a></li>
409*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippLength">ippLength</a></li>
410*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippNew">ippNew</a></li>
411*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippNewRequest">ippNewRequest</a></li>
412*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippNewResponse">ippNewResponse</a></li>
413*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippNextAttribute">ippNextAttribute</a></li>
414*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippOpString">ippOpString</a></li>
415*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippOpValue">ippOpValue</a></li>
416*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippPort">ippPort</a></li>
417*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippRead">ippRead</a></li>
418*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippReadFile">ippReadFile</a></li>
419*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippReadIO">ippReadIO</a></li>
420*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetBoolean">ippSetBoolean</a></li>
421*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetCollection">ippSetCollection</a></li>
422*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetDate">ippSetDate</a></li>
423*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetGroupTag">ippSetGroupTag</a></li>
424*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetInteger">ippSetInteger</a></li>
425*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetName">ippSetName</a></li>
426*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetOctetString">ippSetOctetString</a></li>
427*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetOperation">ippSetOperation</a></li>
428*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetPort">ippSetPort</a></li>
429*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetRange">ippSetRange</a></li>
430*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetRequestId">ippSetRequestId</a></li>
431*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetResolution">ippSetResolution</a></li>
432*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetState">ippSetState</a></li>
433*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetStatusCode">ippSetStatusCode</a></li>
434*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetString">ippSetString</a></li>
435*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetStringf">ippSetStringf</a></li>
436*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetStringfv">ippSetStringfv</a></li>
437*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetValueTag">ippSetValueTag</a></li>
438*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippSetVersion">ippSetVersion</a></li>
439*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippStateString">ippStateString</a></li>
440*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippTagString">ippTagString</a></li>
441*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippTagValue">ippTagValue</a></li>
442*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippTimeToDate">ippTimeToDate</a></li>
443*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippValidateAttribute">ippValidateAttribute</a></li>
444*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippValidateAttributes">ippValidateAttributes</a></li>
445*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippWrite">ippWrite</a></li>
446*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippWriteFile">ippWriteFile</a></li>
447*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ippWriteIO">ippWriteIO</a></li>
448*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
449*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#TYPES">Data Types</a><ul class="subcontents">
450*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_client_cert_cb_t">cups_client_cert_cb_t</a></li>
451*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_dest_cb_t">cups_dest_cb_t</a></li>
452*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_dest_t">cups_dest_t</a></li>
453*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_dinfo_t">cups_dinfo_t</a></li>
454*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_job_t">cups_job_t</a></li>
455*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_option_t">cups_option_t</a></li>
456*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_password_cb2_t">cups_password_cb2_t</a></li>
457*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_ptype_t">cups_ptype_t</a></li>
458*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_server_cert_cb_t">cups_server_cert_cb_t</a></li>
459*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_size_t">cups_size_t</a></li>
460*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_addr_t">http_addr_t</a></li>
461*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_encoding_t">http_encoding_t</a></li>
462*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_encryption_t">http_encryption_t</a></li>
463*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_field_t">http_field_t</a></li>
464*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_keepalive_t">http_keepalive_t</a></li>
465*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_state_t">http_state_t</a></li>
466*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_t">http_t</a></li>
467*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_timeout_cb_t">http_timeout_cb_t</a></li>
468*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_trust_t">http_trust_t</a></li>
469*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_uri_coding_t">http_uri_coding_t</a></li>
470*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_uri_status_t">http_uri_status_t</a></li>
471*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_attribute_t">ipp_attribute_t</a></li>
472*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_copycb_t">ipp_copycb_t</a></li>
473*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_iocb_t">ipp_iocb_t</a></li>
474*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_orient_t">ipp_orient_t</a></li>
475*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_pstate_t">ipp_pstate_t</a></li>
476*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_quality_t">ipp_quality_t</a></li>
477*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_res_t">ipp_res_t</a></li>
478*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_rstate_t">ipp_rstate_t</a></li>
479*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_sstate_t">ipp_sstate_t</a></li>
480*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_state_t">ipp_state_t</a></li>
481*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_t">ipp_t</a></li>
482*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
483*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#STRUCTURES">Structures</a><ul class="subcontents">
484*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_dest_s">cups_dest_s</a></li>
485*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_job_s">cups_job_s</a></li>
486*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_option_s">cups_option_s</a></li>
487*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_size_s">cups_size_s</a></li>
488*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
489*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#ENUMERATIONS">Enumerations</a><ul class="subcontents">
490*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_ptype_e">cups_ptype_e</a></li>
491*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_encoding_e">http_encoding_e</a></li>
492*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_encryption_e">http_encryption_e</a></li>
493*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_field_e">http_field_e</a></li>
494*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_keepalive_e">http_keepalive_e</a></li>
495*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_state_e">http_state_e</a></li>
496*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_status_e">http_status_e</a></li>
497*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_trust_e">http_trust_e</a></li>
498*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_uri_coding_e">http_uri_coding_e</a></li>
499*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#http_uri_status_e">http_uri_status_e</a></li>
500*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_finishings_e">ipp_finishings_e</a></li>
501*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_jstate_e">ipp_jstate_e</a></li>
502*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_op_e">ipp_op_e</a></li>
503*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_orient_e">ipp_orient_e</a></li>
504*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_pstate_e">ipp_pstate_e</a></li>
505*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_quality_e">ipp_quality_e</a></li>
506*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_res_e">ipp_res_e</a></li>
507*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_rstate_e">ipp_rstate_e</a></li>
508*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_sstate_e">ipp_sstate_e</a></li>
509*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_state_e">ipp_state_e</a></li>
510*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_status_e">ipp_status_e</a></li>
511*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#ipp_tag_e">ipp_tag_e</a></li>
512*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
513*5e7646d2SAndroid Build Coastguard Worker      </ul>
514*5e7646d2SAndroid Build Coastguard Worker    </div>
515*5e7646d2SAndroid Build Coastguard Worker    <div class="body">
516*5e7646d2SAndroid Build Coastguard Worker    <blockquote>
517*5e7646d2SAndroid Build Coastguard Worker    <p>Please <a href="https://github.com/apple/cups/issues">file issues on Github</a> to provide feedback on this document.</p>
518*5e7646d2SAndroid Build Coastguard Worker</blockquote>
519*5e7646d2SAndroid Build Coastguard Worker    <h2><a id="introduction">Introduction</a></h2>
520*5e7646d2SAndroid Build Coastguard Worker    <p>CUPS provides the &quot;cups&quot; library to talk to the different parts of CUPS and with Internet Printing Protocol (IPP) printers. The &quot;cups&quot; library functions are accessed by including the <code>&lt;cups/cups.h&gt;</code> header.</p>
521*5e7646d2SAndroid Build Coastguard Worker    <p>CUPS is based on the Internet Printing Protocol (&quot;IPP&quot;), which allows clients (applications) to communicate with a server (the scheduler, printers, etc.) to get a list of destinations, send print jobs, and so forth. You identify which server you want to communicate with using a pointer to the opaque structure <code>http_t</code>. The <code>CUPS_HTTP_DEFAULT</code> constant can be used when you want to talk to the CUPS scheduler.</p>
522*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="guidelines">Guidelines</a></h3>
523*5e7646d2SAndroid Build Coastguard Worker    <p>When writing software (other than printer drivers) that uses the &quot;cups&quot; library:</p>
524*5e7646d2SAndroid Build Coastguard Worker    <ul>
525*5e7646d2SAndroid Build Coastguard Worker    <li>Do not use undocumented or deprecated APIs,</li>
526*5e7646d2SAndroid Build Coastguard Worker    <li>Do not rely on pre-configured printers,</li>
527*5e7646d2SAndroid Build Coastguard Worker    <li>Do not assume that printers support specific features or formats, and</li>
528*5e7646d2SAndroid Build Coastguard Worker    <li>Do not rely on implementation details (PPDs, etc.)</li>
529*5e7646d2SAndroid Build Coastguard Worker</ul>
530*5e7646d2SAndroid Build Coastguard Worker    <p>CUPS is designed to insulate users and developers from the implementation details of printers and file formats. The goal is to allow an application to supply a print file in a standard format with the user intent (&quot;print four copies, two-sided on A4 media, and staple each copy&quot;) and have the printing system manage the printer communication and format conversion needed.</p>
531*5e7646d2SAndroid Build Coastguard Worker    <p>Similarly, printer and job management applications can use standard query operations to obtain the status information in a common, generic form and use standard management operations to control the state of those printers and jobs.</p>
532*5e7646d2SAndroid Build Coastguard Worker    <blockquote>
533*5e7646d2SAndroid Build Coastguard Worker    <p><strong>Note:</strong></p>
534*5e7646d2SAndroid Build Coastguard Worker    <p>CUPS printer drivers necessarily depend on specific file formats and certain implementation details of the CUPS software. Please consult the Postscript and raster printer driver developer documentation on <a href="https://www.cups.org/documentation.html">CUPS.org</a> for more information.</p>
535*5e7646d2SAndroid Build Coastguard Worker</blockquote>
536*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="terms-used-in-this-document">Terms Used in This Document</a></h3>
537*5e7646d2SAndroid Build Coastguard Worker    <p>A <em>Destination</em> is a printer or print queue that accepts print jobs. A <em>Print</em> <em>Job</em> is a collection of one or more documents that are processed by a destination using options supplied when creating the job. A <em>Document</em> is a file (JPEG image, PDF file, etc.) suitable for printing. An <em>Option</em> controls some aspect of printing, such as the media used. <em>Media</em> is the sheets or roll that is printed on. An <em>Attribute</em> is an option encoded for an Internet Printing Protocol (IPP) request.</p>
538*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="compiling-programs-that-use-the-cups-api">Compiling Programs That Use the CUPS API</a></h3>
539*5e7646d2SAndroid Build Coastguard Worker    <p>The CUPS libraries can be used from any C, C++, or Objective C program. The method of compiling against the libraries varies depending on the operating system and installation of CUPS. The following sections show how to compile a simple program (shown below) in two common environments.</p>
540*5e7646d2SAndroid Build Coastguard Worker    <p>The following simple program lists the available destinations:</p>
541*5e7646d2SAndroid Build Coastguard Worker    <pre><code>#include &lt;stdio.h&gt;
542*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/cups.h&gt;
543*5e7646d2SAndroid Build Coastguard Worker
544*5e7646d2SAndroid Build Coastguard Workerint print_dest(void *user_data, unsigned flags, cups_dest_t *dest)
545*5e7646d2SAndroid Build Coastguard Worker{
546*5e7646d2SAndroid Build Coastguard Worker  if (dest-&gt;instance)
547*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;%s/%s\n&quot;, dest-&gt;name, dest-&gt;instance);
548*5e7646d2SAndroid Build Coastguard Worker  else
549*5e7646d2SAndroid Build Coastguard Worker    puts(dest-&gt;name);
550*5e7646d2SAndroid Build Coastguard Worker
551*5e7646d2SAndroid Build Coastguard Worker  return (1);
552*5e7646d2SAndroid Build Coastguard Worker}
553*5e7646d2SAndroid Build Coastguard Worker
554*5e7646d2SAndroid Build Coastguard Workerint main(void)
555*5e7646d2SAndroid Build Coastguard Worker{
556*5e7646d2SAndroid Build Coastguard Worker  cupsEnumDests(CUPS_DEST_FLAGS_NONE, 1000, NULL, 0, 0, print_dest, NULL);
557*5e7646d2SAndroid Build Coastguard Worker
558*5e7646d2SAndroid Build Coastguard Worker  return (0);
559*5e7646d2SAndroid Build Coastguard Worker}
560*5e7646d2SAndroid Build Coastguard Worker</code></pre>
561*5e7646d2SAndroid Build Coastguard Worker    <h4><a id="compiling-with-xcode">Compiling with Xcode</a></h4>
562*5e7646d2SAndroid Build Coastguard Worker    <p>In Xcode, choose <em>New</em> <em>Project...</em> from the <em>File</em> menu (or press SHIFT+CMD+N), then select the <em>Command</em> <em>Line</em> <em>Tool</em> under the macOS Application project type. Click <em>Next</em> and enter a name for the project, for example &quot;firstcups&quot;. Click <em>Next</em> and choose a project directory. The click <em>Next</em> to create the project.</p>
563*5e7646d2SAndroid Build Coastguard Worker    <p>In the project window, click on the <em>Build</em> <em>Phases</em> group and expand the <em>Link</em> <em>Binary</em> <em>with</em> <em>Libraries</em> section. Click <em>+</em>, type &quot;libcups&quot; to show the library, and then double-click on <code>libcups.tbd</code>.</p>
564*5e7646d2SAndroid Build Coastguard Worker    <p>Finally, click on the <code>main.c</code> file in the sidebar and copy the example program to the file. Build and run (CMD+R) to see the list of destinations.</p>
565*5e7646d2SAndroid Build Coastguard Worker    <h4><a id="compiling-with-gcc">Compiling with GCC</a></h4>
566*5e7646d2SAndroid Build Coastguard Worker    <p>From the command-line, create a file called <code>simple.c</code> using your favorite editor, copy the example to this file, and save. Then run the following command to compile it with GCC and run it:</p>
567*5e7646d2SAndroid Build Coastguard Worker    <pre><code>gcc -o simple `cups-config --cflags` simple.c `cups-config --libs`
568*5e7646d2SAndroid Build Coastguard Worker./simple
569*5e7646d2SAndroid Build Coastguard Worker</code></pre>
570*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>cups-config</code> command provides the compiler flags (<code>cups-config --cflags</code>) and libraries (<code>cups-config --libs</code>) needed for the local system.</p>
571*5e7646d2SAndroid Build Coastguard Worker    <h2><a id="working-with-destinations">Working with Destinations</a></h2>
572*5e7646d2SAndroid Build Coastguard Worker    <p>Destinations, which in CUPS represent individual printers or classes (collections or pools) of printers, are represented by the <code>cups_dest_t</code> structure which includes the name (<code>name</code>), instance (<code>instance</code>, saved options/settings), whether the destination is the default for the user (<code>is_default</code>), and the options and basic information associated with that destination (<code>num_options</code> and <code>options</code>).</p>
573*5e7646d2SAndroid Build Coastguard Worker    <p>Historically destinations have been manually maintained by the administrator of a system or network, but CUPS also supports dynamic discovery of destinations on the current network.</p>
574*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="finding-available-destinations">Finding Available Destinations</a></h3>
575*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>cupsEnumDests</code> function finds all of the available destinations:</p>
576*5e7646d2SAndroid Build Coastguard Worker    <pre><code> int
577*5e7646d2SAndroid Build Coastguard Worker cupsEnumDests(unsigned flags, int msec, int *cancel,
578*5e7646d2SAndroid Build Coastguard Worker               cups_ptype_t type, cups_ptype_t mask,
579*5e7646d2SAndroid Build Coastguard Worker               cups_dest_cb_t cb, void *user_data)
580*5e7646d2SAndroid Build Coastguard Worker</code></pre>
581*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>flags</code> argument specifies enumeration options, which at present must be <code>CUPS_DEST_FLAGS_NONE</code>.</p>
582*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>msec</code> argument specifies the maximum amount of time that should be used for enumeration in milliseconds - interactive applications should keep this value to 5000 or less when run on the main thread.</p>
583*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>cancel</code> argument points to an integer variable that, when set to a non-zero value, will cause enumeration to stop as soon as possible. It can be <code>NULL</code> if not needed.</p>
584*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>type</code> and <code>mask</code> arguments are bitfields that allow the caller to filter the destinations based on categories and/or capabilities. The destination's &quot;printer-type&quot; value is masked by the <code>mask</code> value and compared to the <code>type</code> value when filtering. For example, to only enumerate destinations that are hosted on the local system, pass <code>CUPS_PRINTER_LOCAL</code> for the <code>type</code> argument and <code>CUPS_PRINTER_DISCOVERED</code> for the <code>mask</code> argument. The following constants can be used for filtering:</p>
585*5e7646d2SAndroid Build Coastguard Worker    <ul>
586*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_CLASS</code>: A collection of destinations.</li>
587*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_FAX</code>: A facsimile device.</li>
588*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_LOCAL</code>: A local printer or class. This constant has the value 0 (no bits set) and is only used for the <code>type</code> argument and is paired with the <code>CUPS_PRINTER_REMOTE</code> or <code>CUPS_PRINTER_DISCOVERED</code> constant passed in the <code>mask</code> argument.</li>
589*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_REMOTE</code>: A remote (shared) printer or class.</li>
590*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_DISCOVERED</code>: An available network printer or class.</li>
591*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_BW</code>: Can do B&amp;W printing.</li>
592*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_COLOR</code>: Can do color printing.</li>
593*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_DUPLEX</code>: Can do two-sided printing.</li>
594*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_STAPLE</code>: Can staple output.</li>
595*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_COLLATE</code>: Can quickly collate copies.</li>
596*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_PUNCH</code>: Can punch output.</li>
597*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_COVER</code>: Can cover output.</li>
598*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_BIND</code>: Can bind output.</li>
599*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_SORT</code>: Can sort output (mailboxes, etc.)</li>
600*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_SMALL</code>: Can print on Letter/Legal/A4-size media.</li>
601*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_MEDIUM</code>: Can print on Tabloid/B/C/A3/A2-size media.</li>
602*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_LARGE</code>: Can print on D/E/A1/A0-size media.</li>
603*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINTER_VARIABLE</code>: Can print on rolls and custom-size media.</li>
604*5e7646d2SAndroid Build Coastguard Worker</ul>
605*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>cb</code> argument specifies a function to call for every destination that is found:</p>
606*5e7646d2SAndroid Build Coastguard Worker    <pre><code>typedef int (*cups_dest_cb_t)(void *user_data,
607*5e7646d2SAndroid Build Coastguard Worker                              unsigned flags,
608*5e7646d2SAndroid Build Coastguard Worker                              cups_dest_t *dest);
609*5e7646d2SAndroid Build Coastguard Worker</code></pre>
610*5e7646d2SAndroid Build Coastguard Worker    <p>The callback function receives a copy of the <code>user_data</code> argument along with a bitfield (<code>flags</code>) and the destination that was found. The <code>flags</code> argument can have any of the following constant (bit) values set:</p>
611*5e7646d2SAndroid Build Coastguard Worker    <ul>
612*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_DEST_FLAGS_MORE</code>: There are more destinations coming.</li>
613*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_DEST_FLAGS_REMOVED</code>: The destination has gone away and should be removed from the list of destinations a user can select.</li>
614*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_DEST_FLAGS_ERROR</code>: An error occurred. The reason for the error can be found by calling the <code>cupsLastError</code> and/or <code>cupsLastErrorString</code> functions.</li>
615*5e7646d2SAndroid Build Coastguard Worker</ul>
616*5e7646d2SAndroid Build Coastguard Worker    <p>The callback function returns 0 to stop enumeration or 1 to continue.</p>
617*5e7646d2SAndroid Build Coastguard Worker    <blockquote>
618*5e7646d2SAndroid Build Coastguard Worker    <p><strong>Note:</strong></p>
619*5e7646d2SAndroid Build Coastguard Worker    <p>The callback function will likely be called multiple times for the same destination, so it is up to the caller to suppress any duplicate destinations.</p>
620*5e7646d2SAndroid Build Coastguard Worker</blockquote>
621*5e7646d2SAndroid Build Coastguard Worker    <p>The following example shows how to use <code>cupsEnumDests</code> to get a filtered array of destinations:</p>
622*5e7646d2SAndroid Build Coastguard Worker    <pre><code>typedef struct
623*5e7646d2SAndroid Build Coastguard Worker{
624*5e7646d2SAndroid Build Coastguard Worker  int num_dests;
625*5e7646d2SAndroid Build Coastguard Worker  cups_dest_t *dests;
626*5e7646d2SAndroid Build Coastguard Worker} my_user_data_t;
627*5e7646d2SAndroid Build Coastguard Worker
628*5e7646d2SAndroid Build Coastguard Workerint
629*5e7646d2SAndroid Build Coastguard Workermy_dest_cb(my_user_data_t *user_data, unsigned flags,
630*5e7646d2SAndroid Build Coastguard Worker           cups_dest_t *dest)
631*5e7646d2SAndroid Build Coastguard Worker{
632*5e7646d2SAndroid Build Coastguard Worker  if (flags &amp; CUPS_DEST_FLAGS_REMOVED)
633*5e7646d2SAndroid Build Coastguard Worker  {
634*5e7646d2SAndroid Build Coastguard Worker   /*
635*5e7646d2SAndroid Build Coastguard Worker    * Remove destination from array...
636*5e7646d2SAndroid Build Coastguard Worker    */
637*5e7646d2SAndroid Build Coastguard Worker
638*5e7646d2SAndroid Build Coastguard Worker    user_data-&gt;num_dests =
639*5e7646d2SAndroid Build Coastguard Worker        cupsRemoveDest(dest-&gt;name, dest-&gt;instance,
640*5e7646d2SAndroid Build Coastguard Worker                       user_data-&gt;num_dests,
641*5e7646d2SAndroid Build Coastguard Worker                       &amp;(user_data-&gt;dests));
642*5e7646d2SAndroid Build Coastguard Worker  }
643*5e7646d2SAndroid Build Coastguard Worker  else
644*5e7646d2SAndroid Build Coastguard Worker  {
645*5e7646d2SAndroid Build Coastguard Worker   /*
646*5e7646d2SAndroid Build Coastguard Worker    * Add destination to array...
647*5e7646d2SAndroid Build Coastguard Worker    */
648*5e7646d2SAndroid Build Coastguard Worker
649*5e7646d2SAndroid Build Coastguard Worker    user_data-&gt;num_dests =
650*5e7646d2SAndroid Build Coastguard Worker        cupsCopyDest(dest, user_data-&gt;num_dests,
651*5e7646d2SAndroid Build Coastguard Worker                     &amp;(user_data-&gt;dests));
652*5e7646d2SAndroid Build Coastguard Worker  }
653*5e7646d2SAndroid Build Coastguard Worker
654*5e7646d2SAndroid Build Coastguard Worker  return (1);
655*5e7646d2SAndroid Build Coastguard Worker}
656*5e7646d2SAndroid Build Coastguard Worker
657*5e7646d2SAndroid Build Coastguard Workerint
658*5e7646d2SAndroid Build Coastguard Workermy_get_dests(cups_ptype_t type, cups_ptype_t mask,
659*5e7646d2SAndroid Build Coastguard Worker             cups_dest_t **dests)
660*5e7646d2SAndroid Build Coastguard Worker{
661*5e7646d2SAndroid Build Coastguard Worker  my_user_data_t user_data = { 0, NULL };
662*5e7646d2SAndroid Build Coastguard Worker
663*5e7646d2SAndroid Build Coastguard Worker  if (!cupsEnumDests(CUPS_DEST_FLAGS_NONE, 1000, NULL, type,
664*5e7646d2SAndroid Build Coastguard Worker                     mask, (cups_dest_cb_t)my_dest_cb,
665*5e7646d2SAndroid Build Coastguard Worker                     &amp;user_data))
666*5e7646d2SAndroid Build Coastguard Worker  {
667*5e7646d2SAndroid Build Coastguard Worker   /*
668*5e7646d2SAndroid Build Coastguard Worker    * An error occurred, free all of the destinations and
669*5e7646d2SAndroid Build Coastguard Worker    * return...
670*5e7646d2SAndroid Build Coastguard Worker    */
671*5e7646d2SAndroid Build Coastguard Worker
672*5e7646d2SAndroid Build Coastguard Worker    cupsFreeDests(user_data.num_dests, user_dasta.dests);
673*5e7646d2SAndroid Build Coastguard Worker
674*5e7646d2SAndroid Build Coastguard Worker    *dests = NULL;
675*5e7646d2SAndroid Build Coastguard Worker
676*5e7646d2SAndroid Build Coastguard Worker    return (0);
677*5e7646d2SAndroid Build Coastguard Worker  }
678*5e7646d2SAndroid Build Coastguard Worker
679*5e7646d2SAndroid Build Coastguard Worker /*
680*5e7646d2SAndroid Build Coastguard Worker  * Return the destination array...
681*5e7646d2SAndroid Build Coastguard Worker  */
682*5e7646d2SAndroid Build Coastguard Worker
683*5e7646d2SAndroid Build Coastguard Worker  *dests = user_data.dests;
684*5e7646d2SAndroid Build Coastguard Worker
685*5e7646d2SAndroid Build Coastguard Worker  return (user_data.num_dests);
686*5e7646d2SAndroid Build Coastguard Worker}
687*5e7646d2SAndroid Build Coastguard Worker</code></pre>
688*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="basic-destination-information">Basic Destination Information</a></h3>
689*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>num_options</code> and <code>options</code> members of the <code>cups_dest_t</code> structure provide basic attributes about the destination in addition to the user default options and values for that destination. The following names are predefined for various destination attributes:</p>
690*5e7646d2SAndroid Build Coastguard Worker    <ul>
691*5e7646d2SAndroid Build Coastguard Worker    <li>&quot;auth-info-required&quot;: The type of authentication required for printing to this destination: &quot;none&quot;, &quot;username,password&quot;, &quot;domain,username,password&quot;, or &quot;negotiate&quot; (Kerberos).</li>
692*5e7646d2SAndroid Build Coastguard Worker    <li>&quot;printer-info&quot;: The human-readable description of the destination such as &quot;My Laser Printer&quot;.</li>
693*5e7646d2SAndroid Build Coastguard Worker    <li>&quot;printer-is-accepting-jobs&quot;: &quot;true&quot; if the destination is accepting new jobs, &quot;false&quot; otherwise.</li>
694*5e7646d2SAndroid Build Coastguard Worker    <li>&quot;printer-is-shared&quot;: &quot;true&quot; if the destination is being shared with other computers, &quot;false&quot; otherwise.</li>
695*5e7646d2SAndroid Build Coastguard Worker    <li>&quot;printer-location&quot;: The human-readable location of the destination such as &quot;Lab 4&quot;.</li>
696*5e7646d2SAndroid Build Coastguard Worker    <li>&quot;printer-make-and-model&quot;: The human-readable make and model of the destination such as &quot;ExampleCorp LaserPrinter 4000 Series&quot;.</li>
697*5e7646d2SAndroid Build Coastguard Worker    <li>&quot;printer-state&quot;: &quot;3&quot; if the destination is idle, &quot;4&quot; if the destination is printing a job, and &quot;5&quot; if the destination is stopped.</li>
698*5e7646d2SAndroid Build Coastguard Worker    <li>&quot;printer-state-change-time&quot;: The UNIX time when the destination entered the current state.</li>
699*5e7646d2SAndroid Build Coastguard Worker    <li>&quot;printer-state-reasons&quot;: Additional comma-delimited state keywords for the destination such as &quot;media-tray-empty-error&quot; and &quot;toner-low-warning&quot;.</li>
700*5e7646d2SAndroid Build Coastguard Worker    <li>&quot;printer-type&quot;: The <code>cups_ptype_t</code> value associated with the destination.</li>
701*5e7646d2SAndroid Build Coastguard Worker    <li>&quot;printer-uri-supported&quot;: The URI associated with the destination; if not set, this destination was discovered but is not yet setup as a local printer.</li>
702*5e7646d2SAndroid Build Coastguard Worker</ul>
703*5e7646d2SAndroid Build Coastguard Worker    <p>Use the <code>cupsGetOption</code> function to retrieve the value. For example, the following code gets the make and model of a destination:</p>
704*5e7646d2SAndroid Build Coastguard Worker    <pre><code>const char *model = cupsGetOption(&quot;printer-make-and-model&quot;,
705*5e7646d2SAndroid Build Coastguard Worker                                  dest-&gt;num_options,
706*5e7646d2SAndroid Build Coastguard Worker                                  dest-&gt;options);
707*5e7646d2SAndroid Build Coastguard Worker</code></pre>
708*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="detailed-destination-information">Detailed Destination Information</a></h3>
709*5e7646d2SAndroid Build Coastguard Worker    <p>Once a destination has been chosen, the <code>cupsCopyDestInfo</code> function can be used to gather detailed information about the destination:</p>
710*5e7646d2SAndroid Build Coastguard Worker    <pre><code>cups_dinfo_t *
711*5e7646d2SAndroid Build Coastguard WorkercupsCopyDestInfo(http_t *http, cups_dest_t *dest);
712*5e7646d2SAndroid Build Coastguard Worker</code></pre>
713*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>http</code> argument specifies a connection to the CUPS scheduler and is typically the constant <code>CUPS_HTTP_DEFAULT</code>. The <code>dest</code> argument specifies the destination to query.</p>
714*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>cups_dinfo_t</code> structure that is returned contains a snapshot of the supported options and their supported, ready, and default values. It also can report constraints between different options and values, and recommend changes to resolve those constraints.</p>
715*5e7646d2SAndroid Build Coastguard Worker    <h4><a id="getting-supported-options-and-values">Getting Supported Options and Values</a></h4>
716*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>cupsCheckDestSupported</code> function can be used to test whether a particular option or option and value is supported:</p>
717*5e7646d2SAndroid Build Coastguard Worker    <pre><code>int
718*5e7646d2SAndroid Build Coastguard WorkercupsCheckDestSupported(http_t *http, cups_dest_t *dest,
719*5e7646d2SAndroid Build Coastguard Worker                       cups_dinfo_t *info,
720*5e7646d2SAndroid Build Coastguard Worker                       const char *option,
721*5e7646d2SAndroid Build Coastguard Worker                       const char *value);
722*5e7646d2SAndroid Build Coastguard Worker</code></pre>
723*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>option</code> argument specifies the name of the option to check. The following constants can be used to check the various standard options:</p>
724*5e7646d2SAndroid Build Coastguard Worker    <ul>
725*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_COPIES</code>: Controls the number of copies that are produced.</li>
726*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_FINISHINGS</code>: A comma-delimited list of integer constants that control the finishing processes that are applied to the job, including stapling, punching, and folding.</li>
727*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_MEDIA</code>: Controls the media size that is used, typically one of the following: <code>CUPS_MEDIA_3X5</code>, <code>CUPS_MEDIA_4X6</code>, <code>CUPS_MEDIA_5X7</code>, <code>CUPS_MEDIA_8X10</code>, <code>CUPS_MEDIA_A3</code>, <code>CUPS_MEDIA_A4</code>, <code>CUPS_MEDIA_A5</code>, <code>CUPS_MEDIA_A6</code>, <code>CUPS_MEDIA_ENV10</code>, <code>CUPS_MEDIA_ENVDL</code>, <code>CUPS_MEDIA_LEGAL</code>, <code>CUPS_MEDIA_LETTER</code>, <code>CUPS_MEDIA_PHOTO_L</code>, <code>CUPS_MEDIA_SUPERBA3</code>, or <code>CUPS_MEDIA_TABLOID</code>.</li>
728*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_MEDIA_SOURCE</code>: Controls where the media is pulled from, typically either <code>CUPS_MEDIA_SOURCE_AUTO</code> or <code>CUPS_MEDIA_SOURCE_MANUAL</code>.</li>
729*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_MEDIA_TYPE</code>: Controls the type of media that is used, typically one of the following: <code>CUPS_MEDIA_TYPE_AUTO</code>, <code>CUPS_MEDIA_TYPE_ENVELOPE</code>, <code>CUPS_MEDIA_TYPE_LABELS</code>, <code>CUPS_MEDIA_TYPE_LETTERHEAD</code>, <code>CUPS_MEDIA_TYPE_PHOTO</code>, <code>CUPS_MEDIA_TYPE_PHOTO_GLOSSY</code>, <code>CUPS_MEDIA_TYPE_PHOTO_MATTE</code>, <code>CUPS_MEDIA_TYPE_PLAIN</code>, or <code>CUPS_MEDIA_TYPE_TRANSPARENCY</code>.</li>
730*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_NUMBER_UP</code>: Controls the number of document pages that are placed on each media side.</li>
731*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_ORIENTATION</code>: Controls the orientation of document pages placed on the media: <code>CUPS_ORIENTATION_PORTRAIT</code> or <code>CUPS_ORIENTATION_LANDSCAPE</code>.</li>
732*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINT_COLOR_MODE</code>: Controls whether the output is in color (<code>CUPS_PRINT_COLOR_MODE_COLOR</code>), grayscale (<code>CUPS_PRINT_COLOR_MODE_MONOCHROME</code>), or either (<code>CUPS_PRINT_COLOR_MODE_AUTO</code>).</li>
733*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_PRINT_QUALITY</code>: Controls the generate quality of the output: <code>CUPS_PRINT_QUALITY_DRAFT</code>, <code>CUPS_PRINT_QUALITY_NORMAL</code>, or <code>CUPS_PRINT_QUALITY_HIGH</code>.</li>
734*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_SIDES</code>: Controls whether prints are placed on one or both sides of the media: <code>CUPS_SIDES_ONE_SIDED</code>, <code>CUPS_SIDES_TWO_SIDED_PORTRAIT</code>, or <code>CUPS_SIDES_TWO_SIDED_LANDSCAPE</code>.</li>
735*5e7646d2SAndroid Build Coastguard Worker</ul>
736*5e7646d2SAndroid Build Coastguard Worker    <p>If the <code>value</code> argument is <code>NULL</code>, the <code>cupsCheckDestSupported</code> function returns whether the option is supported by the destination. Otherwise, the function returns whether the specified value of the option is supported.</p>
737*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>cupsFindDestSupported</code> function returns the IPP attribute containing the supported values for a given option:</p>
738*5e7646d2SAndroid Build Coastguard Worker    <pre><code> ipp_attribute_t *
739*5e7646d2SAndroid Build Coastguard Worker cupsFindDestSupported(http_t *http, cups_dest_t *dest,
740*5e7646d2SAndroid Build Coastguard Worker                       cups_dinfo_t *dinfo,
741*5e7646d2SAndroid Build Coastguard Worker                       const char *option);
742*5e7646d2SAndroid Build Coastguard Worker</code></pre>
743*5e7646d2SAndroid Build Coastguard Worker    <p>For example, the following code prints the supported finishing processes for a destination, if any, to the standard output:</p>
744*5e7646d2SAndroid Build Coastguard Worker    <pre><code>cups_dinfo_t *info = cupsCopyDestInfo(CUPS_HTTP_DEFAULT,
745*5e7646d2SAndroid Build Coastguard Worker                                      dest);
746*5e7646d2SAndroid Build Coastguard Worker
747*5e7646d2SAndroid Build Coastguard Workerif (cupsCheckDestSupported(CUPS_HTTP_DEFAULT, dest, info,
748*5e7646d2SAndroid Build Coastguard Worker                           CUPS_FINISHINGS, NULL))
749*5e7646d2SAndroid Build Coastguard Worker{
750*5e7646d2SAndroid Build Coastguard Worker  ipp_attribute_t *finishings =
751*5e7646d2SAndroid Build Coastguard Worker      cupsFindDestSupported(CUPS_HTTP_DEFAULT, dest, info,
752*5e7646d2SAndroid Build Coastguard Worker                            CUPS_FINISHINGS);
753*5e7646d2SAndroid Build Coastguard Worker  int i, count = ippGetCount(finishings);
754*5e7646d2SAndroid Build Coastguard Worker
755*5e7646d2SAndroid Build Coastguard Worker  puts(&quot;finishings supported:&quot;);
756*5e7646d2SAndroid Build Coastguard Worker  for (i = 0; i &lt; count; i ++)
757*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;  %d\n&quot;, ippGetInteger(finishings, i));
758*5e7646d2SAndroid Build Coastguard Worker}
759*5e7646d2SAndroid Build Coastguard Workerelse
760*5e7646d2SAndroid Build Coastguard Worker  puts(&quot;finishings not supported.&quot;);
761*5e7646d2SAndroid Build Coastguard Worker</code></pre>
762*5e7646d2SAndroid Build Coastguard Worker    <p>The &quot;job-creation-attributes&quot; option can be queried to get a list of supported options. For example, the following code prints the list of supported options to the standard output:</p>
763*5e7646d2SAndroid Build Coastguard Worker    <pre><code>ipp_attribute_t *attrs =
764*5e7646d2SAndroid Build Coastguard Worker    cupsFindDestSupported(CUPS_HTTP_DEFAULT, dest, info,
765*5e7646d2SAndroid Build Coastguard Worker                          &quot;job-creation-attributes&quot;);
766*5e7646d2SAndroid Build Coastguard Workerint i, count = ippGetCount(attrs);
767*5e7646d2SAndroid Build Coastguard Worker
768*5e7646d2SAndroid Build Coastguard Workerfor (i = 0; i &lt; count; i ++)
769*5e7646d2SAndroid Build Coastguard Worker  puts(ippGetString(attrs, i, NULL));
770*5e7646d2SAndroid Build Coastguard Worker</code></pre>
771*5e7646d2SAndroid Build Coastguard Worker    <h4><a id="getting-default-values">Getting Default Values</a></h4>
772*5e7646d2SAndroid Build Coastguard Worker    <p>There are two sets of default values - user defaults that are available via the <code>num_options</code> and <code>options</code> members of the <code>cups_dest_t</code> structure, and destination defaults that available via the <code>cups_dinfo_t</code> structure and the <code>cupsFindDestDefault</code> function which returns the IPP attribute containing the default value(s) for a given option:</p>
773*5e7646d2SAndroid Build Coastguard Worker    <pre><code>ipp_attribute_t *
774*5e7646d2SAndroid Build Coastguard WorkercupsFindDestDefault(http_t *http, cups_dest_t *dest,
775*5e7646d2SAndroid Build Coastguard Worker                    cups_dinfo_t *dinfo,
776*5e7646d2SAndroid Build Coastguard Worker                    const char *option);
777*5e7646d2SAndroid Build Coastguard Worker</code></pre>
778*5e7646d2SAndroid Build Coastguard Worker    <p>The user defaults from <code>cupsGetOption</code> should always take preference over the destination defaults. For example, the following code prints the default finishings value(s) to the standard output:</p>
779*5e7646d2SAndroid Build Coastguard Worker    <pre><code>const char *def_value =
780*5e7646d2SAndroid Build Coastguard Worker    cupsGetOption(CUPS_FINISHINGS, dest-&gt;num_options,
781*5e7646d2SAndroid Build Coastguard Worker                  dest-&gt;options);
782*5e7646d2SAndroid Build Coastguard Workeripp_attribute_t *def_attr =
783*5e7646d2SAndroid Build Coastguard Worker    cupsFindDestDefault(CUPS_HTTP_DEFAULT, dest, info,
784*5e7646d2SAndroid Build Coastguard Worker                        CUPS_FINISHINGS);
785*5e7646d2SAndroid Build Coastguard Worker
786*5e7646d2SAndroid Build Coastguard Workerif (def_value != NULL)
787*5e7646d2SAndroid Build Coastguard Worker{
788*5e7646d2SAndroid Build Coastguard Worker  printf(&quot;Default finishings: %s\n&quot;, def_value);
789*5e7646d2SAndroid Build Coastguard Worker}
790*5e7646d2SAndroid Build Coastguard Workerelse
791*5e7646d2SAndroid Build Coastguard Worker{
792*5e7646d2SAndroid Build Coastguard Worker  int i, count = ippGetCount(def_attr);
793*5e7646d2SAndroid Build Coastguard Worker
794*5e7646d2SAndroid Build Coastguard Worker  printf(&quot;Default finishings: %d&quot;,
795*5e7646d2SAndroid Build Coastguard Worker         ippGetInteger(def_attr, 0));
796*5e7646d2SAndroid Build Coastguard Worker  for (i = 1; i &lt; count; i ++)
797*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;,%d&quot;, ippGetInteger(def_attr, i));
798*5e7646d2SAndroid Build Coastguard Worker  putchar('\n');
799*5e7646d2SAndroid Build Coastguard Worker}
800*5e7646d2SAndroid Build Coastguard Worker</code></pre>
801*5e7646d2SAndroid Build Coastguard Worker    <h4><a id="getting-ready-loaded-values">Getting Ready (Loaded) Values</a></h4>
802*5e7646d2SAndroid Build Coastguard Worker    <p>The finishings and media options also support queries for the ready, or loaded, values. For example, a printer may have punch and staple finishers installed but be out of staples - the supported values will list both punch and staple finishing processes but the ready values will only list the punch processes. Similarly, a printer may support hundreds of different sizes of media but only have a single size loaded at any given time - the ready values are limited to the media that is actually in the printer.</p>
803*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>cupsFindDestReady</code> function finds the IPP attribute containing the ready values for a given option:</p>
804*5e7646d2SAndroid Build Coastguard Worker    <pre><code>ipp_attribute_t *
805*5e7646d2SAndroid Build Coastguard WorkercupsFindDestReady(http_t *http, cups_dest_t *dest,
806*5e7646d2SAndroid Build Coastguard Worker                  cups_dinfo_t *dinfo, const char *option);
807*5e7646d2SAndroid Build Coastguard Worker</code></pre>
808*5e7646d2SAndroid Build Coastguard Worker    <p>For example, the following code lists the ready finishing processes:</p>
809*5e7646d2SAndroid Build Coastguard Worker    <pre><code>ipp_attribute_t *ready_finishings =
810*5e7646d2SAndroid Build Coastguard Worker    cupsFindDestReady(CUPS_HTTP_DEFAULT, dest, info,
811*5e7646d2SAndroid Build Coastguard Worker                      CUPS_FINISHINGS);
812*5e7646d2SAndroid Build Coastguard Worker
813*5e7646d2SAndroid Build Coastguard Workerif (ready_finishings != NULL)
814*5e7646d2SAndroid Build Coastguard Worker{
815*5e7646d2SAndroid Build Coastguard Worker  int i, count = ippGetCount(ready_finishings);
816*5e7646d2SAndroid Build Coastguard Worker
817*5e7646d2SAndroid Build Coastguard Worker  puts(&quot;finishings ready:&quot;);
818*5e7646d2SAndroid Build Coastguard Worker  for (i = 0; i &lt; count; i ++)
819*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;  %d\n&quot;, ippGetInteger(ready_finishings, i));
820*5e7646d2SAndroid Build Coastguard Worker}
821*5e7646d2SAndroid Build Coastguard Workerelse
822*5e7646d2SAndroid Build Coastguard Worker  puts(&quot;no finishings are ready.&quot;);
823*5e7646d2SAndroid Build Coastguard Worker</code></pre>
824*5e7646d2SAndroid Build Coastguard Worker    <h4><a id="media-size-options">Media Size Options</a></h4>
825*5e7646d2SAndroid Build Coastguard Worker    <p>CUPS provides functions for querying the dimensions and margins for each of the supported media size options. The <code>cups_size_t</code> structure is used to describe a media size:</p>
826*5e7646d2SAndroid Build Coastguard Worker    <pre><code>typedef struct cups_size_s
827*5e7646d2SAndroid Build Coastguard Worker{
828*5e7646d2SAndroid Build Coastguard Worker  char media[128];
829*5e7646d2SAndroid Build Coastguard Worker  int width, length;
830*5e7646d2SAndroid Build Coastguard Worker  int bottom, left, right, top;
831*5e7646d2SAndroid Build Coastguard Worker} cups_size_t;
832*5e7646d2SAndroid Build Coastguard Worker</code></pre>
833*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>width</code> and <code>length</code> members specify the dimensions of the media in hundredths of millimeters (1/2540th of an inch). The <code>bottom</code>, <code>left</code>, <code>right</code>, and <code>top</code> members specify the margins of the printable area, also in hundredths of millimeters.</p>
834*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>cupsGetDestMediaByName</code> and <code>cupsGetDestMediaBySize</code> functions lookup the media size information using a standard media size name or dimensions in hundredths of millimeters:</p>
835*5e7646d2SAndroid Build Coastguard Worker    <pre><code>int
836*5e7646d2SAndroid Build Coastguard WorkercupsGetDestMediaByName(http_t *http, cups_dest_t *dest,
837*5e7646d2SAndroid Build Coastguard Worker                       cups_dinfo_t *dinfo,
838*5e7646d2SAndroid Build Coastguard Worker                       const char *media,
839*5e7646d2SAndroid Build Coastguard Worker                       unsigned flags, cups_size_t *size);
840*5e7646d2SAndroid Build Coastguard Worker
841*5e7646d2SAndroid Build Coastguard Workerint
842*5e7646d2SAndroid Build Coastguard WorkercupsGetDestMediaBySize(http_t *http, cups_dest_t *dest,
843*5e7646d2SAndroid Build Coastguard Worker                       cups_dinfo_t *dinfo,
844*5e7646d2SAndroid Build Coastguard Worker                       int width, int length,
845*5e7646d2SAndroid Build Coastguard Worker                       unsigned flags, cups_size_t *size);
846*5e7646d2SAndroid Build Coastguard Worker</code></pre>
847*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>media</code>, <code>width</code>, and <code>length</code> arguments specify the size to lookup. The <code>flags</code> argument specifies a bitfield controlling various lookup options:</p>
848*5e7646d2SAndroid Build Coastguard Worker    <ul>
849*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_MEDIA_FLAGS_DEFAULT</code>: Find the closest size supported by the printer.</li>
850*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_MEDIA_FLAGS_BORDERLESS</code>: Find a borderless size.</li>
851*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_MEDIA_FLAGS_DUPLEX</code>: Find a size compatible with two-sided printing.</li>
852*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_MEDIA_FLAGS_EXACT</code>: Find an exact match for the size.</li>
853*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_MEDIA_FLAGS_READY</code>: If the printer supports media sensing or configuration of the media in each tray/source, find the size amongst the &quot;ready&quot; media.</li>
854*5e7646d2SAndroid Build Coastguard Worker</ul>
855*5e7646d2SAndroid Build Coastguard Worker    <p>If a matching size is found for the destination, the size information is stored in the structure pointed to by the <code>size</code> argument and 1 is returned. Otherwise 0 is returned.</p>
856*5e7646d2SAndroid Build Coastguard Worker    <p>For example, the following code prints the margins for two-sided printing on US Letter media:</p>
857*5e7646d2SAndroid Build Coastguard Worker    <pre><code>cups_size_t size;
858*5e7646d2SAndroid Build Coastguard Worker
859*5e7646d2SAndroid Build Coastguard Workerif (cupsGetDestMediaByName(CUPS_HTTP_DEFAULT, dest, info,
860*5e7646d2SAndroid Build Coastguard Worker                           CUPS_MEDIA_LETTER,
861*5e7646d2SAndroid Build Coastguard Worker                           CUPS_MEDIA_FLAGS_DUPLEX, &amp;size))
862*5e7646d2SAndroid Build Coastguard Worker{
863*5e7646d2SAndroid Build Coastguard Worker  puts(&quot;Margins for duplex US Letter:&quot;);
864*5e7646d2SAndroid Build Coastguard Worker  printf(&quot;  Bottom: %.2fin\n&quot;, size.bottom / 2540.0);
865*5e7646d2SAndroid Build Coastguard Worker  printf(&quot;    Left: %.2fin\n&quot;, size.left / 2540.0);
866*5e7646d2SAndroid Build Coastguard Worker  printf(&quot;   Right: %.2fin\n&quot;, size.right / 2540.0);
867*5e7646d2SAndroid Build Coastguard Worker  printf(&quot;     Top: %.2fin\n&quot;, size.top / 2540.0);
868*5e7646d2SAndroid Build Coastguard Worker}
869*5e7646d2SAndroid Build Coastguard Workerelse
870*5e7646d2SAndroid Build Coastguard Worker  puts(&quot;Margins for duplex US Letter are not available.&quot;);
871*5e7646d2SAndroid Build Coastguard Worker</code></pre>
872*5e7646d2SAndroid Build Coastguard Worker    <p>You can also enumerate all of the sizes that match a given <code>flags</code> value using the <code>cupsGetDestMediaByIndex</code> and <code>cupsGetDestMediaCount</code> functions:</p>
873*5e7646d2SAndroid Build Coastguard Worker    <pre><code>int
874*5e7646d2SAndroid Build Coastguard WorkercupsGetDestMediaByIndex(http_t *http, cups_dest_t *dest,
875*5e7646d2SAndroid Build Coastguard Worker                        cups_dinfo_t *dinfo, int n,
876*5e7646d2SAndroid Build Coastguard Worker                        unsigned flags, cups_size_t *size);
877*5e7646d2SAndroid Build Coastguard Worker
878*5e7646d2SAndroid Build Coastguard Workerint
879*5e7646d2SAndroid Build Coastguard WorkercupsGetDestMediaCount(http_t *http, cups_dest_t *dest,
880*5e7646d2SAndroid Build Coastguard Worker                      cups_dinfo_t *dinfo, unsigned flags);
881*5e7646d2SAndroid Build Coastguard Worker</code></pre>
882*5e7646d2SAndroid Build Coastguard Worker    <p>For example, the following code prints the list of ready media and corresponding margins:</p>
883*5e7646d2SAndroid Build Coastguard Worker    <pre><code>cups_size_t size;
884*5e7646d2SAndroid Build Coastguard Workerint i;
885*5e7646d2SAndroid Build Coastguard Workerint count = cupsGetDestMediaCount(CUPS_HTTP_DEFAULT,
886*5e7646d2SAndroid Build Coastguard Worker                                  dest, info,
887*5e7646d2SAndroid Build Coastguard Worker                                  CUPS_MEDIA_FLAGS_READY);
888*5e7646d2SAndroid Build Coastguard Worker
889*5e7646d2SAndroid Build Coastguard Workerfor (i = 0; i &lt; count; i ++)
890*5e7646d2SAndroid Build Coastguard Worker{
891*5e7646d2SAndroid Build Coastguard Worker  if (cupsGetDestMediaByIndex(CUPS_HTTP_DEFAULT, dest, info,
892*5e7646d2SAndroid Build Coastguard Worker                              i, CUPS_MEDIA_FLAGS_READY,
893*5e7646d2SAndroid Build Coastguard Worker                              &amp;size))
894*5e7646d2SAndroid Build Coastguard Worker  {
895*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;%s:\n&quot;, size.name);
896*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;   Width: %.2fin\n&quot;, size.width / 2540.0);
897*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;  Length: %.2fin\n&quot;, size.length / 2540.0);
898*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;  Bottom: %.2fin\n&quot;, size.bottom / 2540.0);
899*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;    Left: %.2fin\n&quot;, size.left / 2540.0);
900*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;   Right: %.2fin\n&quot;, size.right / 2540.0);
901*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;     Top: %.2fin\n&quot;, size.top / 2540.0);
902*5e7646d2SAndroid Build Coastguard Worker  }
903*5e7646d2SAndroid Build Coastguard Worker}
904*5e7646d2SAndroid Build Coastguard Worker</code></pre>
905*5e7646d2SAndroid Build Coastguard Worker    <p>Finally, the <code>cupsGetDestMediaDefault</code> function returns the default media size:</p>
906*5e7646d2SAndroid Build Coastguard Worker    <pre><code>int
907*5e7646d2SAndroid Build Coastguard WorkercupsGetDestMediaDefault(http_t *http, cups_dest_t *dest,
908*5e7646d2SAndroid Build Coastguard Worker                        cups_dinfo_t *dinfo, unsigned flags,
909*5e7646d2SAndroid Build Coastguard Worker                        cups_size_t *size);
910*5e7646d2SAndroid Build Coastguard Worker</code></pre>
911*5e7646d2SAndroid Build Coastguard Worker    <h4><a id="localizing-options-and-values">Localizing Options and Values</a></h4>
912*5e7646d2SAndroid Build Coastguard Worker    <p>CUPS provides three functions to get localized, human-readable strings in the user's current locale for options and values: <code>cupsLocalizeDestMedia</code>, <code>cupsLocalizeDestOption</code>, and <code>cupsLocalizeDestValue</code>:</p>
913*5e7646d2SAndroid Build Coastguard Worker    <pre><code>const char *
914*5e7646d2SAndroid Build Coastguard WorkercupsLocalizeDestMedia(http_t *http, cups_dest_t *dest,
915*5e7646d2SAndroid Build Coastguard Worker                      cups_dinfo_t *info, unsigned flags,
916*5e7646d2SAndroid Build Coastguard Worker                      cups_size_t *size);
917*5e7646d2SAndroid Build Coastguard Worker
918*5e7646d2SAndroid Build Coastguard Workerconst char *
919*5e7646d2SAndroid Build Coastguard WorkercupsLocalizeDestOption(http_t *http, cups_dest_t *dest,
920*5e7646d2SAndroid Build Coastguard Worker                       cups_dinfo_t *info,
921*5e7646d2SAndroid Build Coastguard Worker                       const char *option);
922*5e7646d2SAndroid Build Coastguard Worker
923*5e7646d2SAndroid Build Coastguard Workerconst char *
924*5e7646d2SAndroid Build Coastguard WorkercupsLocalizeDestValue(http_t *http, cups_dest_t *dest,
925*5e7646d2SAndroid Build Coastguard Worker                      cups_dinfo_t *info,
926*5e7646d2SAndroid Build Coastguard Worker                      const char *option, const char *value);
927*5e7646d2SAndroid Build Coastguard Worker</code></pre>
928*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="submitting-a-print-job">Submitting a Print Job</a></h3>
929*5e7646d2SAndroid Build Coastguard Worker    <p>Once you are ready to submit a print job, you create a job using the <code>cupsCreateDestJob</code> function:</p>
930*5e7646d2SAndroid Build Coastguard Worker    <pre><code>ipp_status_t
931*5e7646d2SAndroid Build Coastguard WorkercupsCreateDestJob(http_t *http, cups_dest_t *dest,
932*5e7646d2SAndroid Build Coastguard Worker                  cups_dinfo_t *info, int *job_id,
933*5e7646d2SAndroid Build Coastguard Worker                  const char *title, int num_options,
934*5e7646d2SAndroid Build Coastguard Worker                  cups_option_t *options);
935*5e7646d2SAndroid Build Coastguard Worker</code></pre>
936*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>title</code> argument specifies a name for the print job such as &quot;My Document&quot;. The <code>num_options</code> and <code>options</code> arguments specify the options for the print job which are allocated using the <code>cupsAddOption</code> function.</p>
937*5e7646d2SAndroid Build Coastguard Worker    <p>When successful, the job's numeric identifier is stored in the integer pointed to by the <code>job_id</code> argument and <code>IPP_STATUS_OK</code> is returned. Otherwise, an IPP error status is returned.</p>
938*5e7646d2SAndroid Build Coastguard Worker    <p>For example, the following code creates a new job that will print 42 copies of a two-sided US Letter document:</p>
939*5e7646d2SAndroid Build Coastguard Worker    <pre><code>int job_id = 0;
940*5e7646d2SAndroid Build Coastguard Workerint num_options = 0;
941*5e7646d2SAndroid Build Coastguard Workercups_option_t *options = NULL;
942*5e7646d2SAndroid Build Coastguard Worker
943*5e7646d2SAndroid Build Coastguard Workernum_options = cupsAddOption(CUPS_COPIES, &quot;42&quot;,
944*5e7646d2SAndroid Build Coastguard Worker                            num_options, &amp;options);
945*5e7646d2SAndroid Build Coastguard Workernum_options = cupsAddOption(CUPS_MEDIA, CUPS_MEDIA_LETTER,
946*5e7646d2SAndroid Build Coastguard Worker                            num_options, &amp;options);
947*5e7646d2SAndroid Build Coastguard Workernum_options = cupsAddOption(CUPS_SIDES,
948*5e7646d2SAndroid Build Coastguard Worker                            CUPS_SIDES_TWO_SIDED_PORTRAIT,
949*5e7646d2SAndroid Build Coastguard Worker                            num_options, &amp;options);
950*5e7646d2SAndroid Build Coastguard Worker
951*5e7646d2SAndroid Build Coastguard Workerif (cupsCreateDestJob(CUPS_HTTP_DEFAULT, dest, info,
952*5e7646d2SAndroid Build Coastguard Worker                      &amp;job_id, &quot;My Document&quot;, num_options,
953*5e7646d2SAndroid Build Coastguard Worker                      options) == IPP_STATUS_OK)
954*5e7646d2SAndroid Build Coastguard Worker  printf(&quot;Created job: %d\n&quot;, job_id);
955*5e7646d2SAndroid Build Coastguard Workerelse
956*5e7646d2SAndroid Build Coastguard Worker  printf(&quot;Unable to create job: %s\n&quot;,
957*5e7646d2SAndroid Build Coastguard Worker         cupsLastErrorString());
958*5e7646d2SAndroid Build Coastguard Worker</code></pre>
959*5e7646d2SAndroid Build Coastguard Worker    <p>Once the job is created, you submit documents for the job using the <code>cupsStartDestDocument</code>, <code>cupsWriteRequestData</code>, and <code>cupsFinishDestDocument</code> functions:</p>
960*5e7646d2SAndroid Build Coastguard Worker    <pre><code>http_status_t
961*5e7646d2SAndroid Build Coastguard WorkercupsStartDestDocument(http_t *http, cups_dest_t *dest,
962*5e7646d2SAndroid Build Coastguard Worker                      cups_dinfo_t *info, int job_id,
963*5e7646d2SAndroid Build Coastguard Worker                      const char *docname,
964*5e7646d2SAndroid Build Coastguard Worker                      const char *format,
965*5e7646d2SAndroid Build Coastguard Worker                      int num_options,
966*5e7646d2SAndroid Build Coastguard Worker                      cups_option_t *options,
967*5e7646d2SAndroid Build Coastguard Worker                      int last_document);
968*5e7646d2SAndroid Build Coastguard Worker
969*5e7646d2SAndroid Build Coastguard Workerhttp_status_t
970*5e7646d2SAndroid Build Coastguard WorkercupsWriteRequestData(http_t *http, const char *buffer,
971*5e7646d2SAndroid Build Coastguard Worker                     size_t length);
972*5e7646d2SAndroid Build Coastguard Worker
973*5e7646d2SAndroid Build Coastguard Workeripp_status_t
974*5e7646d2SAndroid Build Coastguard WorkercupsFinishDestDocument(http_t *http, cups_dest_t *dest,
975*5e7646d2SAndroid Build Coastguard Worker                       cups_dinfo_t *info);
976*5e7646d2SAndroid Build Coastguard Worker</code></pre>
977*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>docname</code> argument specifies the name of the document, typically the original filename. The <code>format</code> argument specifies the MIME media type of the document, including the following constants:</p>
978*5e7646d2SAndroid Build Coastguard Worker    <ul>
979*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_FORMAT_JPEG</code>: &quot;image/jpeg&quot;</li>
980*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_FORMAT_PDF</code>: &quot;application/pdf&quot;</li>
981*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_FORMAT_POSTSCRIPT</code>: &quot;application/postscript&quot;</li>
982*5e7646d2SAndroid Build Coastguard Worker    <li><code>CUPS_FORMAT_TEXT</code>: &quot;text/plain&quot;</li>
983*5e7646d2SAndroid Build Coastguard Worker</ul>
984*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>num_options</code> and <code>options</code> arguments specify per-document print options, which at present must be 0 and <code>NULL</code>. The <code>last_document</code> argument specifies whether this is the last document in the job.</p>
985*5e7646d2SAndroid Build Coastguard Worker    <p>For example, the following code submits a PDF file to the job that was just created:</p>
986*5e7646d2SAndroid Build Coastguard Worker    <pre><code>FILE *fp = fopen(&quot;filename.pdf&quot;, &quot;rb&quot;);
987*5e7646d2SAndroid Build Coastguard Workersize_t bytes;
988*5e7646d2SAndroid Build Coastguard Workerchar buffer[65536];
989*5e7646d2SAndroid Build Coastguard Worker
990*5e7646d2SAndroid Build Coastguard Workerif (cupsStartDestDocument(CUPS_HTTP_DEFAULT, dest, info,
991*5e7646d2SAndroid Build Coastguard Worker                          job_id, &quot;filename.pdf&quot;, 0, NULL,
992*5e7646d2SAndroid Build Coastguard Worker                          1) == HTTP_STATUS_CONTINUE)
993*5e7646d2SAndroid Build Coastguard Worker{
994*5e7646d2SAndroid Build Coastguard Worker  while ((bytes = fread(buffer, 1, sizeof(buffer), fp)) &gt; 0)
995*5e7646d2SAndroid Build Coastguard Worker    if (cupsWriteRequestData(CUPS_HTTP_DEFAULT, buffer,
996*5e7646d2SAndroid Build Coastguard Worker                             bytes) != HTTP_STATUS_CONTINUE)
997*5e7646d2SAndroid Build Coastguard Worker      break;
998*5e7646d2SAndroid Build Coastguard Worker
999*5e7646d2SAndroid Build Coastguard Worker  if (cupsFinishDestDocument(CUPS_HTTP_DEFAULT, dest,
1000*5e7646d2SAndroid Build Coastguard Worker                             info) == IPP_STATUS_OK)
1001*5e7646d2SAndroid Build Coastguard Worker    puts(&quot;Document send succeeded.&quot;);
1002*5e7646d2SAndroid Build Coastguard Worker  else
1003*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;Document send failed: %s\n&quot;,
1004*5e7646d2SAndroid Build Coastguard Worker           cupsLastErrorString());
1005*5e7646d2SAndroid Build Coastguard Worker}
1006*5e7646d2SAndroid Build Coastguard Worker
1007*5e7646d2SAndroid Build Coastguard Workerfclose(fp);
1008*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1009*5e7646d2SAndroid Build Coastguard Worker    <h2><a id="sending-ipp-requests">Sending IPP Requests</a></h2>
1010*5e7646d2SAndroid Build Coastguard Worker    <p>CUPS provides a rich API for sending IPP requests to the scheduler or printers, typically from management or utility applications whose primary purpose is not to send print jobs.</p>
1011*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="connecting-to-the-scheduler-or-printer">Connecting to the Scheduler or Printer</a></h3>
1012*5e7646d2SAndroid Build Coastguard Worker    <p>The connection to the scheduler or printer is represented by the HTTP connection type <code>http_t</code>. The <code>cupsConnectDest</code> function connects to the scheduler or printer associated with the destination:</p>
1013*5e7646d2SAndroid Build Coastguard Worker    <pre><code>http_t *
1014*5e7646d2SAndroid Build Coastguard WorkercupsConnectDest(cups_dest_t *dest, unsigned flags, int msec,
1015*5e7646d2SAndroid Build Coastguard Worker                int *cancel, char *resource,
1016*5e7646d2SAndroid Build Coastguard Worker                size_t resourcesize, cups_dest_cb_t cb,
1017*5e7646d2SAndroid Build Coastguard Worker                void *user_data);
1018*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1019*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>dest</code> argument specifies the destination to connect to.</p>
1020*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>flags</code> argument specifies whether you want to connect to the scheduler (<code>CUPS_DEST_FLAGS_NONE</code>) or device/printer (<code>CUPS_DEST_FLAGS_DEVICE</code>) associated with the destination.</p>
1021*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>msec</code> argument specifies how long you are willing to wait for the connection to be established in milliseconds. Specify a value of <code>-1</code> to wait indefinitely.</p>
1022*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>cancel</code> argument specifies the address of an integer variable that can be set to a non-zero value to cancel the connection. Specify a value of <code>NULL</code> to not provide a cancel variable.</p>
1023*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>resource</code> and <code>resourcesize</code> arguments specify the address and size of a character string array to hold the path to use when sending an IPP request.</p>
1024*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>cb</code> and <code>user_data</code> arguments specify a destination callback function that returns 1 to continue connecting or 0 to stop. The destination callback work the same way as the one used for the <code>cupsEnumDests</code> function.</p>
1025*5e7646d2SAndroid Build Coastguard Worker    <p>On success, a HTTP connection is returned that can be used to send IPP requests and get IPP responses.</p>
1026*5e7646d2SAndroid Build Coastguard Worker    <p>For example, the following code connects to the printer associated with a destination with a 30 second timeout:</p>
1027*5e7646d2SAndroid Build Coastguard Worker    <pre><code>char resource[256];
1028*5e7646d2SAndroid Build Coastguard Workerhttp_t *http = cupsConnectDest(dest, CUPS_DEST_FLAGS_DEVICE,
1029*5e7646d2SAndroid Build Coastguard Worker                               30000, NULL, resource,
1030*5e7646d2SAndroid Build Coastguard Worker                               sizeof(resource), NULL, NULL);
1031*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1032*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="creating-an-ipp-request">Creating an IPP Request</a></h3>
1033*5e7646d2SAndroid Build Coastguard Worker    <p>IPP requests are represented by the IPP message type <code>ipp_t</code> and each IPP attribute in the request is representing using the type <code>ipp_attribute_t</code>. Each IPP request includes an operation code (<code>IPP_OP_CREATE_JOB</code>, <code>IPP_OP_GET_PRINTER_ATTRIBUTES</code>, etc.) and a 32-bit integer identifier.</p>
1034*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>ippNewRequest</code> function creates a new IPP request:</p>
1035*5e7646d2SAndroid Build Coastguard Worker    <pre><code>ipp_t *
1036*5e7646d2SAndroid Build Coastguard WorkerippNewRequest(ipp_op_t op);
1037*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1038*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>op</code> argument specifies the IPP operation code for the request. For example, the following code creates an IPP Get-Printer-Attributes request:</p>
1039*5e7646d2SAndroid Build Coastguard Worker    <pre><code>ipp_t *request = ippNewRequest(IPP_OP_GET_PRINTER_ATTRIBUTES);
1040*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1041*5e7646d2SAndroid Build Coastguard Worker    <p>The request identifier is automatically set to a unique value for the current process.</p>
1042*5e7646d2SAndroid Build Coastguard Worker    <p>Each IPP request starts with two IPP attributes, &quot;attributes-charset&quot; and &quot;attributes-natural-language&quot;, followed by IPP attribute(s) that specify the target of the operation. The <code>ippNewRequest</code> automatically adds the correct &quot;attributes-charset&quot; and &quot;attributes-natural-language&quot; attributes, but you must add the target attribute(s). For example, the following code adds the &quot;printer-uri&quot; attribute to the IPP Get-Printer-Attributes request to specify which printer is being queried:</p>
1043*5e7646d2SAndroid Build Coastguard Worker    <pre><code>const char *printer_uri = cupsGetOption(&quot;device-uri&quot;,
1044*5e7646d2SAndroid Build Coastguard Worker                                        dest-&gt;num_options,
1045*5e7646d2SAndroid Build Coastguard Worker                                        dest-&gt;options);
1046*5e7646d2SAndroid Build Coastguard Worker
1047*5e7646d2SAndroid Build Coastguard WorkerippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI,
1048*5e7646d2SAndroid Build Coastguard Worker             &quot;printer-uri&quot;, NULL, printer_uri);
1049*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1050*5e7646d2SAndroid Build Coastguard Worker    <blockquote>
1051*5e7646d2SAndroid Build Coastguard Worker    <p><strong>Note:</strong></p>
1052*5e7646d2SAndroid Build Coastguard Worker    <p>If we wanted to query the scheduler instead of the device, we would look up the &quot;printer-uri-supported&quot; option instead of the &quot;device-uri&quot; value.</p>
1053*5e7646d2SAndroid Build Coastguard Worker</blockquote>
1054*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>ippAddString</code> function adds the &quot;printer-uri&quot; attribute the the IPP request. The <code>IPP_TAG_OPERATION</code> argument specifies that the attribute is part of the operation. The <code>IPP_TAG_URI</code> argument specifies that the value is a Universal Resource Identifier (URI) string. The <code>NULL</code> argument specifies there is no language (English, French, Japanese, etc.) associated with the string, and the <code>printer_uri</code> argument specifies the string value.</p>
1055*5e7646d2SAndroid Build Coastguard Worker    <p>The IPP Get-Printer-Attributes request also supports an IPP attribute called &quot;requested-attributes&quot; that lists the attributes and values you are interested in. For example, the following code requests the printer state attributes:</p>
1056*5e7646d2SAndroid Build Coastguard Worker    <pre><code>static const char * const requested_attributes[] =
1057*5e7646d2SAndroid Build Coastguard Worker{
1058*5e7646d2SAndroid Build Coastguard Worker  &quot;printer-state&quot;,
1059*5e7646d2SAndroid Build Coastguard Worker  &quot;printer-state-message&quot;,
1060*5e7646d2SAndroid Build Coastguard Worker  &quot;printer-state-reasons&quot;
1061*5e7646d2SAndroid Build Coastguard Worker};
1062*5e7646d2SAndroid Build Coastguard Worker
1063*5e7646d2SAndroid Build Coastguard WorkerippAddStrings(request, IPP_TAG_OPERATION, IPP_TAG_KEYWORD,
1064*5e7646d2SAndroid Build Coastguard Worker              &quot;requested-attributes&quot;, 3, NULL,
1065*5e7646d2SAndroid Build Coastguard Worker              requested_attributes);
1066*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1067*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>ippAddStrings</code> function adds an attribute with one or more strings, in this case three. The <code>IPP_TAG_KEYWORD</code> argument specifies that the strings are keyword values, which are used for attribute names. All strings use the same language (<code>NULL</code>), and the attribute will contain the three strings in the array <code>requested_attributes</code>.</p>
1068*5e7646d2SAndroid Build Coastguard Worker    <p>CUPS provides many functions to adding attributes of different types:</p>
1069*5e7646d2SAndroid Build Coastguard Worker    <ul>
1070*5e7646d2SAndroid Build Coastguard Worker    <li><code>ippAddBoolean</code> adds a boolean (<code>IPP_TAG_BOOLEAN</code>) attribute with one value.</li>
1071*5e7646d2SAndroid Build Coastguard Worker    <li><code>ippAddInteger</code> adds an enum (<code>IPP_TAG_ENUM</code>) or integer (<code>IPP_TAG_INTEGER</code>) attribute with one value.</li>
1072*5e7646d2SAndroid Build Coastguard Worker    <li><code>ippAddIntegers</code> adds an enum or integer attribute with one or more values.</li>
1073*5e7646d2SAndroid Build Coastguard Worker    <li><code>ippAddOctetString</code> adds an octetString attribute with one value.</li>
1074*5e7646d2SAndroid Build Coastguard Worker    <li><code>ippAddOutOfBand</code> adds a admin-defined (<code>IPP_TAG_ADMINDEFINE</code>), default (<code>IPP_TAG_DEFAULT</code>), delete-attribute (<code>IPP_TAG_DELETEATTR</code>), no-value (<code>IPP_TAG_NOVALUE</code>), not-settable (<code>IPP_TAG_NOTSETTABLE</code>), unknown (<code>IPP_TAG_UNKNOWN</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_VALUE</code>) out-of-band attribute.</li>
1075*5e7646d2SAndroid Build Coastguard Worker    <li><code>ippAddRange</code> adds a rangeOfInteger attribute with one range.</li>
1076*5e7646d2SAndroid Build Coastguard Worker    <li><code>ippAddRanges</code> adds a rangeOfInteger attribute with one or more ranges.</li>
1077*5e7646d2SAndroid Build Coastguard Worker    <li><code>ippAddResolution</code> adds a resolution attribute with one resolution.</li>
1078*5e7646d2SAndroid Build Coastguard Worker    <li><code>ippAddResolutions</code> adds a resolution attribute with one or more resolutions.</li>
1079*5e7646d2SAndroid Build Coastguard Worker    <li><code>ippAddString</code> adds a charset (<code>IPP_TAG_CHARSET</code>), keyword (<code>IPP_TAG_KEYWORD</code>), mimeMediaType (<code>IPP_TAG_MIMETYPE</code>), name (<code>IPP_TAG_NAME</code> and <code>IPP_TAG_NAMELANG</code>), naturalLanguage (<code>IPP_TAG_NATURAL_LANGUAGE</code>), text (<code>IPP_TAG_TEXT</code> and <code>IPP_TAG_TEXTLANG</code>), uri (<code>IPP_TAG_URI</code>), or uriScheme (<code>IPP_TAG_URISCHEME</code>) attribute with one value.</li>
1080*5e7646d2SAndroid Build Coastguard Worker    <li><code>ippAddStrings</code> adds a charset, keyword, mimeMediaType, name, naturalLanguage, text, uri, or uriScheme attribute with one or more values.</li>
1081*5e7646d2SAndroid Build Coastguard Worker</ul>
1082*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="sending-the-ipp-request">Sending the IPP Request</a></h3>
1083*5e7646d2SAndroid Build Coastguard Worker    <p>Once you have created the IPP request, you can send it using the <code>cupsDoRequest</code> function. For example, the following code sends the IPP Get-Printer-Attributes request to the destination and saves the response:</p>
1084*5e7646d2SAndroid Build Coastguard Worker    <pre><code>ipp_t *response = cupsDoRequest(http, request, resource);
1085*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1086*5e7646d2SAndroid Build Coastguard Worker    <p>For requests like Send-Document that include a file, the <code>cupsDoFileRequest</code> function should be used:</p>
1087*5e7646d2SAndroid Build Coastguard Worker    <pre><code>ipp_t *response = cupsDoFileRequest(http, request, resource,
1088*5e7646d2SAndroid Build Coastguard Worker                                    filename);
1089*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1090*5e7646d2SAndroid Build Coastguard Worker    <p>Both <code>cupsDoRequest</code> and <code>cupsDoFileRequest</code> free the IPP request. If a valid IPP response is received, it is stored in a new IPP message (<code>ipp_t</code>) and returned to the caller. Otherwise <code>NULL</code> is returned.</p>
1091*5e7646d2SAndroid Build Coastguard Worker    <p>The status from the most recent request can be queried using the <code>cupsLastError</code> function, for example:</p>
1092*5e7646d2SAndroid Build Coastguard Worker    <pre><code>if (cupsLastError() &gt;= IPP_STATUS_ERROR_BAD_REQUEST)
1093*5e7646d2SAndroid Build Coastguard Worker{
1094*5e7646d2SAndroid Build Coastguard Worker  /* request failed */
1095*5e7646d2SAndroid Build Coastguard Worker}
1096*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1097*5e7646d2SAndroid Build Coastguard Worker    <p>A human-readable error message is also available using the <code>cupsLastErrorString</code> function:</p>
1098*5e7646d2SAndroid Build Coastguard Worker    <pre><code>if (cupsLastError() &gt;= IPP_STATUS_ERROR_BAD_REQUEST)
1099*5e7646d2SAndroid Build Coastguard Worker{
1100*5e7646d2SAndroid Build Coastguard Worker  /* request failed */
1101*5e7646d2SAndroid Build Coastguard Worker  printf(&quot;Request failed: %s\n&quot;, cupsLastErrorString());
1102*5e7646d2SAndroid Build Coastguard Worker}
1103*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1104*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="processing-the-ipp-response">Processing the IPP Response</a></h3>
1105*5e7646d2SAndroid Build Coastguard Worker    <p>Each response to an IPP request is also an IPP message (<code>ipp_t</code>) with its own IPP attributes (<code>ipp_attribute_t</code>) that includes a status code (<code>IPP_STATUS_OK</code>, <code>IPP_STATUS_ERROR_BAD_REQUEST</code>, etc.) and the corresponding 32-bit integer identifier from the request.</p>
1106*5e7646d2SAndroid Build Coastguard Worker    <p>For example, the following code finds the printer state attributes and prints their values:</p>
1107*5e7646d2SAndroid Build Coastguard Worker    <pre><code>ipp_attribute_t *attr;
1108*5e7646d2SAndroid Build Coastguard Worker
1109*5e7646d2SAndroid Build Coastguard Workerif ((attr = ippFindAttribute(response, &quot;printer-state&quot;,
1110*5e7646d2SAndroid Build Coastguard Worker                             IPP_TAG_ENUM)) != NULL)
1111*5e7646d2SAndroid Build Coastguard Worker{
1112*5e7646d2SAndroid Build Coastguard Worker  printf(&quot;printer-state=%s\n&quot;,
1113*5e7646d2SAndroid Build Coastguard Worker         ippEnumString(&quot;printer-state&quot;, ippGetInteger(attr, 0)));
1114*5e7646d2SAndroid Build Coastguard Worker}
1115*5e7646d2SAndroid Build Coastguard Workerelse
1116*5e7646d2SAndroid Build Coastguard Worker  puts(&quot;printer-state=unknown&quot;);
1117*5e7646d2SAndroid Build Coastguard Worker
1118*5e7646d2SAndroid Build Coastguard Workerif ((attr = ippFindAttribute(response, &quot;printer-state-message&quot;,
1119*5e7646d2SAndroid Build Coastguard Worker                             IPP_TAG_TEXT)) != NULL)
1120*5e7646d2SAndroid Build Coastguard Worker{
1121*5e7646d2SAndroid Build Coastguard Worker  printf(&quot;printer-state-message=\&quot;%s\&quot;\n&quot;,
1122*5e7646d2SAndroid Build Coastguard Worker         ippGetString(attr, 0, NULL)));
1123*5e7646d2SAndroid Build Coastguard Worker}
1124*5e7646d2SAndroid Build Coastguard Worker
1125*5e7646d2SAndroid Build Coastguard Workerif ((attr = ippFindAttribute(response, &quot;printer-state-reasons&quot;,
1126*5e7646d2SAndroid Build Coastguard Worker                             IPP_TAG_KEYWORD)) != NULL)
1127*5e7646d2SAndroid Build Coastguard Worker{
1128*5e7646d2SAndroid Build Coastguard Worker  int i, count = ippGetCount(attr);
1129*5e7646d2SAndroid Build Coastguard Worker
1130*5e7646d2SAndroid Build Coastguard Worker  puts(&quot;printer-state-reasons=&quot;);
1131*5e7646d2SAndroid Build Coastguard Worker  for (i = 0; i &lt; count; i ++)
1132*5e7646d2SAndroid Build Coastguard Worker    printf(&quot;    %s\n&quot;, ippGetString(attr, i, NULL)));
1133*5e7646d2SAndroid Build Coastguard Worker}
1134*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1135*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>ippGetCount</code> function returns the number of values in an attribute.</p>
1136*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>ippGetInteger</code> and <code>ippGetString</code> functions return a single integer or string value from an attribute.</p>
1137*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>ippEnumString</code> function converts a enum value to its keyword (string) equivalent.</p>
1138*5e7646d2SAndroid Build Coastguard Worker    <p>Once you are done using the IPP response message, free it using the <code>ippDelete</code> function:</p>
1139*5e7646d2SAndroid Build Coastguard Worker    <pre><code>ippDelete(response);
1140*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1141*5e7646d2SAndroid Build Coastguard Worker    <h3><a id="authentication">Authentication</a></h3>
1142*5e7646d2SAndroid Build Coastguard Worker    <p>CUPS normally handles authentication through the console. GUI applications should set a password callback using the <code>cupsSetPasswordCB2</code> function:</p>
1143*5e7646d2SAndroid Build Coastguard Worker    <pre><code>void
1144*5e7646d2SAndroid Build Coastguard WorkercupsSetPasswordCB2(cups_password_cb2_t cb, void *user_data);
1145*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1146*5e7646d2SAndroid Build Coastguard Worker    <p>The password callback will be called when needed and is responsible for setting the current user name using <code>cupsSetUser</code> and returning a string:</p>
1147*5e7646d2SAndroid Build Coastguard Worker    <pre><code>const char *
1148*5e7646d2SAndroid Build Coastguard Workercups_password_cb2(const char *prompt, http_t *http,
1149*5e7646d2SAndroid Build Coastguard Worker                  const char *method, const char *resource,
1150*5e7646d2SAndroid Build Coastguard Worker                  void *user_data);
1151*5e7646d2SAndroid Build Coastguard Worker</code></pre>
1152*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>prompt</code> argument is a string from CUPS that should be displayed to the user.</p>
1153*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>http</code> argument is the connection hosting the request that is being authenticated. The password callback can call the <code>httpGetField</code> and <code>httpGetSubField</code> functions to look for additional details concerning the authentication challenge.</p>
1154*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>method</code> argument specifies the HTTP method used for the request and is typically &quot;POST&quot;.</p>
1155*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>resource</code> argument specifies the path used for the request.</p>
1156*5e7646d2SAndroid Build Coastguard Worker    <p>The <code>user_data</code> argument provides the user data pointer from the <code>cupsSetPasswordCB2</code> call.</p>
1157*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title"><a id="FUNCTIONS">Functions</a></h2>
1158*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsAddDest">cupsAddDest</a></h3>
1159*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add a destination to the list of destinations.</p>
1160*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1161*5e7646d2SAndroid Build Coastguard Workerint cupsAddDest(const char *name, const char *instance, int num_dests, <a href="#cups_dest_t">cups_dest_t</a> **dests);</p>
1162*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1163*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1164*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1165*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination name</td></tr>
1166*5e7646d2SAndroid Build Coastguard Worker<tr><th>instance</th>
1167*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Instance name or <code>NULL</code> for none/primary</td></tr>
1168*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_dests</th>
1169*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of destinations</td></tr>
1170*5e7646d2SAndroid Build Coastguard Worker<tr><th>dests</th>
1171*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destinations</td></tr>
1172*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1173*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1174*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New number of destinations</p>
1175*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1176*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function cannot be used to add a new class or printer queue,
1177*5e7646d2SAndroid Build Coastguard Workerit only adds a new container of saved options for the named
1178*5e7646d2SAndroid Build Coastguard Workerdestination or instance.<br>
1179*5e7646d2SAndroid Build Coastguard Worker<br>
1180*5e7646d2SAndroid Build Coastguard WorkerIf the named destination already exists, the destination list is
1181*5e7646d2SAndroid Build Coastguard Workerreturned unchanged.  Adding a new instance of a destination creates
1182*5e7646d2SAndroid Build Coastguard Workera copy of that destination's options.<br>
1183*5e7646d2SAndroid Build Coastguard Worker<br>
1184*5e7646d2SAndroid Build Coastguard WorkerUse the <a href="#cupsSaveDests"><code>cupsSaveDests</code></a> function to save the updated list of
1185*5e7646d2SAndroid Build Coastguard Workerdestinations to the user's lpoptions file.</p>
1186*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.3/macOS 10.14&#160;</span><a id="cupsAddDestMediaOptions">cupsAddDestMediaOptions</a></h3>
1187*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add the option corresponding to the specified media size.</p>
1188*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1189*5e7646d2SAndroid Build Coastguard Workerint cupsAddDestMediaOptions(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, unsigned flags, <a href="#cups_size_t">cups_size_t</a> *size, int num_options, <a href="#cups_option_t">cups_option_t</a> **options);</p>
1190*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1191*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1192*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1193*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1194*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1195*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1196*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1197*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1198*5e7646d2SAndroid Build Coastguard Worker<tr><th>flags</th>
1199*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media matching flags</td></tr>
1200*5e7646d2SAndroid Build Coastguard Worker<tr><th>size</th>
1201*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media size</td></tr>
1202*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
1203*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Current number of options</td></tr>
1204*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
1205*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Options</td></tr>
1206*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1207*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1208*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New number of options</p>
1209*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.2.4/macOS 10.13&#160;</span><a id="cupsAddIntegerOption">cupsAddIntegerOption</a></h3>
1210*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add an integer option to an option array.</p>
1211*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1212*5e7646d2SAndroid Build Coastguard Workerint cupsAddIntegerOption(const char *name, int value, int num_options, <a href="#cups_option_t">cups_option_t</a> **options);</p>
1213*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1214*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1215*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1216*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of option</td></tr>
1217*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
1218*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value of option</td></tr>
1219*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
1220*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
1221*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
1222*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to options</td></tr>
1223*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1224*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1225*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of options</p>
1226*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1227*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">New option arrays can be initialized simply by passing 0 for the
1228*5e7646d2SAndroid Build Coastguard Worker&quot;num_options&quot; parameter.
1229*5e7646d2SAndroid Build Coastguard Worker
1230*5e7646d2SAndroid Build Coastguard Worker</p>
1231*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsAddOption">cupsAddOption</a></h3>
1232*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add an option to an option array.</p>
1233*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1234*5e7646d2SAndroid Build Coastguard Workerint cupsAddOption(const char *name, const char *value, int num_options, <a href="#cups_option_t">cups_option_t</a> **options);</p>
1235*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1236*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1237*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1238*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of option</td></tr>
1239*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
1240*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value of option</td></tr>
1241*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
1242*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
1243*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
1244*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to options</td></tr>
1245*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1246*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1247*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of options</p>
1248*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1249*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">New option arrays can be initialized simply by passing 0 for the
1250*5e7646d2SAndroid Build Coastguard Worker&quot;num_options&quot; parameter.</p>
1251*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsCancelDestJob">cupsCancelDestJob</a></h3>
1252*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Cancel a job on a destination.</p>
1253*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1254*5e7646d2SAndroid Build Coastguard Workeripp_status_t cupsCancelDestJob(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, int job_id);</p>
1255*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1256*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1257*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1258*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1259*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1260*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1261*5e7646d2SAndroid Build Coastguard Worker<tr><th>job_id</th>
1262*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Job ID</td></tr>
1263*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1264*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1265*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of cancel operation</p>
1266*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1267*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The &quot;job_id&quot; is the number returned by cupsCreateDestJob.<br>
1268*5e7646d2SAndroid Build Coastguard Worker<br>
1269*5e7646d2SAndroid Build Coastguard WorkerReturns <code>IPP_STATUS_OK</code> on success and
1270*5e7646d2SAndroid Build Coastguard Worker<code>IPP_STATUS_ERROR_NOT_AUTHORIZED</code> or
1271*5e7646d2SAndroid Build Coastguard Worker<code>IPP_STATUS_ERROR_FORBIDDEN</code> on failure.
1272*5e7646d2SAndroid Build Coastguard Worker
1273*5e7646d2SAndroid Build Coastguard Worker</p>
1274*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsCheckDestSupported">cupsCheckDestSupported</a></h3>
1275*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Check that the option and value are supported
1276*5e7646d2SAndroid Build Coastguard Workerby the destination.</p>
1277*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1278*5e7646d2SAndroid Build Coastguard Workerint cupsCheckDestSupported(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, const char *option, const char *value);</p>
1279*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1280*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1281*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1282*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1283*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1284*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1285*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1286*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1287*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
1288*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option</td></tr>
1289*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
1290*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value or <code>NULL</code></td></tr>
1291*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1292*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1293*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if supported, 0 otherwise</p>
1294*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1295*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Returns 1 if supported, 0 otherwise.
1296*5e7646d2SAndroid Build Coastguard Worker
1297*5e7646d2SAndroid Build Coastguard Worker</p>
1298*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsCloseDestJob">cupsCloseDestJob</a></h3>
1299*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Close a job and start printing.</p>
1300*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1301*5e7646d2SAndroid Build Coastguard Workeripp_status_t cupsCloseDestJob(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *info, int job_id);</p>
1302*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1303*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1304*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1305*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1306*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1307*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1308*5e7646d2SAndroid Build Coastguard Worker<tr><th>info</th>
1309*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1310*5e7646d2SAndroid Build Coastguard Worker<tr><th>job_id</th>
1311*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Job ID</td></tr>
1312*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1313*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1314*5e7646d2SAndroid Build Coastguard Worker        <p class="description">IPP status code</p>
1315*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1316*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Use when the last call to cupsStartDocument passed 0 for &quot;last_document&quot;.
1317*5e7646d2SAndroid Build Coastguard Worker&quot;job_id&quot; is the job ID returned by cupsCreateDestJob. Returns <code>IPP_STATUS_OK</code>
1318*5e7646d2SAndroid Build Coastguard Workeron success.
1319*5e7646d2SAndroid Build Coastguard Worker
1320*5e7646d2SAndroid Build Coastguard Worker</p>
1321*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsConnectDest">cupsConnectDest</a></h3>
1322*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Open a connection to the destination.</p>
1323*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1324*5e7646d2SAndroid Build Coastguard Worker<a href="#http_t">http_t</a> *cupsConnectDest(<a href="#cups_dest_t">cups_dest_t</a> *dest, unsigned flags, int msec, int *cancel, char *resource, size_t resourcesize, <a href="#cups_dest_cb_t">cups_dest_cb_t</a> cb, void *user_data);</p>
1325*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1326*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1327*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1328*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1329*5e7646d2SAndroid Build Coastguard Worker<tr><th>flags</th>
1330*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection flags</td></tr>
1331*5e7646d2SAndroid Build Coastguard Worker<tr><th>msec</th>
1332*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Timeout in milliseconds</td></tr>
1333*5e7646d2SAndroid Build Coastguard Worker<tr><th>cancel</th>
1334*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to &quot;cancel&quot; variable</td></tr>
1335*5e7646d2SAndroid Build Coastguard Worker<tr><th>resource</th>
1336*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Resource buffer</td></tr>
1337*5e7646d2SAndroid Build Coastguard Worker<tr><th>resourcesize</th>
1338*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of resource buffer</td></tr>
1339*5e7646d2SAndroid Build Coastguard Worker<tr><th>cb</th>
1340*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Callback function</td></tr>
1341*5e7646d2SAndroid Build Coastguard Worker<tr><th>user_data</th>
1342*5e7646d2SAndroid Build Coastguard Worker        <td class="description">User data pointer</td></tr>
1343*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1344*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1345*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Connection to destination or <code>NULL</code></p>
1346*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1347*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Connect to the destination, returning a new <code>http_t</code> connection object
1348*5e7646d2SAndroid Build Coastguard Workerand optionally the resource path to use for the destination.  These calls
1349*5e7646d2SAndroid Build Coastguard Workerwill block until a connection is made, the timeout expires, the integer
1350*5e7646d2SAndroid Build Coastguard Workerpointed to by &quot;cancel&quot; is non-zero, or the callback function (or block)
1351*5e7646d2SAndroid Build Coastguard Workerreturns 0.  The caller is responsible for calling <a href="#httpClose"><code>httpClose</code></a> on the
1352*5e7646d2SAndroid Build Coastguard Workerreturned connection.<br>
1353*5e7646d2SAndroid Build Coastguard Worker<br>
1354*5e7646d2SAndroid Build Coastguard WorkerStarting with CUPS 2.2.4, the caller can pass <code>CUPS_DEST_FLAGS_DEVICE</code>
1355*5e7646d2SAndroid Build Coastguard Workerfor the &quot;flags&quot; argument to connect directly to the device associated with
1356*5e7646d2SAndroid Build Coastguard Workerthe destination.  Otherwise, the connection is made to the CUPS scheduler
1357*5e7646d2SAndroid Build Coastguard Workerassociated with the destination.
1358*5e7646d2SAndroid Build Coastguard Worker
1359*5e7646d2SAndroid Build Coastguard Worker</p>
1360*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsCopyDest">cupsCopyDest</a></h3>
1361*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Copy a destination.</p>
1362*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1363*5e7646d2SAndroid Build Coastguard Workerint cupsCopyDest(<a href="#cups_dest_t">cups_dest_t</a> *dest, int num_dests, <a href="#cups_dest_t">cups_dest_t</a> **dests);</p>
1364*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1365*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1366*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1367*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination to copy</td></tr>
1368*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_dests</th>
1369*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of destinations</td></tr>
1370*5e7646d2SAndroid Build Coastguard Worker<tr><th>dests</th>
1371*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination array</td></tr>
1372*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1373*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1374*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New number of destinations</p>
1375*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1376*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Make a copy of the destination to an array of destinations (or just a single
1377*5e7646d2SAndroid Build Coastguard Workercopy) - for use with the cupsEnumDests* functions. The caller is responsible
1378*5e7646d2SAndroid Build Coastguard Workerfor calling cupsFreeDests() on the returned object(s).
1379*5e7646d2SAndroid Build Coastguard Worker
1380*5e7646d2SAndroid Build Coastguard Worker</p>
1381*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsCopyDestConflicts">cupsCopyDestConflicts</a></h3>
1382*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get conflicts and resolutions for a new
1383*5e7646d2SAndroid Build Coastguard Workeroption/value pair.</p>
1384*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1385*5e7646d2SAndroid Build Coastguard Workerint cupsCopyDestConflicts(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, int num_options, <a href="#cups_option_t">cups_option_t</a> *options, const char *new_option, const char *new_value, int *num_conflicts, <a href="#cups_option_t">cups_option_t</a> **conflicts, int *num_resolved, <a href="#cups_option_t">cups_option_t</a> **resolved);</p>
1386*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1387*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1388*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1389*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1390*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1391*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1392*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1393*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1394*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
1395*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of current options</td></tr>
1396*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
1397*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Current options</td></tr>
1398*5e7646d2SAndroid Build Coastguard Worker<tr><th>new_option</th>
1399*5e7646d2SAndroid Build Coastguard Worker        <td class="description">New option</td></tr>
1400*5e7646d2SAndroid Build Coastguard Worker<tr><th>new_value</th>
1401*5e7646d2SAndroid Build Coastguard Worker        <td class="description">New value</td></tr>
1402*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_conflicts</th>
1403*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of conflicting options</td></tr>
1404*5e7646d2SAndroid Build Coastguard Worker<tr><th>conflicts</th>
1405*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Conflicting options</td></tr>
1406*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_resolved</th>
1407*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options to resolve</td></tr>
1408*5e7646d2SAndroid Build Coastguard Worker<tr><th>resolved</th>
1409*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Resolved options</td></tr>
1410*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1411*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1412*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if there is a conflict, 0 if none, -1 on error</p>
1413*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1414*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">&quot;num_options&quot; and &quot;options&quot; represent the currently selected options by the
1415*5e7646d2SAndroid Build Coastguard Workeruser.  &quot;new_option&quot; and &quot;new_value&quot; are the setting the user has just
1416*5e7646d2SAndroid Build Coastguard Workerchanged.<br>
1417*5e7646d2SAndroid Build Coastguard Worker<br>
1418*5e7646d2SAndroid Build Coastguard WorkerReturns 1 if there is a conflict, 0 if there are no conflicts, and -1 if
1419*5e7646d2SAndroid Build Coastguard Workerthere was an unrecoverable error such as a resolver loop.<br>
1420*5e7646d2SAndroid Build Coastguard Worker<br>
1421*5e7646d2SAndroid Build Coastguard WorkerIf &quot;num_conflicts&quot; and &quot;conflicts&quot; are not <code>NULL</code>, they are set to
1422*5e7646d2SAndroid Build Coastguard Workercontain the list of conflicting option/value pairs.  Similarly, if
1423*5e7646d2SAndroid Build Coastguard Worker&quot;num_resolved&quot; and &quot;resolved&quot; are not <code>NULL</code> they will be set to the
1424*5e7646d2SAndroid Build Coastguard Workerlist of changes needed to resolve the conflict.<br>
1425*5e7646d2SAndroid Build Coastguard Worker<br>
1426*5e7646d2SAndroid Build Coastguard WorkerIf cupsCopyDestConflicts returns 1 but &quot;num_resolved&quot; and &quot;resolved&quot; are set
1427*5e7646d2SAndroid Build Coastguard Workerto 0 and <code>NULL</code>, respectively, then the conflict cannot be resolved.
1428*5e7646d2SAndroid Build Coastguard Worker
1429*5e7646d2SAndroid Build Coastguard Worker</p>
1430*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsCopyDestInfo">cupsCopyDestInfo</a></h3>
1431*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the supported values/capabilities for the
1432*5e7646d2SAndroid Build Coastguard Workerdestination.</p>
1433*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1434*5e7646d2SAndroid Build Coastguard Worker<a href="#cups_dinfo_t">cups_dinfo_t</a> *cupsCopyDestInfo(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest);</p>
1435*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1436*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1437*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1438*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1439*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1440*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1441*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1442*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1443*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Destination information</p>
1444*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1445*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The caller is responsible for calling <a href="#cupsFreeDestInfo"><code>cupsFreeDestInfo</code></a> on the return
1446*5e7646d2SAndroid Build Coastguard Workervalue. <code>NULL</code> is returned on error.
1447*5e7646d2SAndroid Build Coastguard Worker
1448*5e7646d2SAndroid Build Coastguard Worker</p>
1449*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsCreateDestJob">cupsCreateDestJob</a></h3>
1450*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Create a job on a destination.</p>
1451*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1452*5e7646d2SAndroid Build Coastguard Workeripp_status_t cupsCreateDestJob(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *info, int *job_id, const char *title, int num_options, <a href="#cups_option_t">cups_option_t</a> *options);</p>
1453*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1454*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1455*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1456*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1457*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1458*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1459*5e7646d2SAndroid Build Coastguard Worker<tr><th>info</th>
1460*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1461*5e7646d2SAndroid Build Coastguard Worker<tr><th>job_id</th>
1462*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Job ID or 0 on error</td></tr>
1463*5e7646d2SAndroid Build Coastguard Worker<tr><th>title</th>
1464*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Job name</td></tr>
1465*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
1466*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of job options</td></tr>
1467*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
1468*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Job options</td></tr>
1469*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1470*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1471*5e7646d2SAndroid Build Coastguard Worker        <p class="description">IPP status code</p>
1472*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1473*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Returns <code>IPP_STATUS_OK</code> or <code>IPP_STATUS_OK_SUBST</code> on success, saving the job ID
1474*5e7646d2SAndroid Build Coastguard Workerin the variable pointed to by &quot;job_id&quot;.
1475*5e7646d2SAndroid Build Coastguard Worker
1476*5e7646d2SAndroid Build Coastguard Worker</p>
1477*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.20/macOS 10.4&#160;</span><a id="cupsDoAuthentication">cupsDoAuthentication</a></h3>
1478*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Authenticate a request.</p>
1479*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1480*5e7646d2SAndroid Build Coastguard Workerint cupsDoAuthentication(<a href="#http_t">http_t</a> *http, const char *method, const char *resource);</p>
1481*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1482*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1483*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1484*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
1485*5e7646d2SAndroid Build Coastguard Worker<tr><th>method</th>
1486*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Request method (&quot;GET&quot;, &quot;POST&quot;, &quot;PUT&quot;)</td></tr>
1487*5e7646d2SAndroid Build Coastguard Worker<tr><th>resource</th>
1488*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Resource path</td></tr>
1489*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1490*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1491*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on error</p>
1492*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1493*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function should be called in response to a <code>HTTP_STATUS_UNAUTHORIZED</code>
1494*5e7646d2SAndroid Build Coastguard Workerstatus, prior to resubmitting your request.
1495*5e7646d2SAndroid Build Coastguard Worker
1496*5e7646d2SAndroid Build Coastguard Worker</p>
1497*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.3/macOS 10.14&#160;</span><a id="cupsEncodeOption">cupsEncodeOption</a></h3>
1498*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Encode a single option into an IPP attribute.</p>
1499*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1500*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *cupsEncodeOption(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group_tag, const char *name, const char *value);</p>
1501*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1502*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1503*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
1504*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP request/response</td></tr>
1505*5e7646d2SAndroid Build Coastguard Worker<tr><th>group_tag</th>
1506*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute group</td></tr>
1507*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1508*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option name</td></tr>
1509*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
1510*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option string value</td></tr>
1511*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1512*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1513*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute or <code>NULL</code> on error</p>
1514*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsEncodeOptions">cupsEncodeOptions</a></h3>
1515*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Encode printer options into IPP attributes.</p>
1516*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1517*5e7646d2SAndroid Build Coastguard Workervoid cupsEncodeOptions(<a href="#ipp_t">ipp_t</a> *ipp, int num_options, <a href="#cups_option_t">cups_option_t</a> *options);</p>
1518*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1519*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1520*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
1521*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP request/response</td></tr>
1522*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
1523*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
1524*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
1525*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Options</td></tr>
1526*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1527*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1528*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function adds operation, job, and then subscription attributes,
1529*5e7646d2SAndroid Build Coastguard Workerin that order. Use the <a href="#cupsEncodeOptions2"><code>cupsEncodeOptions2</code></a> function to add attributes
1530*5e7646d2SAndroid Build Coastguard Workerfor a single group.</p>
1531*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="cupsEncodeOptions2">cupsEncodeOptions2</a></h3>
1532*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Encode printer options into IPP attributes for a group.</p>
1533*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1534*5e7646d2SAndroid Build Coastguard Workervoid cupsEncodeOptions2(<a href="#ipp_t">ipp_t</a> *ipp, int num_options, <a href="#cups_option_t">cups_option_t</a> *options, ipp_tag_t group_tag);</p>
1535*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1536*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1537*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
1538*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP request/response</td></tr>
1539*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
1540*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
1541*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
1542*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Options</td></tr>
1543*5e7646d2SAndroid Build Coastguard Worker<tr><th>group_tag</th>
1544*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Group to encode</td></tr>
1545*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1546*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1547*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function only adds attributes for a single group. Call this
1548*5e7646d2SAndroid Build Coastguard Workerfunction multiple times for each group, or use <a href="#cupsEncodeOptions"><code>cupsEncodeOptions</code></a>
1549*5e7646d2SAndroid Build Coastguard Workerto add the standard groups.
1550*5e7646d2SAndroid Build Coastguard Worker
1551*5e7646d2SAndroid Build Coastguard Worker</p>
1552*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsEncryption">cupsEncryption</a></h3>
1553*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the current encryption settings.</p>
1554*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1555*5e7646d2SAndroid Build Coastguard Worker<a href="#http_encryption_t">http_encryption_t</a> cupsEncryption(void);</p>
1556*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1557*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Encryption settings</p>
1558*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1559*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The default encryption setting comes from the CUPS_ENCRYPTION
1560*5e7646d2SAndroid Build Coastguard Workerenvironment variable, then the ~/.cups/client.conf file, and finally the
1561*5e7646d2SAndroid Build Coastguard Worker/etc/cups/client.conf file. If not set, the default is
1562*5e7646d2SAndroid Build Coastguard Worker<code>HTTP_ENCRYPTION_IF_REQUESTED</code>.<br>
1563*5e7646d2SAndroid Build Coastguard Worker<br>
1564*5e7646d2SAndroid Build Coastguard WorkerNote: The current encryption setting is tracked separately for each thread
1565*5e7646d2SAndroid Build Coastguard Workerin a program. Multi-threaded programs that override the setting via the
1566*5e7646d2SAndroid Build Coastguard Worker<a href="#cupsSetEncryption"><code>cupsSetEncryption</code></a> function need to do so in each thread for the same
1567*5e7646d2SAndroid Build Coastguard Workersetting to be used.</p>
1568*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsEnumDests">cupsEnumDests</a></h3>
1569*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Enumerate available destinations with a callback function.</p>
1570*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1571*5e7646d2SAndroid Build Coastguard Workerint cupsEnumDests(unsigned flags, int msec, int *cancel, <a href="#cups_ptype_t">cups_ptype_t</a> type, <a href="#cups_ptype_t">cups_ptype_t</a> mask, <a href="#cups_dest_cb_t">cups_dest_cb_t</a> cb, void *user_data);</p>
1572*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1573*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1574*5e7646d2SAndroid Build Coastguard Worker<tr><th>flags</th>
1575*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Enumeration flags</td></tr>
1576*5e7646d2SAndroid Build Coastguard Worker<tr><th>msec</th>
1577*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Timeout in milliseconds, -1 for indefinite</td></tr>
1578*5e7646d2SAndroid Build Coastguard Worker<tr><th>cancel</th>
1579*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to &quot;cancel&quot; variable</td></tr>
1580*5e7646d2SAndroid Build Coastguard Worker<tr><th>type</th>
1581*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Printer type bits</td></tr>
1582*5e7646d2SAndroid Build Coastguard Worker<tr><th>mask</th>
1583*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Mask for printer type bits</td></tr>
1584*5e7646d2SAndroid Build Coastguard Worker<tr><th>cb</th>
1585*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Callback function</td></tr>
1586*5e7646d2SAndroid Build Coastguard Worker<tr><th>user_data</th>
1587*5e7646d2SAndroid Build Coastguard Worker        <td class="description">User data</td></tr>
1588*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1589*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1590*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
1591*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1592*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Destinations are enumerated from one or more sources.  The callback function
1593*5e7646d2SAndroid Build Coastguard Workerreceives the <code>user_data</code> pointer and the destination pointer which can
1594*5e7646d2SAndroid Build Coastguard Workerbe used as input to the <a href="#cupsCopyDest"><code>cupsCopyDest</code></a> function.  The function must
1595*5e7646d2SAndroid Build Coastguard Workerreturn 1 to continue enumeration or 0 to stop.<br>
1596*5e7646d2SAndroid Build Coastguard Worker<br>
1597*5e7646d2SAndroid Build Coastguard WorkerThe <code>type</code> and <code>mask</code> arguments allow the caller to filter the
1598*5e7646d2SAndroid Build Coastguard Workerdestinations that are enumerated.  Passing 0 for both will enumerate all
1599*5e7646d2SAndroid Build Coastguard Workerprinters.  The constant <code>CUPS_PRINTER_DISCOVERED</code> is used to filter on
1600*5e7646d2SAndroid Build Coastguard Workerdestinations that are available but have not yet been added locally.<br>
1601*5e7646d2SAndroid Build Coastguard Worker<br>
1602*5e7646d2SAndroid Build Coastguard WorkerEnumeration happens on the current thread and does not return until all
1603*5e7646d2SAndroid Build Coastguard Workerdestinations have been enumerated or the callback function returns 0.<br>
1604*5e7646d2SAndroid Build Coastguard Worker<br>
1605*5e7646d2SAndroid Build Coastguard WorkerNote: The callback function will likely receive multiple updates for the same
1606*5e7646d2SAndroid Build Coastguard Workerdestinations - it is up to the caller to suppress any duplicate destinations.
1607*5e7646d2SAndroid Build Coastguard Worker
1608*5e7646d2SAndroid Build Coastguard Worker</p>
1609*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="cupsFindDestDefault">cupsFindDestDefault</a></h3>
1610*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Find the default value(s) for the given option.</p>
1611*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1612*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *cupsFindDestDefault(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, const char *option);</p>
1613*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1614*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1615*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1616*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1617*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1618*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1619*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1620*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1621*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
1622*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option/attribute name</td></tr>
1623*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1624*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1625*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Default attribute or <code>NULL</code> for none</p>
1626*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1627*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The returned value is an IPP attribute. Use the <code>ippGetBoolean</code>,
1628*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCollection</code>, <code>ippGetCount</code>, <code>ippGetDate</code>,
1629*5e7646d2SAndroid Build Coastguard Worker<code>ippGetInteger</code>, <code>ippGetOctetString</code>, <code>ippGetRange</code>,
1630*5e7646d2SAndroid Build Coastguard Worker<code>ippGetResolution</code>, <code>ippGetString</code>, and <code>ippGetValueTag</code>
1631*5e7646d2SAndroid Build Coastguard Workerfunctions to inspect the default value(s) as needed.
1632*5e7646d2SAndroid Build Coastguard Worker
1633*5e7646d2SAndroid Build Coastguard Worker</p>
1634*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="cupsFindDestReady">cupsFindDestReady</a></h3>
1635*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Find the default value(s) for the given option.</p>
1636*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1637*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *cupsFindDestReady(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, const char *option);</p>
1638*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1639*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1640*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1641*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1642*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1643*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1644*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1645*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1646*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
1647*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option/attribute name</td></tr>
1648*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1649*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1650*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Default attribute or <code>NULL</code> for none</p>
1651*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1652*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The returned value is an IPP attribute. Use the <code>ippGetBoolean</code>,
1653*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCollection</code>, <code>ippGetCount</code>, <code>ippGetDate</code>,
1654*5e7646d2SAndroid Build Coastguard Worker<code>ippGetInteger</code>, <code>ippGetOctetString</code>, <code>ippGetRange</code>,
1655*5e7646d2SAndroid Build Coastguard Worker<code>ippGetResolution</code>, <code>ippGetString</code>, and <code>ippGetValueTag</code>
1656*5e7646d2SAndroid Build Coastguard Workerfunctions to inspect the default value(s) as needed.
1657*5e7646d2SAndroid Build Coastguard Worker
1658*5e7646d2SAndroid Build Coastguard Worker</p>
1659*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="cupsFindDestSupported">cupsFindDestSupported</a></h3>
1660*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Find the default value(s) for the given option.</p>
1661*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1662*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *cupsFindDestSupported(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, const char *option);</p>
1663*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1664*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1665*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1666*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1667*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1668*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1669*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1670*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1671*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
1672*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option/attribute name</td></tr>
1673*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1674*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1675*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Default attribute or <code>NULL</code> for none</p>
1676*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1677*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The returned value is an IPP attribute. Use the <code>ippGetBoolean</code>,
1678*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCollection</code>, <code>ippGetCount</code>, <code>ippGetDate</code>,
1679*5e7646d2SAndroid Build Coastguard Worker<code>ippGetInteger</code>, <code>ippGetOctetString</code>, <code>ippGetRange</code>,
1680*5e7646d2SAndroid Build Coastguard Worker<code>ippGetResolution</code>, <code>ippGetString</code>, and <code>ippGetValueTag</code>
1681*5e7646d2SAndroid Build Coastguard Workerfunctions to inspect the default value(s) as needed.
1682*5e7646d2SAndroid Build Coastguard Worker
1683*5e7646d2SAndroid Build Coastguard Worker</p>
1684*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsFinishDestDocument">cupsFinishDestDocument</a></h3>
1685*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Finish the current document.</p>
1686*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1687*5e7646d2SAndroid Build Coastguard Workeripp_status_t cupsFinishDestDocument(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *info);</p>
1688*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1689*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1690*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1691*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1692*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1693*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1694*5e7646d2SAndroid Build Coastguard Worker<tr><th>info</th>
1695*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1696*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1697*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1698*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of document submission</p>
1699*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1700*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Returns <code>IPP_STATUS_OK</code> or <code>IPP_STATUS_OK_SUBST</code> on success.
1701*5e7646d2SAndroid Build Coastguard Worker
1702*5e7646d2SAndroid Build Coastguard Worker</p>
1703*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsFreeDestInfo">cupsFreeDestInfo</a></h3>
1704*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Free destination information obtained using
1705*5e7646d2SAndroid Build Coastguard Worker<a href="#cupsCopyDestInfo"><code>cupsCopyDestInfo</code></a>.</p>
1706*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1707*5e7646d2SAndroid Build Coastguard Workervoid cupsFreeDestInfo(<a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo);</p>
1708*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1709*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1710*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1711*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1712*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1713*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsFreeDests">cupsFreeDests</a></h3>
1714*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Free the memory used by the list of destinations.</p>
1715*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1716*5e7646d2SAndroid Build Coastguard Workervoid cupsFreeDests(int num_dests, <a href="#cups_dest_t">cups_dest_t</a> *dests);</p>
1717*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1718*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1719*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_dests</th>
1720*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of destinations</td></tr>
1721*5e7646d2SAndroid Build Coastguard Worker<tr><th>dests</th>
1722*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destinations</td></tr>
1723*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1724*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsFreeJobs">cupsFreeJobs</a></h3>
1725*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Free memory used by job data.</p>
1726*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1727*5e7646d2SAndroid Build Coastguard Workervoid cupsFreeJobs(int num_jobs, <a href="#cups_job_t">cups_job_t</a> *jobs);</p>
1728*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1729*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1730*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_jobs</th>
1731*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of jobs</td></tr>
1732*5e7646d2SAndroid Build Coastguard Worker<tr><th>jobs</th>
1733*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Jobs</td></tr>
1734*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1735*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsFreeOptions">cupsFreeOptions</a></h3>
1736*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Free all memory used by options.</p>
1737*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1738*5e7646d2SAndroid Build Coastguard Workervoid cupsFreeOptions(int num_options, <a href="#cups_option_t">cups_option_t</a> *options);</p>
1739*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1740*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1741*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
1742*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
1743*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
1744*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to options</td></tr>
1745*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1746*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsGetDest">cupsGetDest</a></h3>
1747*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the named destination from the list.</p>
1748*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1749*5e7646d2SAndroid Build Coastguard Worker<a href="#cups_dest_t">cups_dest_t</a> *cupsGetDest(const char *name, const char *instance, int num_dests, <a href="#cups_dest_t">cups_dest_t</a> *dests);</p>
1750*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1751*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1752*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1753*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination name or <code>NULL</code> for the default destination</td></tr>
1754*5e7646d2SAndroid Build Coastguard Worker<tr><th>instance</th>
1755*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Instance name or <code>NULL</code></td></tr>
1756*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_dests</th>
1757*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of destinations</td></tr>
1758*5e7646d2SAndroid Build Coastguard Worker<tr><th>dests</th>
1759*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destinations</td></tr>
1760*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1761*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1762*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Destination pointer or <code>NULL</code></p>
1763*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1764*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Use the <a href="#cupsEnumDests"><code>cupsEnumDests</code></a> or <a href="#cupsGetDests2"><code>cupsGetDests2</code></a> functions to get a
1765*5e7646d2SAndroid Build Coastguard Workerlist of supported destinations for the current user.</p>
1766*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="cupsGetDestMediaByIndex">cupsGetDestMediaByIndex</a></h3>
1767*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a media name, dimension, and margins for a
1768*5e7646d2SAndroid Build Coastguard Workerspecific size.</p>
1769*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1770*5e7646d2SAndroid Build Coastguard Workerint cupsGetDestMediaByIndex(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, int n, unsigned flags, <a href="#cups_size_t">cups_size_t</a> *size);</p>
1771*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1772*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1773*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1774*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1775*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1776*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1777*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1778*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1779*5e7646d2SAndroid Build Coastguard Worker<tr><th>n</th>
1780*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media size number (0-based)</td></tr>
1781*5e7646d2SAndroid Build Coastguard Worker<tr><th>flags</th>
1782*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media flags</td></tr>
1783*5e7646d2SAndroid Build Coastguard Worker<tr><th>size</th>
1784*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media size information</td></tr>
1785*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1786*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1787*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
1788*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1789*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>flags</code> parameter determines which set of media are indexed.  For
1790*5e7646d2SAndroid Build Coastguard Workerexample, passing <code>CUPS_MEDIA_FLAGS_BORDERLESS</code> will get the Nth
1791*5e7646d2SAndroid Build Coastguard Workerborderless size supported by the printer.
1792*5e7646d2SAndroid Build Coastguard Worker
1793*5e7646d2SAndroid Build Coastguard Worker</p>
1794*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsGetDestMediaByName">cupsGetDestMediaByName</a></h3>
1795*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get media names, dimensions, and margins.</p>
1796*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1797*5e7646d2SAndroid Build Coastguard Workerint cupsGetDestMediaByName(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, const char *media, unsigned flags, <a href="#cups_size_t">cups_size_t</a> *size);</p>
1798*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1799*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1800*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1801*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1802*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1803*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1804*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1805*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1806*5e7646d2SAndroid Build Coastguard Worker<tr><th>media</th>
1807*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media name</td></tr>
1808*5e7646d2SAndroid Build Coastguard Worker<tr><th>flags</th>
1809*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media matching flags</td></tr>
1810*5e7646d2SAndroid Build Coastguard Worker<tr><th>size</th>
1811*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media size information</td></tr>
1812*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1813*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1814*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on match, 0 on failure</p>
1815*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1816*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The &quot;media&quot; string is a PWG media name.  &quot;Flags&quot; provides some matching
1817*5e7646d2SAndroid Build Coastguard Workerguidance (multiple flags can be combined):<br>
1818*5e7646d2SAndroid Build Coastguard Worker<br>
1819*5e7646d2SAndroid Build Coastguard WorkerCUPS_MEDIA_FLAGS_DEFAULT    = find the closest size supported by the printer,
1820*5e7646d2SAndroid Build Coastguard WorkerCUPS_MEDIA_FLAGS_BORDERLESS = find a borderless size,
1821*5e7646d2SAndroid Build Coastguard WorkerCUPS_MEDIA_FLAGS_DUPLEX     = find a size compatible with 2-sided printing,
1822*5e7646d2SAndroid Build Coastguard WorkerCUPS_MEDIA_FLAGS_EXACT      = find an exact match for the size, and
1823*5e7646d2SAndroid Build Coastguard WorkerCUPS_MEDIA_FLAGS_READY      = if the printer supports media sensing, find the
1824*5e7646d2SAndroid Build Coastguard Workersize amongst the &quot;ready&quot; media.<br>
1825*5e7646d2SAndroid Build Coastguard Worker<br>
1826*5e7646d2SAndroid Build Coastguard WorkerThe matching result (if any) is returned in the &quot;cups_size_t&quot; structure.<br>
1827*5e7646d2SAndroid Build Coastguard Worker<br>
1828*5e7646d2SAndroid Build Coastguard WorkerReturns 1 when there is a match and 0 if there is not a match.
1829*5e7646d2SAndroid Build Coastguard Worker
1830*5e7646d2SAndroid Build Coastguard Worker</p>
1831*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsGetDestMediaBySize">cupsGetDestMediaBySize</a></h3>
1832*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get media names, dimensions, and margins.</p>
1833*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1834*5e7646d2SAndroid Build Coastguard Workerint cupsGetDestMediaBySize(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, int width, int length, unsigned flags, <a href="#cups_size_t">cups_size_t</a> *size);</p>
1835*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1836*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1837*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1838*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1839*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1840*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1841*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1842*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1843*5e7646d2SAndroid Build Coastguard Worker<tr><th>width</th>
1844*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media width in hundredths of
1845*5e7646d2SAndroid Build Coastguard Workerof millimeters</td></tr>
1846*5e7646d2SAndroid Build Coastguard Worker<tr><th>length</th>
1847*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media length in hundredths of
1848*5e7646d2SAndroid Build Coastguard Workerof millimeters</td></tr>
1849*5e7646d2SAndroid Build Coastguard Worker<tr><th>flags</th>
1850*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media matching flags</td></tr>
1851*5e7646d2SAndroid Build Coastguard Worker<tr><th>size</th>
1852*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media size information</td></tr>
1853*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1854*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1855*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on match, 0 on failure</p>
1856*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1857*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">&quot;Width&quot; and &quot;length&quot; are the dimensions in hundredths of millimeters.
1858*5e7646d2SAndroid Build Coastguard Worker&quot;Flags&quot; provides some matching guidance (multiple flags can be combined):<br>
1859*5e7646d2SAndroid Build Coastguard Worker<br>
1860*5e7646d2SAndroid Build Coastguard WorkerCUPS_MEDIA_FLAGS_DEFAULT    = find the closest size supported by the printer,
1861*5e7646d2SAndroid Build Coastguard WorkerCUPS_MEDIA_FLAGS_BORDERLESS = find a borderless size,
1862*5e7646d2SAndroid Build Coastguard WorkerCUPS_MEDIA_FLAGS_DUPLEX     = find a size compatible with 2-sided printing,
1863*5e7646d2SAndroid Build Coastguard WorkerCUPS_MEDIA_FLAGS_EXACT      = find an exact match for the size, and
1864*5e7646d2SAndroid Build Coastguard WorkerCUPS_MEDIA_FLAGS_READY      = if the printer supports media sensing, find the
1865*5e7646d2SAndroid Build Coastguard Workersize amongst the &quot;ready&quot; media.<br>
1866*5e7646d2SAndroid Build Coastguard Worker<br>
1867*5e7646d2SAndroid Build Coastguard WorkerThe matching result (if any) is returned in the &quot;cups_size_t&quot; structure.<br>
1868*5e7646d2SAndroid Build Coastguard Worker<br>
1869*5e7646d2SAndroid Build Coastguard WorkerReturns 1 when there is a match and 0 if there is not a match.
1870*5e7646d2SAndroid Build Coastguard Worker
1871*5e7646d2SAndroid Build Coastguard Worker</p>
1872*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="cupsGetDestMediaCount">cupsGetDestMediaCount</a></h3>
1873*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the number of sizes supported by a
1874*5e7646d2SAndroid Build Coastguard Workerdestination.</p>
1875*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1876*5e7646d2SAndroid Build Coastguard Workerint cupsGetDestMediaCount(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, unsigned flags);</p>
1877*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1878*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1879*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1880*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1881*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1882*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1883*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1884*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1885*5e7646d2SAndroid Build Coastguard Worker<tr><th>flags</th>
1886*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media flags</td></tr>
1887*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1888*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1889*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of sizes</p>
1890*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1891*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>flags</code> parameter determines the set of media sizes that are
1892*5e7646d2SAndroid Build Coastguard Workercounted.  For example, passing <code>CUPS_MEDIA_FLAGS_BORDERLESS</code> will return
1893*5e7646d2SAndroid Build Coastguard Workerthe number of borderless sizes.
1894*5e7646d2SAndroid Build Coastguard Worker
1895*5e7646d2SAndroid Build Coastguard Worker</p>
1896*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="cupsGetDestMediaDefault">cupsGetDestMediaDefault</a></h3>
1897*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the default size for a destination.</p>
1898*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1899*5e7646d2SAndroid Build Coastguard Workerint cupsGetDestMediaDefault(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, unsigned flags, <a href="#cups_size_t">cups_size_t</a> *size);</p>
1900*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1901*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1902*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1903*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
1904*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
1905*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
1906*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
1907*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
1908*5e7646d2SAndroid Build Coastguard Worker<tr><th>flags</th>
1909*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media flags</td></tr>
1910*5e7646d2SAndroid Build Coastguard Worker<tr><th>size</th>
1911*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media size information</td></tr>
1912*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1913*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1914*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
1915*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1916*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>flags</code> parameter determines which default size is returned.  For
1917*5e7646d2SAndroid Build Coastguard Workerexample, passing <code>CUPS_MEDIA_FLAGS_BORDERLESS</code> will return the default
1918*5e7646d2SAndroid Build Coastguard Workerborderless size, typically US Letter or A4, but sometimes 4x6 photo media.
1919*5e7646d2SAndroid Build Coastguard Worker
1920*5e7646d2SAndroid Build Coastguard Worker</p>
1921*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/macOS 10.10&#160;</span><a id="cupsGetDestWithURI">cupsGetDestWithURI</a></h3>
1922*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a destination associated with a URI.</p>
1923*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1924*5e7646d2SAndroid Build Coastguard Worker<a href="#cups_dest_t">cups_dest_t</a> *cupsGetDestWithURI(const char *name, const char *uri);</p>
1925*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1926*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1927*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1928*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Desired printer name or <code>NULL</code></td></tr>
1929*5e7646d2SAndroid Build Coastguard Worker<tr><th>uri</th>
1930*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI for the printer</td></tr>
1931*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1932*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1933*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Destination or <code>NULL</code></p>
1934*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1935*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">&quot;name&quot; is the desired name for the printer. If <code>NULL</code>, a name will be
1936*5e7646d2SAndroid Build Coastguard Workercreated using the URI.<br>
1937*5e7646d2SAndroid Build Coastguard Worker<br>
1938*5e7646d2SAndroid Build Coastguard Worker&quot;uri&quot; is the &quot;ipp&quot; or &quot;ipps&quot; URI for the printer.
1939*5e7646d2SAndroid Build Coastguard Worker
1940*5e7646d2SAndroid Build Coastguard Worker</p>
1941*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.21/macOS 10.4&#160;</span><a id="cupsGetDests2">cupsGetDests2</a></h3>
1942*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the list of destinations from the specified server.</p>
1943*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1944*5e7646d2SAndroid Build Coastguard Workerint cupsGetDests2(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> **dests);</p>
1945*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1946*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1947*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
1948*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
1949*5e7646d2SAndroid Build Coastguard Worker<tr><th>dests</th>
1950*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destinations</td></tr>
1951*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1952*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1953*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of destinations</p>
1954*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1955*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Starting with CUPS 1.2, the returned list of destinations include the
1956*5e7646d2SAndroid Build Coastguard Worker&quot;printer-info&quot;, &quot;printer-is-accepting-jobs&quot;, &quot;printer-is-shared&quot;,
1957*5e7646d2SAndroid Build Coastguard Worker&quot;printer-make-and-model&quot;, &quot;printer-state&quot;, &quot;printer-state-change-time&quot;,
1958*5e7646d2SAndroid Build Coastguard Worker&quot;printer-state-reasons&quot;, &quot;printer-type&quot;, and &quot;printer-uri-supported&quot;
1959*5e7646d2SAndroid Build Coastguard Workerattributes as options.<br>
1960*5e7646d2SAndroid Build Coastguard Worker<br>
1961*5e7646d2SAndroid Build Coastguard WorkerCUPS 1.4 adds the &quot;marker-change-time&quot;, &quot;marker-colors&quot;,
1962*5e7646d2SAndroid Build Coastguard Worker&quot;marker-high-levels&quot;, &quot;marker-levels&quot;, &quot;marker-low-levels&quot;, &quot;marker-message&quot;,
1963*5e7646d2SAndroid Build Coastguard Worker&quot;marker-names&quot;, &quot;marker-types&quot;, and &quot;printer-commands&quot; attributes as options.<br>
1964*5e7646d2SAndroid Build Coastguard Worker<br>
1965*5e7646d2SAndroid Build Coastguard WorkerCUPS 2.2 adds accessible IPP printers to the list of destinations that can
1966*5e7646d2SAndroid Build Coastguard Workerbe used.  The &quot;printer-uri-supported&quot; option will be present for those IPP
1967*5e7646d2SAndroid Build Coastguard Workerprinters that have been recently used.<br>
1968*5e7646d2SAndroid Build Coastguard Worker<br>
1969*5e7646d2SAndroid Build Coastguard WorkerUse the <a href="#cupsFreeDests"><code>cupsFreeDests</code></a> function to free the destination list and
1970*5e7646d2SAndroid Build Coastguard Workerthe <a href="#cupsGetDest"><code>cupsGetDest</code></a> function to find a particular destination.
1971*5e7646d2SAndroid Build Coastguard Worker
1972*5e7646d2SAndroid Build Coastguard Worker</p>
1973*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.2.4/macOS 10.13&#160;</span><a id="cupsGetIntegerOption">cupsGetIntegerOption</a></h3>
1974*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get an integer option value.</p>
1975*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1976*5e7646d2SAndroid Build Coastguard Workerint cupsGetIntegerOption(const char *name, int num_options, <a href="#cups_option_t">cups_option_t</a> *options);</p>
1977*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1978*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1979*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
1980*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of option</td></tr>
1981*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
1982*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
1983*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
1984*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Options</td></tr>
1985*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
1986*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
1987*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Option value or <code>INT_MIN</code></p>
1988*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
1989*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">INT_MIN is returned when the option does not exist, is not an integer, or
1990*5e7646d2SAndroid Build Coastguard Workerexceeds the range of values for the &quot;int&quot; type.
1991*5e7646d2SAndroid Build Coastguard Worker
1992*5e7646d2SAndroid Build Coastguard Worker</p>
1993*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.21/macOS 10.4&#160;</span><a id="cupsGetJobs2">cupsGetJobs2</a></h3>
1994*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the jobs from the specified server.</p>
1995*5e7646d2SAndroid Build Coastguard Worker<p class="code">
1996*5e7646d2SAndroid Build Coastguard Workerint cupsGetJobs2(<a href="#http_t">http_t</a> *http, <a href="#cups_job_t">cups_job_t</a> **jobs, const char *name, int myjobs, int whichjobs);</p>
1997*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
1998*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
1999*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2000*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
2001*5e7646d2SAndroid Build Coastguard Worker<tr><th>jobs</th>
2002*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Job data</td></tr>
2003*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
2004*5e7646d2SAndroid Build Coastguard Worker        <td class="description"><code>NULL</code> = all destinations, otherwise show jobs for named destination</td></tr>
2005*5e7646d2SAndroid Build Coastguard Worker<tr><th>myjobs</th>
2006*5e7646d2SAndroid Build Coastguard Worker        <td class="description">0 = all users, 1 = mine</td></tr>
2007*5e7646d2SAndroid Build Coastguard Worker<tr><th>whichjobs</th>
2008*5e7646d2SAndroid Build Coastguard Worker        <td class="description"><code>CUPS_WHICHJOBS_ALL</code>, <code>CUPS_WHICHJOBS_ACTIVE</code>, or <code>CUPS_WHICHJOBS_COMPLETED</code></td></tr>
2009*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2010*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2011*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of jobs</p>
2012*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2013*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">A &quot;whichjobs&quot; value of <code>CUPS_WHICHJOBS_ALL</code> returns all jobs regardless
2014*5e7646d2SAndroid Build Coastguard Workerof state, while <code>CUPS_WHICHJOBS_ACTIVE</code> returns jobs that are
2015*5e7646d2SAndroid Build Coastguard Workerpending, processing, or held and <code>CUPS_WHICHJOBS_COMPLETED</code> returns
2016*5e7646d2SAndroid Build Coastguard Workerjobs that are stopped, canceled, aborted, or completed.
2017*5e7646d2SAndroid Build Coastguard Worker
2018*5e7646d2SAndroid Build Coastguard Worker</p>
2019*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="cupsGetNamedDest">cupsGetNamedDest</a></h3>
2020*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get options for the named destination.</p>
2021*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2022*5e7646d2SAndroid Build Coastguard Worker<a href="#cups_dest_t">cups_dest_t</a> *cupsGetNamedDest(<a href="#http_t">http_t</a> *http, const char *name, const char *instance);</p>
2023*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2024*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2025*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2026*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
2027*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
2028*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination name or <code>NULL</code> for the default destination</td></tr>
2029*5e7646d2SAndroid Build Coastguard Worker<tr><th>instance</th>
2030*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Instance name or <code>NULL</code></td></tr>
2031*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2032*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2033*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Destination or <code>NULL</code></p>
2034*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2035*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function is optimized for retrieving a single destination and should
2036*5e7646d2SAndroid Build Coastguard Workerbe used instead of <a href="#cupsGetDests2"><code>cupsGetDests2</code></a> and <a href="#cupsGetDest"><code>cupsGetDest</code></a> when you
2037*5e7646d2SAndroid Build Coastguard Workereither know the name of the destination or want to print to the default
2038*5e7646d2SAndroid Build Coastguard Workerdestination.  If <code>NULL</code> is returned, the destination does not exist or
2039*5e7646d2SAndroid Build Coastguard Workerthere is no default destination.<br>
2040*5e7646d2SAndroid Build Coastguard Worker<br>
2041*5e7646d2SAndroid Build Coastguard WorkerIf &quot;http&quot; is <code>CUPS_HTTP_DEFAULT</code>, the connection to the default print
2042*5e7646d2SAndroid Build Coastguard Workerserver will be used.<br>
2043*5e7646d2SAndroid Build Coastguard Worker<br>
2044*5e7646d2SAndroid Build Coastguard WorkerIf &quot;name&quot; is <code>NULL</code>, the default printer for the current user will be
2045*5e7646d2SAndroid Build Coastguard Workerreturned.<br>
2046*5e7646d2SAndroid Build Coastguard Worker<br>
2047*5e7646d2SAndroid Build Coastguard WorkerThe returned destination must be freed using <a href="#cupsFreeDests"><code>cupsFreeDests</code></a> with a
2048*5e7646d2SAndroid Build Coastguard Worker&quot;num_dests&quot; value of 1.
2049*5e7646d2SAndroid Build Coastguard Worker
2050*5e7646d2SAndroid Build Coastguard Worker</p>
2051*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsGetOption">cupsGetOption</a></h3>
2052*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get an option value.</p>
2053*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2054*5e7646d2SAndroid Build Coastguard Workerconst char *cupsGetOption(const char *name, int num_options, <a href="#cups_option_t">cups_option_t</a> *options);</p>
2055*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2056*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2057*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
2058*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of option</td></tr>
2059*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
2060*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
2061*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
2062*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Options</td></tr>
2063*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2064*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2065*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Option value or <code>NULL</code></p>
2066*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="cupsGetPassword2">cupsGetPassword2</a></h3>
2067*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a password from the user using the current
2068*5e7646d2SAndroid Build Coastguard Workerpassword callback.</p>
2069*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2070*5e7646d2SAndroid Build Coastguard Workerconst char *cupsGetPassword2(const char *prompt, <a href="#http_t">http_t</a> *http, const char *method, const char *resource);</p>
2071*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2072*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2073*5e7646d2SAndroid Build Coastguard Worker<tr><th>prompt</th>
2074*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Prompt string</td></tr>
2075*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2076*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
2077*5e7646d2SAndroid Build Coastguard Worker<tr><th>method</th>
2078*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Request method (&quot;GET&quot;, &quot;POST&quot;, &quot;PUT&quot;)</td></tr>
2079*5e7646d2SAndroid Build Coastguard Worker<tr><th>resource</th>
2080*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Resource path</td></tr>
2081*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2082*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2083*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Password</p>
2084*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2085*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Uses the current password callback function. Returns <code>NULL</code> if the
2086*5e7646d2SAndroid Build Coastguard Workeruser does not provide a password.<br>
2087*5e7646d2SAndroid Build Coastguard Worker<br>
2088*5e7646d2SAndroid Build Coastguard WorkerNote: The current password callback function is tracked separately for each
2089*5e7646d2SAndroid Build Coastguard Workerthread in a program. Multi-threaded programs that override the setting via
2090*5e7646d2SAndroid Build Coastguard Workerthe <a href="#cupsSetPasswordCB2"><code>cupsSetPasswordCB2</code></a> function need to do so in each thread for the
2091*5e7646d2SAndroid Build Coastguard Workersame function to be used.
2092*5e7646d2SAndroid Build Coastguard Worker
2093*5e7646d2SAndroid Build Coastguard Worker</p>
2094*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/macOS 10.10&#160;</span><a id="cupsLocalizeDestMedia">cupsLocalizeDestMedia</a></h3>
2095*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the localized string for a destination media
2096*5e7646d2SAndroid Build Coastguard Workersize.</p>
2097*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2098*5e7646d2SAndroid Build Coastguard Workerconst char *cupsLocalizeDestMedia(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, unsigned flags, <a href="#cups_size_t">cups_size_t</a> *size);</p>
2099*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2100*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2101*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2102*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
2103*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
2104*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
2105*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
2106*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
2107*5e7646d2SAndroid Build Coastguard Worker<tr><th>flags</th>
2108*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media flags</td></tr>
2109*5e7646d2SAndroid Build Coastguard Worker<tr><th>size</th>
2110*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media size</td></tr>
2111*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2112*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2113*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Localized string</p>
2114*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2115*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The returned string is stored in the destination information and will become
2116*5e7646d2SAndroid Build Coastguard Workerinvalid if the destination information is deleted.
2117*5e7646d2SAndroid Build Coastguard Worker
2118*5e7646d2SAndroid Build Coastguard Worker</p>
2119*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsLocalizeDestOption">cupsLocalizeDestOption</a></h3>
2120*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the localized string for a destination
2121*5e7646d2SAndroid Build Coastguard Workeroption.</p>
2122*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2123*5e7646d2SAndroid Build Coastguard Workerconst char *cupsLocalizeDestOption(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, const char *option);</p>
2124*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2125*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2126*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2127*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
2128*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
2129*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
2130*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
2131*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
2132*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
2133*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option to localize</td></tr>
2134*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2135*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2136*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Localized string</p>
2137*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2138*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The returned string is stored in the destination information and will become
2139*5e7646d2SAndroid Build Coastguard Workerinvalid if the destination information is deleted.
2140*5e7646d2SAndroid Build Coastguard Worker
2141*5e7646d2SAndroid Build Coastguard Worker</p>
2142*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsLocalizeDestValue">cupsLocalizeDestValue</a></h3>
2143*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the localized string for a destination
2144*5e7646d2SAndroid Build Coastguard Workeroption+value pair.</p>
2145*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2146*5e7646d2SAndroid Build Coastguard Workerconst char *cupsLocalizeDestValue(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *dinfo, const char *option, const char *value);</p>
2147*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2148*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2149*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2150*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
2151*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
2152*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
2153*5e7646d2SAndroid Build Coastguard Worker<tr><th>dinfo</th>
2154*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
2155*5e7646d2SAndroid Build Coastguard Worker<tr><th>option</th>
2156*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option to localize</td></tr>
2157*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
2158*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value to localize</td></tr>
2159*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2160*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2161*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Localized string</p>
2162*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2163*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The returned string is stored in the destination information and will become
2164*5e7646d2SAndroid Build Coastguard Workerinvalid if the destination information is deleted.
2165*5e7646d2SAndroid Build Coastguard Worker
2166*5e7646d2SAndroid Build Coastguard Worker</p>
2167*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="cupsMakeServerCredentials">cupsMakeServerCredentials</a></h3>
2168*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Make a self-signed certificate and private key pair.</p>
2169*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2170*5e7646d2SAndroid Build Coastguard Workerint cupsMakeServerCredentials(const char *path, const char *common_name, int num_alt_names, const char **alt_names, time_t expiration_date);</p>
2171*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2172*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2173*5e7646d2SAndroid Build Coastguard Worker<tr><th>path</th>
2174*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Keychain path or <code>NULL</code> for default</td></tr>
2175*5e7646d2SAndroid Build Coastguard Worker<tr><th>common_name</th>
2176*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Common name</td></tr>
2177*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_alt_names</th>
2178*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of subject alternate names</td></tr>
2179*5e7646d2SAndroid Build Coastguard Worker<tr><th>alt_names</th>
2180*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Subject Alternate Names</td></tr>
2181*5e7646d2SAndroid Build Coastguard Worker<tr><th>expiration_date</th>
2182*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Expiration date</td></tr>
2183*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2184*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2185*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
2186*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsParseOptions">cupsParseOptions</a></h3>
2187*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Parse options from a command-line argument.</p>
2188*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2189*5e7646d2SAndroid Build Coastguard Workerint cupsParseOptions(const char *arg, int num_options, <a href="#cups_option_t">cups_option_t</a> **options);</p>
2190*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2191*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2192*5e7646d2SAndroid Build Coastguard Worker<tr><th>arg</th>
2193*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Argument to parse</td></tr>
2194*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
2195*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
2196*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
2197*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Options found</td></tr>
2198*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2199*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2200*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of options found</p>
2201*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2202*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function converts space-delimited name/value pairs according
2203*5e7646d2SAndroid Build Coastguard Workerto the PAPI text option ABNF specification. Collection values
2204*5e7646d2SAndroid Build Coastguard Worker(&quot;name={a=... b=... c=...}&quot;) are stored with the curley brackets
2205*5e7646d2SAndroid Build Coastguard Workerintact - use <code>cupsParseOptions</code> on the value to extract the
2206*5e7646d2SAndroid Build Coastguard Workercollection attributes.</p>
2207*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.3/macOS 10.5&#160;</span><a id="cupsRemoveDest">cupsRemoveDest</a></h3>
2208*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Remove a destination from the destination list.</p>
2209*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2210*5e7646d2SAndroid Build Coastguard Workerint cupsRemoveDest(const char *name, const char *instance, int num_dests, <a href="#cups_dest_t">cups_dest_t</a> **dests);</p>
2211*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2212*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2213*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
2214*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination name</td></tr>
2215*5e7646d2SAndroid Build Coastguard Worker<tr><th>instance</th>
2216*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Instance name or <code>NULL</code></td></tr>
2217*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_dests</th>
2218*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of destinations</td></tr>
2219*5e7646d2SAndroid Build Coastguard Worker<tr><th>dests</th>
2220*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destinations</td></tr>
2221*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2222*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2223*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New number of destinations</p>
2224*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2225*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Removing a destination/instance does not delete the class or printer
2226*5e7646d2SAndroid Build Coastguard Workerqueue, merely the lpoptions for that destination/instance.  Use the
2227*5e7646d2SAndroid Build Coastguard Worker<a href="#cupsSetDests"><code>cupsSetDests</code></a> or <a href="#cupsSetDests2"><code>cupsSetDests2</code></a> functions to save the new
2228*5e7646d2SAndroid Build Coastguard Workeroptions for the user.
2229*5e7646d2SAndroid Build Coastguard Worker
2230*5e7646d2SAndroid Build Coastguard Worker</p>
2231*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="cupsRemoveOption">cupsRemoveOption</a></h3>
2232*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Remove an option from an option array.</p>
2233*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2234*5e7646d2SAndroid Build Coastguard Workerint cupsRemoveOption(const char *name, int num_options, <a href="#cups_option_t">cups_option_t</a> **options);</p>
2235*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2236*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2237*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
2238*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Option name</td></tr>
2239*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
2240*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Current number of options</td></tr>
2241*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
2242*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Options</td></tr>
2243*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2244*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2245*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New number of options</p>
2246*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsServer">cupsServer</a></h3>
2247*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the hostname/address of the current server.</p>
2248*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2249*5e7646d2SAndroid Build Coastguard Workerconst char *cupsServer(void);</p>
2250*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2251*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Server name</p>
2252*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2253*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The default server comes from the CUPS_SERVER environment variable, then the
2254*5e7646d2SAndroid Build Coastguard Worker~/.cups/client.conf file, and finally the /etc/cups/client.conf file. If not
2255*5e7646d2SAndroid Build Coastguard Workerset, the default is the local system - either &quot;localhost&quot; or a domain socket
2256*5e7646d2SAndroid Build Coastguard Workerpath.<br>
2257*5e7646d2SAndroid Build Coastguard Worker<br>
2258*5e7646d2SAndroid Build Coastguard WorkerThe returned value can be a fully-qualified hostname, a numeric IPv4 or IPv6
2259*5e7646d2SAndroid Build Coastguard Workeraddress, or a domain socket pathname.<br>
2260*5e7646d2SAndroid Build Coastguard Worker<br>
2261*5e7646d2SAndroid Build Coastguard WorkerNote: The current server is tracked separately for each thread in a program.
2262*5e7646d2SAndroid Build Coastguard WorkerMulti-threaded programs that override the server via the
2263*5e7646d2SAndroid Build Coastguard Worker<a href="#cupsSetServer"><code>cupsSetServer</code></a> function need to do so in each thread for the same
2264*5e7646d2SAndroid Build Coastguard Workerserver to be used.</p>
2265*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span><a id="cupsSetClientCertCB">cupsSetClientCertCB</a></h3>
2266*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the client certificate callback.</p>
2267*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2268*5e7646d2SAndroid Build Coastguard Workervoid cupsSetClientCertCB(<a href="#cups_client_cert_cb_t">cups_client_cert_cb_t</a> cb, void *user_data);</p>
2269*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2270*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2271*5e7646d2SAndroid Build Coastguard Worker<tr><th>cb</th>
2272*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Callback function</td></tr>
2273*5e7646d2SAndroid Build Coastguard Worker<tr><th>user_data</th>
2274*5e7646d2SAndroid Build Coastguard Worker        <td class="description">User data pointer</td></tr>
2275*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2276*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2277*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Pass <code>NULL</code> to restore the default callback.<br>
2278*5e7646d2SAndroid Build Coastguard Worker<br>
2279*5e7646d2SAndroid Build Coastguard WorkerNote: The current certificate callback is tracked separately for each thread
2280*5e7646d2SAndroid Build Coastguard Workerin a program. Multi-threaded programs that override the callback need to do
2281*5e7646d2SAndroid Build Coastguard Workerso in each thread for the same callback to be used.
2282*5e7646d2SAndroid Build Coastguard Worker
2283*5e7646d2SAndroid Build Coastguard Worker</p>
2284*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span><a id="cupsSetCredentials">cupsSetCredentials</a></h3>
2285*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the default credentials to be used for SSL/TLS
2286*5e7646d2SAndroid Build Coastguard Workerconnections.</p>
2287*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2288*5e7646d2SAndroid Build Coastguard Workerint cupsSetCredentials(cups_array_t *credentials);</p>
2289*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2290*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2291*5e7646d2SAndroid Build Coastguard Worker<tr><th>credentials</th>
2292*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Array of credentials</td></tr>
2293*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2294*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2295*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of call (0 = success)</p>
2296*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2297*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Note: The default credentials are tracked separately for each thread in a
2298*5e7646d2SAndroid Build Coastguard Workerprogram. Multi-threaded programs that override the setting need to do so in
2299*5e7646d2SAndroid Build Coastguard Workereach thread for the same setting to be used.
2300*5e7646d2SAndroid Build Coastguard Worker
2301*5e7646d2SAndroid Build Coastguard Worker</p>
2302*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.3/macOS 10.5&#160;</span><a id="cupsSetDefaultDest">cupsSetDefaultDest</a></h3>
2303*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the default destination.</p>
2304*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2305*5e7646d2SAndroid Build Coastguard Workervoid cupsSetDefaultDest(const char *name, const char *instance, int num_dests, <a href="#cups_dest_t">cups_dest_t</a> *dests);</p>
2306*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2307*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2308*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
2309*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination name</td></tr>
2310*5e7646d2SAndroid Build Coastguard Worker<tr><th>instance</th>
2311*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Instance name or <code>NULL</code></td></tr>
2312*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_dests</th>
2313*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of destinations</td></tr>
2314*5e7646d2SAndroid Build Coastguard Worker<tr><th>dests</th>
2315*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destinations</td></tr>
2316*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2317*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.21/macOS 10.4&#160;</span><a id="cupsSetDests2">cupsSetDests2</a></h3>
2318*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Save the list of destinations for the specified server.</p>
2319*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2320*5e7646d2SAndroid Build Coastguard Workerint cupsSetDests2(<a href="#http_t">http_t</a> *http, int num_dests, <a href="#cups_dest_t">cups_dest_t</a> *dests);</p>
2321*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2322*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2323*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2324*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
2325*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_dests</th>
2326*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of destinations</td></tr>
2327*5e7646d2SAndroid Build Coastguard Worker<tr><th>dests</th>
2328*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destinations</td></tr>
2329*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2330*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2331*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on error</p>
2332*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2333*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function saves the destinations to /etc/cups/lpoptions when run
2334*5e7646d2SAndroid Build Coastguard Workeras root and ~/.cups/lpoptions when run as a normal user.
2335*5e7646d2SAndroid Build Coastguard Worker
2336*5e7646d2SAndroid Build Coastguard Worker</p>
2337*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsSetEncryption">cupsSetEncryption</a></h3>
2338*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the encryption preference.</p>
2339*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2340*5e7646d2SAndroid Build Coastguard Workervoid cupsSetEncryption(<a href="#http_encryption_t">http_encryption_t</a> e);</p>
2341*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2342*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2343*5e7646d2SAndroid Build Coastguard Worker<tr><th>e</th>
2344*5e7646d2SAndroid Build Coastguard Worker        <td class="description">New encryption preference</td></tr>
2345*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2346*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2347*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The default encryption setting comes from the CUPS_ENCRYPTION
2348*5e7646d2SAndroid Build Coastguard Workerenvironment variable, then the ~/.cups/client.conf file, and finally the
2349*5e7646d2SAndroid Build Coastguard Worker/etc/cups/client.conf file. If not set, the default is
2350*5e7646d2SAndroid Build Coastguard Worker<code>HTTP_ENCRYPTION_IF_REQUESTED</code>.<br>
2351*5e7646d2SAndroid Build Coastguard Worker<br>
2352*5e7646d2SAndroid Build Coastguard WorkerNote: The current encryption setting is tracked separately for each thread
2353*5e7646d2SAndroid Build Coastguard Workerin a program. Multi-threaded programs that override the setting need to do
2354*5e7646d2SAndroid Build Coastguard Workerso in each thread for the same setting to be used.</p>
2355*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="cupsSetPasswordCB2">cupsSetPasswordCB2</a></h3>
2356*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the advanced password callback for CUPS.</p>
2357*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2358*5e7646d2SAndroid Build Coastguard Workervoid cupsSetPasswordCB2(<a href="#cups_password_cb2_t">cups_password_cb2_t</a> cb, void *user_data);</p>
2359*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2360*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2361*5e7646d2SAndroid Build Coastguard Worker<tr><th>cb</th>
2362*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Callback function</td></tr>
2363*5e7646d2SAndroid Build Coastguard Worker<tr><th>user_data</th>
2364*5e7646d2SAndroid Build Coastguard Worker        <td class="description">User data pointer</td></tr>
2365*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2366*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2367*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Pass <code>NULL</code> to restore the default (console) password callback, which
2368*5e7646d2SAndroid Build Coastguard Workerreads the password from the console. Programs should call either this
2369*5e7646d2SAndroid Build Coastguard Workerfunction or <a href="#cupsSetPasswordCB2"><code>cupsSetPasswordCB2</code></a>, as only one callback can be registered
2370*5e7646d2SAndroid Build Coastguard Workerby a program per thread.<br>
2371*5e7646d2SAndroid Build Coastguard Worker<br>
2372*5e7646d2SAndroid Build Coastguard WorkerNote: The current password callback is tracked separately for each thread
2373*5e7646d2SAndroid Build Coastguard Workerin a program. Multi-threaded programs that override the callback need to do
2374*5e7646d2SAndroid Build Coastguard Workerso in each thread for the same callback to be used.
2375*5e7646d2SAndroid Build Coastguard Worker
2376*5e7646d2SAndroid Build Coastguard Worker</p>
2377*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsSetServer">cupsSetServer</a></h3>
2378*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the default server name and port.</p>
2379*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2380*5e7646d2SAndroid Build Coastguard Workervoid cupsSetServer(const char *server);</p>
2381*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2382*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2383*5e7646d2SAndroid Build Coastguard Worker<tr><th>server</th>
2384*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Server name</td></tr>
2385*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2386*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2387*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The &quot;server&quot; string can be a fully-qualified hostname, a numeric
2388*5e7646d2SAndroid Build Coastguard WorkerIPv4 or IPv6 address, or a domain socket pathname. Hostnames and numeric IP
2389*5e7646d2SAndroid Build Coastguard Workeraddresses can be optionally followed by a colon and port number to override
2390*5e7646d2SAndroid Build Coastguard Workerthe default port 631, e.g. &quot;hostname:8631&quot;. Pass <code>NULL</code> to restore the
2391*5e7646d2SAndroid Build Coastguard Workerdefault server name and port.<br>
2392*5e7646d2SAndroid Build Coastguard Worker<br>
2393*5e7646d2SAndroid Build Coastguard WorkerNote: The current server is tracked separately for each thread in a program.
2394*5e7646d2SAndroid Build Coastguard WorkerMulti-threaded programs that override the server need to do so in each
2395*5e7646d2SAndroid Build Coastguard Workerthread for the same server to be used.</p>
2396*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span><a id="cupsSetServerCertCB">cupsSetServerCertCB</a></h3>
2397*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the server certificate callback.</p>
2398*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2399*5e7646d2SAndroid Build Coastguard Workervoid cupsSetServerCertCB(<a href="#cups_server_cert_cb_t">cups_server_cert_cb_t</a> cb, void *user_data);</p>
2400*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2401*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2402*5e7646d2SAndroid Build Coastguard Worker<tr><th>cb</th>
2403*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Callback function</td></tr>
2404*5e7646d2SAndroid Build Coastguard Worker<tr><th>user_data</th>
2405*5e7646d2SAndroid Build Coastguard Worker        <td class="description">User data pointer</td></tr>
2406*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2407*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2408*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Pass <code>NULL</code> to restore the default callback.<br>
2409*5e7646d2SAndroid Build Coastguard Worker<br>
2410*5e7646d2SAndroid Build Coastguard WorkerNote: The current credentials callback is tracked separately for each thread
2411*5e7646d2SAndroid Build Coastguard Workerin a program. Multi-threaded programs that override the callback need to do
2412*5e7646d2SAndroid Build Coastguard Workerso in each thread for the same callback to be used.
2413*5e7646d2SAndroid Build Coastguard Worker
2414*5e7646d2SAndroid Build Coastguard Worker</p>
2415*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/macOS 10.10&#160;</span><a id="cupsSetServerCredentials">cupsSetServerCredentials</a></h3>
2416*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the default server credentials.</p>
2417*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2418*5e7646d2SAndroid Build Coastguard Workerint cupsSetServerCredentials(const char *path, const char *common_name, int auto_create);</p>
2419*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2420*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2421*5e7646d2SAndroid Build Coastguard Worker<tr><th>path</th>
2422*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Keychain path or <code>NULL</code> for default</td></tr>
2423*5e7646d2SAndroid Build Coastguard Worker<tr><th>common_name</th>
2424*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Default common name for server</td></tr>
2425*5e7646d2SAndroid Build Coastguard Worker<tr><th>auto_create</th>
2426*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 = automatically create self-signed certificates</td></tr>
2427*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2428*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2429*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
2430*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2431*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Note: The server credentials are used by all threads in the running process.
2432*5e7646d2SAndroid Build Coastguard WorkerThis function is threadsafe.
2433*5e7646d2SAndroid Build Coastguard Worker
2434*5e7646d2SAndroid Build Coastguard Worker</p>
2435*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsSetUser">cupsSetUser</a></h3>
2436*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the default user name.</p>
2437*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2438*5e7646d2SAndroid Build Coastguard Workervoid cupsSetUser(const char *user);</p>
2439*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2440*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2441*5e7646d2SAndroid Build Coastguard Worker<tr><th>user</th>
2442*5e7646d2SAndroid Build Coastguard Worker        <td class="description">User name</td></tr>
2443*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2444*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2445*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Pass <code>NULL</code> to restore the default user name.<br>
2446*5e7646d2SAndroid Build Coastguard Worker<br>
2447*5e7646d2SAndroid Build Coastguard WorkerNote: The current user name is tracked separately for each thread in a
2448*5e7646d2SAndroid Build Coastguard Workerprogram. Multi-threaded programs that override the user name need to do so
2449*5e7646d2SAndroid Build Coastguard Workerin each thread for the same user name to be used.</p>
2450*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="cupsSetUserAgent">cupsSetUserAgent</a></h3>
2451*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the default HTTP User-Agent string.</p>
2452*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2453*5e7646d2SAndroid Build Coastguard Workervoid cupsSetUserAgent(const char *user_agent);</p>
2454*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2455*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2456*5e7646d2SAndroid Build Coastguard Worker<tr><th>user_agent</th>
2457*5e7646d2SAndroid Build Coastguard Worker        <td class="description">User-Agent string or <code>NULL</code></td></tr>
2458*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2459*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2460*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Setting the string to NULL forces the default value containing the CUPS
2461*5e7646d2SAndroid Build Coastguard Workerversion, IPP version, and operating system version and architecture.
2462*5e7646d2SAndroid Build Coastguard Worker
2463*5e7646d2SAndroid Build Coastguard Worker</p>
2464*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cupsStartDestDocument">cupsStartDestDocument</a></h3>
2465*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Start a new document.</p>
2466*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2467*5e7646d2SAndroid Build Coastguard Workerhttp_status_t cupsStartDestDocument(<a href="#http_t">http_t</a> *http, <a href="#cups_dest_t">cups_dest_t</a> *dest, <a href="#cups_dinfo_t">cups_dinfo_t</a> *info, int job_id, const char *docname, const char *format, int num_options, <a href="#cups_option_t">cups_option_t</a> *options, int last_document);</p>
2468*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2469*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2470*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2471*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to destination</td></tr>
2472*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
2473*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
2474*5e7646d2SAndroid Build Coastguard Worker<tr><th>info</th>
2475*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination information</td></tr>
2476*5e7646d2SAndroid Build Coastguard Worker<tr><th>job_id</th>
2477*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Job ID</td></tr>
2478*5e7646d2SAndroid Build Coastguard Worker<tr><th>docname</th>
2479*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Document name</td></tr>
2480*5e7646d2SAndroid Build Coastguard Worker<tr><th>format</th>
2481*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Document format</td></tr>
2482*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options</th>
2483*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of document options</td></tr>
2484*5e7646d2SAndroid Build Coastguard Worker<tr><th>options</th>
2485*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Document options</td></tr>
2486*5e7646d2SAndroid Build Coastguard Worker<tr><th>last_document</th>
2487*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 if this is the last document</td></tr>
2488*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2489*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2490*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of document creation</p>
2491*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2492*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">&quot;job_id&quot; is the job ID returned by cupsCreateDestJob.  &quot;docname&quot; is the name
2493*5e7646d2SAndroid Build Coastguard Workerof the document/file being printed, &quot;format&quot; is the MIME media type for the
2494*5e7646d2SAndroid Build Coastguard Workerdocument (see CUPS_FORMAT_xxx constants), and &quot;num_options&quot; and &quot;options&quot;
2495*5e7646d2SAndroid Build Coastguard Workerare the options do be applied to the document. &quot;last_document&quot; should be 1
2496*5e7646d2SAndroid Build Coastguard Workerif this is the last document to be submitted in the job.  Returns
2497*5e7646d2SAndroid Build Coastguard Worker<code>HTTP_CONTINUE</code> on success.
2498*5e7646d2SAndroid Build Coastguard Worker
2499*5e7646d2SAndroid Build Coastguard Worker</p>
2500*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="cupsUser">cupsUser</a></h3>
2501*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the current user's name.</p>
2502*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2503*5e7646d2SAndroid Build Coastguard Workerconst char *cupsUser(void);</p>
2504*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2505*5e7646d2SAndroid Build Coastguard Worker        <p class="description">User name</p>
2506*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2507*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Note: The current user name is tracked separately for each thread in a
2508*5e7646d2SAndroid Build Coastguard Workerprogram. Multi-threaded programs that override the user name with the
2509*5e7646d2SAndroid Build Coastguard Worker<a href="#cupsSetUser"><code>cupsSetUser</code></a> function need to do so in each thread for the same user
2510*5e7646d2SAndroid Build Coastguard Workername to be used.</p>
2511*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="cupsUserAgent">cupsUserAgent</a></h3>
2512*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the default HTTP User-Agent string.</p>
2513*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2514*5e7646d2SAndroid Build Coastguard Workerconst char *cupsUserAgent(void);</p>
2515*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2516*5e7646d2SAndroid Build Coastguard Worker        <p class="description">User-Agent string</p>
2517*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpAcceptConnection">httpAcceptConnection</a></h3>
2518*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Accept a new HTTP client connection from the
2519*5e7646d2SAndroid Build Coastguard Workerspecified listening socket.</p>
2520*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2521*5e7646d2SAndroid Build Coastguard Worker<a href="#http_t">http_t</a> *httpAcceptConnection(int fd, int blocking);</p>
2522*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2523*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2524*5e7646d2SAndroid Build Coastguard Worker<tr><th>fd</th>
2525*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Listen socket file descriptor</td></tr>
2526*5e7646d2SAndroid Build Coastguard Worker<tr><th>blocking</th>
2527*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 if the connection should be
2528*5e7646d2SAndroid Build Coastguard Workerblocking, 0 otherwise</td></tr>
2529*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2530*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2531*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP connection or <code>NULL</code></p>
2532*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span><a id="httpAddCredential">httpAddCredential</a></h3>
2533*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Allocates and adds a single credential to an array.</p>
2534*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2535*5e7646d2SAndroid Build Coastguard Workerint httpAddCredential(cups_array_t *credentials, const void *data, size_t datalen);</p>
2536*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2537*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2538*5e7646d2SAndroid Build Coastguard Worker<tr><th>credentials</th>
2539*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Credentials array</td></tr>
2540*5e7646d2SAndroid Build Coastguard Worker<tr><th>data</th>
2541*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PEM-encoded X.509 data</td></tr>
2542*5e7646d2SAndroid Build Coastguard Worker<tr><th>datalen</th>
2543*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Length of data</td></tr>
2544*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2545*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2546*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on error</p>
2547*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2548*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Use <code>cupsArrayNew(NULL, NULL)</code> to create a credentials array.
2549*5e7646d2SAndroid Build Coastguard Worker
2550*5e7646d2SAndroid Build Coastguard Worker</p>
2551*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpAddrAny">httpAddrAny</a></h3>
2552*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Check for the &quot;any&quot; address.</p>
2553*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2554*5e7646d2SAndroid Build Coastguard Workerint httpAddrAny(const <a href="#http_addr_t">http_addr_t</a> *addr);</p>
2555*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2556*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2557*5e7646d2SAndroid Build Coastguard Worker<tr><th>addr</th>
2558*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Address to check</td></tr>
2559*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2560*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2561*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if &quot;any&quot;, 0 otherwise</p>
2562*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpAddrClose">httpAddrClose</a></h3>
2563*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Close a socket created by <a href="#httpAddrConnect"><code>httpAddrConnect</code></a> or
2564*5e7646d2SAndroid Build Coastguard Worker<a href="#httpAddrListen"><code>httpAddrListen</code></a>.</p>
2565*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2566*5e7646d2SAndroid Build Coastguard Workerint httpAddrClose(<a href="#http_addr_t">http_addr_t</a> *addr, int fd);</p>
2567*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2568*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2569*5e7646d2SAndroid Build Coastguard Worker<tr><th>addr</th>
2570*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Listen address or <code>NULL</code></td></tr>
2571*5e7646d2SAndroid Build Coastguard Worker<tr><th>fd</th>
2572*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Socket file descriptor</td></tr>
2573*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2574*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2575*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on failure</p>
2576*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2577*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Pass <code>NULL</code> for sockets created with <a href="#httpAddrConnect2"><code>httpAddrConnect2</code></a> and the
2578*5e7646d2SAndroid Build Coastguard Workerlisten address for sockets created with <a href="#httpAddrListen"><code>httpAddrListen</code></a>.  This function
2579*5e7646d2SAndroid Build Coastguard Workerensures that domain sockets are removed when closed.
2580*5e7646d2SAndroid Build Coastguard Worker
2581*5e7646d2SAndroid Build Coastguard Worker</p>
2582*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpAddrConnect2">httpAddrConnect2</a></h3>
2583*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Connect to any of the addresses in the list with a
2584*5e7646d2SAndroid Build Coastguard Workertimeout and optional cancel.</p>
2585*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2586*5e7646d2SAndroid Build Coastguard Worker<a href="#http_addrlist_t">http_addrlist_t</a> *httpAddrConnect2(<a href="#http_addrlist_t">http_addrlist_t</a> *addrlist, int *sock, int msec, int *cancel);</p>
2587*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2588*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2589*5e7646d2SAndroid Build Coastguard Worker<tr><th>addrlist</th>
2590*5e7646d2SAndroid Build Coastguard Worker        <td class="description">List of potential addresses</td></tr>
2591*5e7646d2SAndroid Build Coastguard Worker<tr><th>sock</th>
2592*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Socket</td></tr>
2593*5e7646d2SAndroid Build Coastguard Worker<tr><th>msec</th>
2594*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Timeout in milliseconds</td></tr>
2595*5e7646d2SAndroid Build Coastguard Worker<tr><th>cancel</th>
2596*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to &quot;cancel&quot; variable</td></tr>
2597*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2598*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2599*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Connected address or NULL on failure</p>
2600*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpAddrCopyList">httpAddrCopyList</a></h3>
2601*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Copy an address list.</p>
2602*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2603*5e7646d2SAndroid Build Coastguard Worker<a href="#http_addrlist_t">http_addrlist_t</a> *httpAddrCopyList(<a href="#http_addrlist_t">http_addrlist_t</a> *src);</p>
2604*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2605*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2606*5e7646d2SAndroid Build Coastguard Worker<tr><th>src</th>
2607*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Source address list</td></tr>
2608*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2609*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2610*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New address list or <code>NULL</code> on error</p>
2611*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpAddrEqual">httpAddrEqual</a></h3>
2612*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Compare two addresses.</p>
2613*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2614*5e7646d2SAndroid Build Coastguard Workerint httpAddrEqual(const <a href="#http_addr_t">http_addr_t</a> *addr1, const <a href="#http_addr_t">http_addr_t</a> *addr2);</p>
2615*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2616*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2617*5e7646d2SAndroid Build Coastguard Worker<tr><th>addr1</th>
2618*5e7646d2SAndroid Build Coastguard Worker        <td class="description">First address</td></tr>
2619*5e7646d2SAndroid Build Coastguard Worker<tr><th>addr2</th>
2620*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Second address</td></tr>
2621*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2622*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2623*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if equal, 0 if not</p>
2624*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpAddrFamily">httpAddrFamily</a></h3>
2625*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the address family of an address.</p>
2626*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2627*5e7646d2SAndroid Build Coastguard Workerint httpAddrFamily(<a href="#http_addr_t">http_addr_t</a> *addr);</p>
2628*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2629*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2630*5e7646d2SAndroid Build Coastguard Worker<tr><th>addr</th>
2631*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Address</td></tr>
2632*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2633*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2634*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Address family</p>
2635*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpAddrFreeList">httpAddrFreeList</a></h3>
2636*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Free an address list.</p>
2637*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2638*5e7646d2SAndroid Build Coastguard Workervoid httpAddrFreeList(<a href="#http_addrlist_t">http_addrlist_t</a> *addrlist);</p>
2639*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2640*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2641*5e7646d2SAndroid Build Coastguard Worker<tr><th>addrlist</th>
2642*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Address list to free</td></tr>
2643*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2644*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpAddrGetList">httpAddrGetList</a></h3>
2645*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a list of addresses for a hostname.</p>
2646*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2647*5e7646d2SAndroid Build Coastguard Worker<a href="#http_addrlist_t">http_addrlist_t</a> *httpAddrGetList(const char *hostname, int family, const char *service);</p>
2648*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2649*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2650*5e7646d2SAndroid Build Coastguard Worker<tr><th>hostname</th>
2651*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Hostname, IP address, or NULL for passive listen address</td></tr>
2652*5e7646d2SAndroid Build Coastguard Worker<tr><th>family</th>
2653*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Address family or AF_UNSPEC</td></tr>
2654*5e7646d2SAndroid Build Coastguard Worker<tr><th>service</th>
2655*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Service name or port number</td></tr>
2656*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2657*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2658*5e7646d2SAndroid Build Coastguard Worker        <p class="description">List of addresses or NULL</p>
2659*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpAddrLength">httpAddrLength</a></h3>
2660*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the length of the address in bytes.</p>
2661*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2662*5e7646d2SAndroid Build Coastguard Workerint httpAddrLength(const <a href="#http_addr_t">http_addr_t</a> *addr);</p>
2663*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2664*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2665*5e7646d2SAndroid Build Coastguard Worker<tr><th>addr</th>
2666*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Address</td></tr>
2667*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2668*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2669*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Length in bytes</p>
2670*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpAddrListen">httpAddrListen</a></h3>
2671*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Create a listening socket bound to the specified
2672*5e7646d2SAndroid Build Coastguard Workeraddress and port.</p>
2673*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2674*5e7646d2SAndroid Build Coastguard Workerint httpAddrListen(<a href="#http_addr_t">http_addr_t</a> *addr, int port);</p>
2675*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2676*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2677*5e7646d2SAndroid Build Coastguard Worker<tr><th>addr</th>
2678*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Address to bind to</td></tr>
2679*5e7646d2SAndroid Build Coastguard Worker<tr><th>port</th>
2680*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Port number to bind to</td></tr>
2681*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2682*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2683*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Socket or -1 on error</p>
2684*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpAddrLocalhost">httpAddrLocalhost</a></h3>
2685*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Check for the local loopback address.</p>
2686*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2687*5e7646d2SAndroid Build Coastguard Workerint httpAddrLocalhost(const <a href="#http_addr_t">http_addr_t</a> *addr);</p>
2688*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2689*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2690*5e7646d2SAndroid Build Coastguard Worker<tr><th>addr</th>
2691*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Address to check</td></tr>
2692*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2693*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2694*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if local host, 0 otherwise</p>
2695*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpAddrLookup">httpAddrLookup</a></h3>
2696*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Lookup the hostname associated with the address.</p>
2697*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2698*5e7646d2SAndroid Build Coastguard Workerchar *httpAddrLookup(const <a href="#http_addr_t">http_addr_t</a> *addr, char *name, int namelen);</p>
2699*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2700*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2701*5e7646d2SAndroid Build Coastguard Worker<tr><th>addr</th>
2702*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Address to lookup</td></tr>
2703*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
2704*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Host name buffer</td></tr>
2705*5e7646d2SAndroid Build Coastguard Worker<tr><th>namelen</th>
2706*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of name buffer</td></tr>
2707*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2708*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2709*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Host name</p>
2710*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpAddrPort">httpAddrPort</a></h3>
2711*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the port number associated with an address.</p>
2712*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2713*5e7646d2SAndroid Build Coastguard Workerint httpAddrPort(<a href="#http_addr_t">http_addr_t</a> *addr);</p>
2714*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2715*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2716*5e7646d2SAndroid Build Coastguard Worker<tr><th>addr</th>
2717*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Address</td></tr>
2718*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2719*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2720*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Port number</p>
2721*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpAddrString">httpAddrString</a></h3>
2722*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Convert an address to a numeric string.</p>
2723*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2724*5e7646d2SAndroid Build Coastguard Workerchar *httpAddrString(const <a href="#http_addr_t">http_addr_t</a> *addr, char *s, int slen);</p>
2725*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2726*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2727*5e7646d2SAndroid Build Coastguard Worker<tr><th>addr</th>
2728*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Address to convert</td></tr>
2729*5e7646d2SAndroid Build Coastguard Worker<tr><th>s</th>
2730*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String buffer</td></tr>
2731*5e7646d2SAndroid Build Coastguard Worker<tr><th>slen</th>
2732*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Length of string</td></tr>
2733*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2734*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2735*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Numeric address string</p>
2736*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpAssembleURI">httpAssembleURI</a></h3>
2737*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Assemble a uniform resource identifier from its
2738*5e7646d2SAndroid Build Coastguard Workercomponents.</p>
2739*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2740*5e7646d2SAndroid Build Coastguard Worker<a href="#http_uri_status_t">http_uri_status_t</a> httpAssembleURI(<a href="#http_uri_coding_t">http_uri_coding_t</a> encoding, char *uri, int urilen, const char *scheme, const char *username, const char *host, int port, const char *resource);</p>
2741*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2742*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2743*5e7646d2SAndroid Build Coastguard Worker<tr><th>encoding</th>
2744*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Encoding flags</td></tr>
2745*5e7646d2SAndroid Build Coastguard Worker<tr><th>uri</th>
2746*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI buffer</td></tr>
2747*5e7646d2SAndroid Build Coastguard Worker<tr><th>urilen</th>
2748*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of URI buffer</td></tr>
2749*5e7646d2SAndroid Build Coastguard Worker<tr><th>scheme</th>
2750*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Scheme name</td></tr>
2751*5e7646d2SAndroid Build Coastguard Worker<tr><th>username</th>
2752*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Username</td></tr>
2753*5e7646d2SAndroid Build Coastguard Worker<tr><th>host</th>
2754*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Hostname or address</td></tr>
2755*5e7646d2SAndroid Build Coastguard Worker<tr><th>port</th>
2756*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Port number</td></tr>
2757*5e7646d2SAndroid Build Coastguard Worker<tr><th>resource</th>
2758*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Resource</td></tr>
2759*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2760*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2761*5e7646d2SAndroid Build Coastguard Worker        <p class="description">URI status</p>
2762*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2763*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function escapes reserved characters in the URI depending on the
2764*5e7646d2SAndroid Build Coastguard Workervalue of the &quot;encoding&quot; argument.  You should use this function in
2765*5e7646d2SAndroid Build Coastguard Workerplace of traditional string functions whenever you need to create a
2766*5e7646d2SAndroid Build Coastguard WorkerURI string.
2767*5e7646d2SAndroid Build Coastguard Worker
2768*5e7646d2SAndroid Build Coastguard Worker</p>
2769*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpAssembleURIf">httpAssembleURIf</a></h3>
2770*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Assemble a uniform resource identifier from its
2771*5e7646d2SAndroid Build Coastguard Workercomponents with a formatted resource.</p>
2772*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2773*5e7646d2SAndroid Build Coastguard Worker<a href="#http_uri_status_t">http_uri_status_t</a> httpAssembleURIf(<a href="#http_uri_coding_t">http_uri_coding_t</a> encoding, char *uri, int urilen, const char *scheme, const char *username, const char *host, int port, const char *resourcef, ...);</p>
2774*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2775*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2776*5e7646d2SAndroid Build Coastguard Worker<tr><th>encoding</th>
2777*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Encoding flags</td></tr>
2778*5e7646d2SAndroid Build Coastguard Worker<tr><th>uri</th>
2779*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI buffer</td></tr>
2780*5e7646d2SAndroid Build Coastguard Worker<tr><th>urilen</th>
2781*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of URI buffer</td></tr>
2782*5e7646d2SAndroid Build Coastguard Worker<tr><th>scheme</th>
2783*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Scheme name</td></tr>
2784*5e7646d2SAndroid Build Coastguard Worker<tr><th>username</th>
2785*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Username</td></tr>
2786*5e7646d2SAndroid Build Coastguard Worker<tr><th>host</th>
2787*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Hostname or address</td></tr>
2788*5e7646d2SAndroid Build Coastguard Worker<tr><th>port</th>
2789*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Port number</td></tr>
2790*5e7646d2SAndroid Build Coastguard Worker<tr><th>resourcef</th>
2791*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Printf-style resource</td></tr>
2792*5e7646d2SAndroid Build Coastguard Worker<tr><th>...</th>
2793*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Additional arguments as needed</td></tr>
2794*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2795*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2796*5e7646d2SAndroid Build Coastguard Worker        <p class="description">URI status</p>
2797*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2798*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function creates a formatted version of the resource string
2799*5e7646d2SAndroid Build Coastguard Workerargument &quot;resourcef&quot; and escapes reserved characters in the URI
2800*5e7646d2SAndroid Build Coastguard Workerdepending on the value of the &quot;encoding&quot; argument.  You should use
2801*5e7646d2SAndroid Build Coastguard Workerthis function in place of traditional string functions whenever
2802*5e7646d2SAndroid Build Coastguard Workeryou need to create a URI string.
2803*5e7646d2SAndroid Build Coastguard Worker
2804*5e7646d2SAndroid Build Coastguard Worker</p>
2805*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpAssembleUUID">httpAssembleUUID</a></h3>
2806*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Assemble a name-based UUID URN conforming to RFC 4122.</p>
2807*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2808*5e7646d2SAndroid Build Coastguard Workerchar *httpAssembleUUID(const char *server, int port, const char *name, int number, char *buffer, size_t bufsize);</p>
2809*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2810*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2811*5e7646d2SAndroid Build Coastguard Worker<tr><th>server</th>
2812*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Server name</td></tr>
2813*5e7646d2SAndroid Build Coastguard Worker<tr><th>port</th>
2814*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Port number</td></tr>
2815*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
2816*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Object name or NULL</td></tr>
2817*5e7646d2SAndroid Build Coastguard Worker<tr><th>number</th>
2818*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Object number or 0</td></tr>
2819*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th>
2820*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String buffer</td></tr>
2821*5e7646d2SAndroid Build Coastguard Worker<tr><th>bufsize</th>
2822*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of buffer</td></tr>
2823*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2824*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2825*5e7646d2SAndroid Build Coastguard Worker        <p class="description">UUID string</p>
2826*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
2827*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function creates a unique 128-bit identifying number using the server
2828*5e7646d2SAndroid Build Coastguard Workername, port number, random data, and optionally an object name and/or object
2829*5e7646d2SAndroid Build Coastguard Workernumber.  The result is formatted as a UUID URN as defined in RFC 4122.<br>
2830*5e7646d2SAndroid Build Coastguard Worker<br>
2831*5e7646d2SAndroid Build Coastguard WorkerThe buffer needs to be at least 46 bytes in size.
2832*5e7646d2SAndroid Build Coastguard Worker
2833*5e7646d2SAndroid Build Coastguard Worker</p>
2834*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpBlocking">httpBlocking</a></h3>
2835*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set blocking/non-blocking behavior on a connection.</p>
2836*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2837*5e7646d2SAndroid Build Coastguard Workervoid httpBlocking(<a href="#http_t">http_t</a> *http, int b);</p>
2838*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2839*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2840*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2841*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
2842*5e7646d2SAndroid Build Coastguard Worker<tr><th>b</th>
2843*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 = blocking, 0 = non-blocking</td></tr>
2844*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2845*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpCheck">httpCheck</a></h3>
2846*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Check to see if there is a pending response from the server.</p>
2847*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2848*5e7646d2SAndroid Build Coastguard Workerint httpCheck(<a href="#http_t">http_t</a> *http);</p>
2849*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2850*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2851*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2852*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
2853*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2854*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2855*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 = no data, 1 = data available</p>
2856*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span><a id="httpClearCookie">httpClearCookie</a></h3>
2857*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Clear the cookie value(s).</p>
2858*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2859*5e7646d2SAndroid Build Coastguard Workervoid httpClearCookie(<a href="#http_t">http_t</a> *http);</p>
2860*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2861*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2862*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2863*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
2864*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2865*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpClearFields">httpClearFields</a></h3>
2866*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Clear HTTP request fields.</p>
2867*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2868*5e7646d2SAndroid Build Coastguard Workervoid httpClearFields(<a href="#http_t">http_t</a> *http);</p>
2869*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2870*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2871*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2872*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
2873*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2874*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpClose">httpClose</a></h3>
2875*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Close an HTTP connection.</p>
2876*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2877*5e7646d2SAndroid Build Coastguard Workervoid httpClose(<a href="#http_t">http_t</a> *http);</p>
2878*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2879*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2880*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2881*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
2882*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2883*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpCompareCredentials">httpCompareCredentials</a></h3>
2884*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Compare two sets of X.509 credentials.</p>
2885*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2886*5e7646d2SAndroid Build Coastguard Workerint httpCompareCredentials(cups_array_t *cred1, cups_array_t *cred2);</p>
2887*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2888*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2889*5e7646d2SAndroid Build Coastguard Worker<tr><th>cred1</th>
2890*5e7646d2SAndroid Build Coastguard Worker        <td class="description">First set of X.509 credentials</td></tr>
2891*5e7646d2SAndroid Build Coastguard Worker<tr><th>cred2</th>
2892*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Second set of X.509 credentials</td></tr>
2893*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2894*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2895*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if they match, 0 if they do not</p>
2896*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpConnect2">httpConnect2</a></h3>
2897*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Connect to a HTTP server.</p>
2898*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2899*5e7646d2SAndroid Build Coastguard Worker<a href="#http_t">http_t</a> *httpConnect2(const char *host, int port, <a href="#http_addrlist_t">http_addrlist_t</a> *addrlist, int family, <a href="#http_encryption_t">http_encryption_t</a> encryption, int blocking, int msec, int *cancel);</p>
2900*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2901*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2902*5e7646d2SAndroid Build Coastguard Worker<tr><th>host</th>
2903*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Host to connect to</td></tr>
2904*5e7646d2SAndroid Build Coastguard Worker<tr><th>port</th>
2905*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Port number</td></tr>
2906*5e7646d2SAndroid Build Coastguard Worker<tr><th>addrlist</th>
2907*5e7646d2SAndroid Build Coastguard Worker        <td class="description">List of addresses or <code>NULL</code> to lookup</td></tr>
2908*5e7646d2SAndroid Build Coastguard Worker<tr><th>family</th>
2909*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Address family to use or <code>AF_UNSPEC</code> for any</td></tr>
2910*5e7646d2SAndroid Build Coastguard Worker<tr><th>encryption</th>
2911*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Type of encryption to use</td></tr>
2912*5e7646d2SAndroid Build Coastguard Worker<tr><th>blocking</th>
2913*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 for blocking connection, 0 for non-blocking</td></tr>
2914*5e7646d2SAndroid Build Coastguard Worker<tr><th>msec</th>
2915*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection timeout in milliseconds, 0 means don't connect</td></tr>
2916*5e7646d2SAndroid Build Coastguard Worker<tr><th>cancel</th>
2917*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to &quot;cancel&quot; variable</td></tr>
2918*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2919*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2920*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New HTTP connection</p>
2921*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span><a id="httpCopyCredentials">httpCopyCredentials</a></h3>
2922*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Copy the credentials associated with the peer in
2923*5e7646d2SAndroid Build Coastguard Workeran encrypted connection.</p>
2924*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2925*5e7646d2SAndroid Build Coastguard Workerint httpCopyCredentials(<a href="#http_t">http_t</a> *http, cups_array_t **credentials);</p>
2926*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2927*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2928*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
2929*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server</td></tr>
2930*5e7646d2SAndroid Build Coastguard Worker<tr><th>credentials</th>
2931*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Array of credentials</td></tr>
2932*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2933*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2934*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of call (0 = success)</p>
2935*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/macOS 10.10&#160;</span><a id="httpCredentialsAreValidForName">httpCredentialsAreValidForName</a></h3>
2936*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return whether the credentials are valid for the given name.</p>
2937*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2938*5e7646d2SAndroid Build Coastguard Workerint httpCredentialsAreValidForName(cups_array_t *credentials, const char *common_name);</p>
2939*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2940*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2941*5e7646d2SAndroid Build Coastguard Worker<tr><th>credentials</th>
2942*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Credentials</td></tr>
2943*5e7646d2SAndroid Build Coastguard Worker<tr><th>common_name</th>
2944*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name to check</td></tr>
2945*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2946*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2947*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if valid, 0 otherwise</p>
2948*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/macOS 10.10&#160;</span><a id="httpCredentialsGetExpiration">httpCredentialsGetExpiration</a></h3>
2949*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the expiration date of the credentials.</p>
2950*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2951*5e7646d2SAndroid Build Coastguard Workertime_t httpCredentialsGetExpiration(cups_array_t *credentials);</p>
2952*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2953*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2954*5e7646d2SAndroid Build Coastguard Worker<tr><th>credentials</th>
2955*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Credentials</td></tr>
2956*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2957*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2958*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Expiration date of credentials</p>
2959*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/macOS 10.10&#160;</span><a id="httpCredentialsGetTrust">httpCredentialsGetTrust</a></h3>
2960*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the trust of credentials.</p>
2961*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2962*5e7646d2SAndroid Build Coastguard Worker<a href="#http_trust_t">http_trust_t</a> httpCredentialsGetTrust(cups_array_t *credentials, const char *common_name);</p>
2963*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2964*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2965*5e7646d2SAndroid Build Coastguard Worker<tr><th>credentials</th>
2966*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Credentials</td></tr>
2967*5e7646d2SAndroid Build Coastguard Worker<tr><th>common_name</th>
2968*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Common name for trust lookup</td></tr>
2969*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2970*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2971*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Level of trust</p>
2972*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/macOS 10.10&#160;</span><a id="httpCredentialsString">httpCredentialsString</a></h3>
2973*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return a string representing the credentials.</p>
2974*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2975*5e7646d2SAndroid Build Coastguard Workersize_t httpCredentialsString(cups_array_t *credentials, char *buffer, size_t bufsize);</p>
2976*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2977*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2978*5e7646d2SAndroid Build Coastguard Worker<tr><th>credentials</th>
2979*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Credentials</td></tr>
2980*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th>
2981*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Buffer or <code>NULL</code></td></tr>
2982*5e7646d2SAndroid Build Coastguard Worker<tr><th>bufsize</th>
2983*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of buffer</td></tr>
2984*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
2985*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
2986*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Total size of credentials string</p>
2987*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.21/macOS 10.4&#160;</span><a id="httpDecode64_2">httpDecode64_2</a></h3>
2988*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Base64-decode a string.</p>
2989*5e7646d2SAndroid Build Coastguard Worker<p class="code">
2990*5e7646d2SAndroid Build Coastguard Workerchar *httpDecode64_2(char *out, int *outlen, const char *in);</p>
2991*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
2992*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
2993*5e7646d2SAndroid Build Coastguard Worker<tr><th>out</th>
2994*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String to write to</td></tr>
2995*5e7646d2SAndroid Build Coastguard Worker<tr><th>outlen</th>
2996*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of output string</td></tr>
2997*5e7646d2SAndroid Build Coastguard Worker<tr><th>in</th>
2998*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String to read from</td></tr>
2999*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3000*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3001*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Decoded string</p>
3002*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3003*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The caller must initialize &quot;outlen&quot; to the maximum size of the decoded
3004*5e7646d2SAndroid Build Coastguard Workerstring before calling <code>httpDecode64_2</code>.  On return &quot;outlen&quot; contains the
3005*5e7646d2SAndroid Build Coastguard Workerdecoded length of the string.
3006*5e7646d2SAndroid Build Coastguard Worker
3007*5e7646d2SAndroid Build Coastguard Worker</p>
3008*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpDelete">httpDelete</a></h3>
3009*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Send a DELETE request to the server.</p>
3010*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3011*5e7646d2SAndroid Build Coastguard Workerint httpDelete(<a href="#http_t">http_t</a> *http, const char *uri);</p>
3012*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3013*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3014*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3015*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3016*5e7646d2SAndroid Build Coastguard Worker<tr><th>uri</th>
3017*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI to delete</td></tr>
3018*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3019*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3020*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of call (0 = success)</p>
3021*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.21/macOS 10.4&#160;</span><a id="httpEncode64_2">httpEncode64_2</a></h3>
3022*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Base64-encode a string.</p>
3023*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3024*5e7646d2SAndroid Build Coastguard Workerchar *httpEncode64_2(char *out, int outlen, const char *in, int inlen);</p>
3025*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3026*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3027*5e7646d2SAndroid Build Coastguard Worker<tr><th>out</th>
3028*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String to write to</td></tr>
3029*5e7646d2SAndroid Build Coastguard Worker<tr><th>outlen</th>
3030*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Maximum size of output string</td></tr>
3031*5e7646d2SAndroid Build Coastguard Worker<tr><th>in</th>
3032*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String to read from</td></tr>
3033*5e7646d2SAndroid Build Coastguard Worker<tr><th>inlen</th>
3034*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of input string</td></tr>
3035*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3036*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3037*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Encoded string</p>
3038*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpEncryption">httpEncryption</a></h3>
3039*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the required encryption on the link.</p>
3040*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3041*5e7646d2SAndroid Build Coastguard Workerint httpEncryption(<a href="#http_t">http_t</a> *http, <a href="#http_encryption_t">http_encryption_t</a> e);</p>
3042*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3043*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3044*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3045*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3046*5e7646d2SAndroid Build Coastguard Worker<tr><th>e</th>
3047*5e7646d2SAndroid Build Coastguard Worker        <td class="description">New encryption preference</td></tr>
3048*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3049*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3050*5e7646d2SAndroid Build Coastguard Worker        <p class="description">-1 on error, 0 on success</p>
3051*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpError">httpError</a></h3>
3052*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the last error on a connection.</p>
3053*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3054*5e7646d2SAndroid Build Coastguard Workerint httpError(<a href="#http_t">http_t</a> *http);</p>
3055*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3056*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3057*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3058*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3059*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3060*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3061*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Error code (errno) value</p>
3062*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpFieldValue">httpFieldValue</a></h3>
3063*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the HTTP field enumeration value for a field
3064*5e7646d2SAndroid Build Coastguard Workername.</p>
3065*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3066*5e7646d2SAndroid Build Coastguard Worker<a href="#http_field_t">http_field_t</a> httpFieldValue(const char *name);</p>
3067*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3068*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3069*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
3070*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String name</td></tr>
3071*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3072*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3073*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Field index</p>
3074*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpFlush">httpFlush</a></h3>
3075*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Flush data read from a HTTP connection.</p>
3076*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3077*5e7646d2SAndroid Build Coastguard Workervoid httpFlush(<a href="#http_t">http_t</a> *http);</p>
3078*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3079*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3080*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3081*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3082*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3083*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpFlushWrite">httpFlushWrite</a></h3>
3084*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Flush data written to a HTTP connection.</p>
3085*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3086*5e7646d2SAndroid Build Coastguard Workerint httpFlushWrite(<a href="#http_t">http_t</a> *http);</p>
3087*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3088*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3089*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3090*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3091*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3092*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3093*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Bytes written or -1 on error</p>
3094*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpFreeCredentials">httpFreeCredentials</a></h3>
3095*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Free an array of credentials.</p>
3096*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3097*5e7646d2SAndroid Build Coastguard Workervoid httpFreeCredentials(cups_array_t *credentials);</p>
3098*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3099*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3100*5e7646d2SAndroid Build Coastguard Worker<tr><th>credentials</th>
3101*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Array of credentials</td></tr>
3102*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3103*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpGet">httpGet</a></h3>
3104*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Send a GET request to the server.</p>
3105*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3106*5e7646d2SAndroid Build Coastguard Workerint httpGet(<a href="#http_t">http_t</a> *http, const char *uri);</p>
3107*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3108*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3109*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3110*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3111*5e7646d2SAndroid Build Coastguard Worker<tr><th>uri</th>
3112*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI to get</td></tr>
3113*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3114*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3115*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of call (0 = success)</p>
3116*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpGetActivity">httpGetActivity</a></h3>
3117*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the most recent activity for a connection.</p>
3118*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3119*5e7646d2SAndroid Build Coastguard Workertime_t httpGetActivity(<a href="#http_t">http_t</a> *http);</p>
3120*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3121*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3122*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3123*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3124*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3125*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3126*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Time of last read or write</p>
3127*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3128*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The return value is the time in seconds of the last read or write.
3129*5e7646d2SAndroid Build Coastguard Worker
3130*5e7646d2SAndroid Build Coastguard Worker</p>
3131*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpGetAddress">httpGetAddress</a></h3>
3132*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the address of the connected peer of a connection.</p>
3133*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3134*5e7646d2SAndroid Build Coastguard Worker<a href="#http_addr_t">http_addr_t</a> *httpGetAddress(<a href="#http_t">http_t</a> *http);</p>
3135*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3136*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3137*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3138*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3139*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3140*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3141*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Connected address or <code>NULL</code></p>
3142*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3143*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">For connections created with <a href="#httpConnect2"><code>httpConnect2</code></a>, the address is for the
3144*5e7646d2SAndroid Build Coastguard Workerserver.  For connections created with <a href="#httpAccept"><code>httpAccept</code></a>, the address is for
3145*5e7646d2SAndroid Build Coastguard Workerthe client.<br>
3146*5e7646d2SAndroid Build Coastguard Worker<br>
3147*5e7646d2SAndroid Build Coastguard WorkerReturns <code>NULL</code> if the socket is currently unconnected.
3148*5e7646d2SAndroid Build Coastguard Worker
3149*5e7646d2SAndroid Build Coastguard Worker</p>
3150*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.3/macOS 10.5&#160;</span><a id="httpGetAuthString">httpGetAuthString</a></h3>
3151*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the current authorization string.</p>
3152*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3153*5e7646d2SAndroid Build Coastguard Workerchar *httpGetAuthString(<a href="#http_t">http_t</a> *http);</p>
3154*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3155*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3156*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3157*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3158*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3159*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3160*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Authorization string</p>
3161*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3162*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The authorization string is set by <a href="#cupsDoAuthentication"><code>cupsDoAuthentication</code></a> and
3163*5e7646d2SAndroid Build Coastguard Worker<a href="#httpSetAuthString"><code>httpSetAuthString</code></a>.  Use <a href="#httpGetAuthString"><code>httpGetAuthString</code></a> to retrieve the
3164*5e7646d2SAndroid Build Coastguard Workerstring to use with <a href="#httpSetField"><code>httpSetField</code></a> for the
3165*5e7646d2SAndroid Build Coastguard Worker<code>HTTP_FIELD_AUTHORIZATION</code> value.
3166*5e7646d2SAndroid Build Coastguard Worker
3167*5e7646d2SAndroid Build Coastguard Worker</p>
3168*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpGetBlocking">httpGetBlocking</a></h3>
3169*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the blocking/non-block state of a connection.</p>
3170*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3171*5e7646d2SAndroid Build Coastguard Workerint httpGetBlocking(<a href="#http_t">http_t</a> *http);</p>
3172*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3173*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3174*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3175*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3176*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3177*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3178*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if blocking, 0 if non-blocking</p>
3179*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpGetContentEncoding">httpGetContentEncoding</a></h3>
3180*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a common content encoding, if any, between
3181*5e7646d2SAndroid Build Coastguard Workerthe client and server.</p>
3182*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3183*5e7646d2SAndroid Build Coastguard Workerconst char *httpGetContentEncoding(<a href="#http_t">http_t</a> *http);</p>
3184*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3185*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3186*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3187*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3188*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3189*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3190*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Content-Coding value or
3191*5e7646d2SAndroid Build Coastguard Worker<code>NULL</code> for the identity
3192*5e7646d2SAndroid Build Coastguard Workercoding.</p>
3193*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3194*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function uses the value of the Accepts-Encoding HTTP header and must be
3195*5e7646d2SAndroid Build Coastguard Workercalled after receiving a response from the server or a request from the
3196*5e7646d2SAndroid Build Coastguard Workerclient.  The value returned can be use in subsequent requests (for clients)
3197*5e7646d2SAndroid Build Coastguard Workeror in the response (for servers) in order to compress the content stream.
3198*5e7646d2SAndroid Build Coastguard Worker
3199*5e7646d2SAndroid Build Coastguard Worker</p>
3200*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span><a id="httpGetCookie">httpGetCookie</a></h3>
3201*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get any cookie data from the response.</p>
3202*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3203*5e7646d2SAndroid Build Coastguard Workerconst char *httpGetCookie(<a href="#http_t">http_t</a> *http);</p>
3204*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3205*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3206*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3207*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3208*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3209*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3210*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Cookie data or <code>NULL</code></p>
3211*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpGetDateString2">httpGetDateString2</a></h3>
3212*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a formatted date/time string from a time value.</p>
3213*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3214*5e7646d2SAndroid Build Coastguard Workerconst char *httpGetDateString2(time_t t, char *s, int slen);</p>
3215*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3216*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3217*5e7646d2SAndroid Build Coastguard Worker<tr><th>t</th>
3218*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Time in seconds</td></tr>
3219*5e7646d2SAndroid Build Coastguard Worker<tr><th>s</th>
3220*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String buffer</td></tr>
3221*5e7646d2SAndroid Build Coastguard Worker<tr><th>slen</th>
3222*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of string buffer</td></tr>
3223*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3224*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3225*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Date/time string</p>
3226*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpGetDateTime">httpGetDateTime</a></h3>
3227*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a time value from a formatted date/time string.</p>
3228*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3229*5e7646d2SAndroid Build Coastguard Workertime_t httpGetDateTime(const char *s);</p>
3230*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3231*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3232*5e7646d2SAndroid Build Coastguard Worker<tr><th>s</th>
3233*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Date/time string</td></tr>
3234*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3235*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3236*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Time in seconds</p>
3237*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpGetEncryption">httpGetEncryption</a></h3>
3238*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the current encryption mode of a connection.</p>
3239*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3240*5e7646d2SAndroid Build Coastguard Worker<a href="#http_encryption_t">http_encryption_t</a> httpGetEncryption(<a href="#http_t">http_t</a> *http);</p>
3241*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3242*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3243*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3244*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3245*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3246*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3247*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Current encryption mode</p>
3248*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3249*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function returns the encryption mode for the connection. Use the
3250*5e7646d2SAndroid Build Coastguard Worker<a href="#httpIsEncrypted"><code>httpIsEncrypted</code></a> function to determine whether a TLS session has
3251*5e7646d2SAndroid Build Coastguard Workerbeen established.
3252*5e7646d2SAndroid Build Coastguard Worker
3253*5e7646d2SAndroid Build Coastguard Worker</p>
3254*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpGetExpect">httpGetExpect</a></h3>
3255*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the value of the Expect header, if any.</p>
3256*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3257*5e7646d2SAndroid Build Coastguard Workerhttp_status_t httpGetExpect(<a href="#http_t">http_t</a> *http);</p>
3258*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3259*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3260*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3261*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3262*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3263*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3264*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Expect: status, if any</p>
3265*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3266*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Returns <code>HTTP_STATUS_NONE</code> if there is no Expect header, otherwise
3267*5e7646d2SAndroid Build Coastguard Workerreturns the expected HTTP status code, typically <code>HTTP_STATUS_CONTINUE</code>.
3268*5e7646d2SAndroid Build Coastguard Worker
3269*5e7646d2SAndroid Build Coastguard Worker</p>
3270*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpGetFd">httpGetFd</a></h3>
3271*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the file descriptor associated with a connection.</p>
3272*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3273*5e7646d2SAndroid Build Coastguard Workerint httpGetFd(<a href="#http_t">http_t</a> *http);</p>
3274*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3275*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3276*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3277*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3278*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3279*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3280*5e7646d2SAndroid Build Coastguard Worker        <p class="description">File descriptor or -1 if none</p>
3281*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpGetField">httpGetField</a></h3>
3282*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a field value from a request/response.</p>
3283*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3284*5e7646d2SAndroid Build Coastguard Workerconst char *httpGetField(<a href="#http_t">http_t</a> *http, <a href="#http_field_t">http_field_t</a> field);</p>
3285*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3286*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3287*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3288*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3289*5e7646d2SAndroid Build Coastguard Worker<tr><th>field</th>
3290*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Field to get</td></tr>
3291*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3292*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3293*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Field value</p>
3294*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpGetHostname">httpGetHostname</a></h3>
3295*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the FQDN for the connection or local system.</p>
3296*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3297*5e7646d2SAndroid Build Coastguard Workerconst char *httpGetHostname(<a href="#http_t">http_t</a> *http, char *s, int slen);</p>
3298*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3299*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3300*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3301*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection or NULL</td></tr>
3302*5e7646d2SAndroid Build Coastguard Worker<tr><th>s</th>
3303*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String buffer for name</td></tr>
3304*5e7646d2SAndroid Build Coastguard Worker<tr><th>slen</th>
3305*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of buffer</td></tr>
3306*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3307*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3308*5e7646d2SAndroid Build Coastguard Worker        <p class="description">FQDN for connection or system</p>
3309*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3310*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">When &quot;http&quot; points to a connected socket, return the hostname or
3311*5e7646d2SAndroid Build Coastguard Workeraddress that was used in the call to httpConnect() or httpConnectEncrypt(),
3312*5e7646d2SAndroid Build Coastguard Workeror the address of the client for the connection from httpAcceptConnection().
3313*5e7646d2SAndroid Build Coastguard WorkerOtherwise, return the FQDN for the local system using both gethostname()
3314*5e7646d2SAndroid Build Coastguard Workerand gethostbyname() to get the local hostname with domain.
3315*5e7646d2SAndroid Build Coastguard Worker
3316*5e7646d2SAndroid Build Coastguard Worker</p>
3317*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpGetKeepAlive">httpGetKeepAlive</a></h3>
3318*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the current Keep-Alive state of the connection.</p>
3319*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3320*5e7646d2SAndroid Build Coastguard Worker<a href="#http_keepalive_t">http_keepalive_t</a> httpGetKeepAlive(<a href="#http_t">http_t</a> *http);</p>
3321*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3322*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3323*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3324*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3325*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3326*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3327*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Keep-Alive state</p>
3328*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpGetLength2">httpGetLength2</a></h3>
3329*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the amount of data remaining from the
3330*5e7646d2SAndroid Build Coastguard Workercontent-length or transfer-encoding fields.</p>
3331*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3332*5e7646d2SAndroid Build Coastguard Workeroff_t httpGetLength2(<a href="#http_t">http_t</a> *http);</p>
3333*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3334*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3335*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3336*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3337*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3338*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3339*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Content length</p>
3340*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3341*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function returns the complete content length, even for
3342*5e7646d2SAndroid Build Coastguard Workercontent larger than 2^31 - 1.
3343*5e7646d2SAndroid Build Coastguard Worker
3344*5e7646d2SAndroid Build Coastguard Worker</p>
3345*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpGetPending">httpGetPending</a></h3>
3346*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the number of bytes that are buffered for writing.</p>
3347*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3348*5e7646d2SAndroid Build Coastguard Workersize_t httpGetPending(<a href="#http_t">http_t</a> *http);</p>
3349*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3350*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3351*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3352*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3353*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3354*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3355*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of bytes buffered</p>
3356*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpGetReady">httpGetReady</a></h3>
3357*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the number of bytes that can be read without blocking.</p>
3358*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3359*5e7646d2SAndroid Build Coastguard Workersize_t httpGetReady(<a href="#http_t">http_t</a> *http);</p>
3360*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3361*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3362*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3363*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3364*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3365*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3366*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of bytes available</p>
3367*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpGetRemaining">httpGetRemaining</a></h3>
3368*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the number of remaining bytes in the message
3369*5e7646d2SAndroid Build Coastguard Workerbody or current chunk.</p>
3370*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3371*5e7646d2SAndroid Build Coastguard Workersize_t httpGetRemaining(<a href="#http_t">http_t</a> *http);</p>
3372*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3373*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3374*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3375*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3376*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3377*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3378*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Remaining bytes</p>
3379*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3380*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <a href="#httpIsChunked"><code>httpIsChunked</code></a> function can be used to determine whether the
3381*5e7646d2SAndroid Build Coastguard Workermessage body is chunked or fixed-length.
3382*5e7646d2SAndroid Build Coastguard Worker
3383*5e7646d2SAndroid Build Coastguard Worker</p>
3384*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpGetState">httpGetState</a></h3>
3385*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the current state of the HTTP request.</p>
3386*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3387*5e7646d2SAndroid Build Coastguard Worker<a href="#http_state_t">http_state_t</a> httpGetState(<a href="#http_t">http_t</a> *http);</p>
3388*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3389*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3390*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3391*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3392*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3393*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3394*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP state</p>
3395*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpGetStatus">httpGetStatus</a></h3>
3396*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the status of the last HTTP request.</p>
3397*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3398*5e7646d2SAndroid Build Coastguard Workerhttp_status_t httpGetStatus(<a href="#http_t">http_t</a> *http);</p>
3399*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3400*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3401*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3402*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3403*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3404*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3405*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP status</p>
3406*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpGetSubField2">httpGetSubField2</a></h3>
3407*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a sub-field value.</p>
3408*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3409*5e7646d2SAndroid Build Coastguard Workerchar *httpGetSubField2(<a href="#http_t">http_t</a> *http, <a href="#http_field_t">http_field_t</a> field, const char *name, char *value, int valuelen);</p>
3410*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3411*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3412*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3413*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3414*5e7646d2SAndroid Build Coastguard Worker<tr><th>field</th>
3415*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Field index</td></tr>
3416*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
3417*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of sub-field</td></tr>
3418*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
3419*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value string</td></tr>
3420*5e7646d2SAndroid Build Coastguard Worker<tr><th>valuelen</th>
3421*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of value buffer</td></tr>
3422*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3423*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3424*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Value or <code>NULL</code></p>
3425*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpGetVersion">httpGetVersion</a></h3>
3426*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the HTTP version at the other end.</p>
3427*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3428*5e7646d2SAndroid Build Coastguard Worker<a href="#http_version_t">http_version_t</a> httpGetVersion(<a href="#http_t">http_t</a> *http);</p>
3429*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3430*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3431*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3432*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3433*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3434*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3435*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Version number</p>
3436*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpGets">httpGets</a></h3>
3437*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a line of text from a HTTP connection.</p>
3438*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3439*5e7646d2SAndroid Build Coastguard Workerchar *httpGets(char *line, int length, <a href="#http_t">http_t</a> *http);</p>
3440*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3441*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3442*5e7646d2SAndroid Build Coastguard Worker<tr><th>line</th>
3443*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Line to read into</td></tr>
3444*5e7646d2SAndroid Build Coastguard Worker<tr><th>length</th>
3445*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Max length of buffer</td></tr>
3446*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3447*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3448*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3449*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3450*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Line or <code>NULL</code></p>
3451*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpHead">httpHead</a></h3>
3452*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Send a HEAD request to the server.</p>
3453*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3454*5e7646d2SAndroid Build Coastguard Workerint httpHead(<a href="#http_t">http_t</a> *http, const char *uri);</p>
3455*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3456*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3457*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3458*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3459*5e7646d2SAndroid Build Coastguard Worker<tr><th>uri</th>
3460*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI for head</td></tr>
3461*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3462*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3463*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of call (0 = success)</p>
3464*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpInitialize">httpInitialize</a></h3>
3465*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Initialize the HTTP interface library and set the
3466*5e7646d2SAndroid Build Coastguard Workerdefault HTTP proxy (if any).</p>
3467*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3468*5e7646d2SAndroid Build Coastguard Workervoid httpInitialize(void);</p>
3469*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpIsChunked">httpIsChunked</a></h3>
3470*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Report whether a message body is chunked.</p>
3471*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3472*5e7646d2SAndroid Build Coastguard Workerint httpIsChunked(<a href="#http_t">http_t</a> *http);</p>
3473*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3474*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3475*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3476*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3477*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3478*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3479*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if chunked, 0 if not</p>
3480*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3481*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function returns non-zero if the message body is composed of
3482*5e7646d2SAndroid Build Coastguard Workervariable-length chunks.
3483*5e7646d2SAndroid Build Coastguard Worker
3484*5e7646d2SAndroid Build Coastguard Worker</p>
3485*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpIsEncrypted">httpIsEncrypted</a></h3>
3486*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Report whether a connection is encrypted.</p>
3487*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3488*5e7646d2SAndroid Build Coastguard Workerint httpIsEncrypted(<a href="#http_t">http_t</a> *http);</p>
3489*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3490*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3491*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3492*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3493*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3494*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3495*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if encrypted, 0 if not</p>
3496*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3497*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function returns non-zero if the connection is currently encrypted.
3498*5e7646d2SAndroid Build Coastguard Worker
3499*5e7646d2SAndroid Build Coastguard Worker</p>
3500*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpLoadCredentials">httpLoadCredentials</a></h3>
3501*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Load X.509 credentials from a keychain file.</p>
3502*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3503*5e7646d2SAndroid Build Coastguard Workerint httpLoadCredentials(const char *path, cups_array_t **credentials, const char *common_name);</p>
3504*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3505*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3506*5e7646d2SAndroid Build Coastguard Worker<tr><th>path</th>
3507*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Keychain path or <code>NULL</code> for default</td></tr>
3508*5e7646d2SAndroid Build Coastguard Worker<tr><th>credentials</th>
3509*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Credentials</td></tr>
3510*5e7646d2SAndroid Build Coastguard Worker<tr><th>common_name</th>
3511*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Common name for credentials</td></tr>
3512*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3513*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3514*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on error</p>
3515*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpOptions">httpOptions</a></h3>
3516*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Send an OPTIONS request to the server.</p>
3517*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3518*5e7646d2SAndroid Build Coastguard Workerint httpOptions(<a href="#http_t">http_t</a> *http, const char *uri);</p>
3519*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3520*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3521*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3522*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3523*5e7646d2SAndroid Build Coastguard Worker<tr><th>uri</th>
3524*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI for options</td></tr>
3525*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3526*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3527*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of call (0 = success)</p>
3528*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpPeek">httpPeek</a></h3>
3529*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Peek at data from a HTTP connection.</p>
3530*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3531*5e7646d2SAndroid Build Coastguard Workerssize_t httpPeek(<a href="#http_t">http_t</a> *http, char *buffer, size_t length);</p>
3532*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3533*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3534*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3535*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3536*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th>
3537*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Buffer for data</td></tr>
3538*5e7646d2SAndroid Build Coastguard Worker<tr><th>length</th>
3539*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Maximum number of bytes</td></tr>
3540*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3541*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3542*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of bytes copied</p>
3543*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3544*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function copies available data from the given HTTP connection, reading
3545*5e7646d2SAndroid Build Coastguard Workera buffer as needed.  The data is still available for reading using
3546*5e7646d2SAndroid Build Coastguard Worker<a href="#httpRead2"><code>httpRead2</code></a>.<br>
3547*5e7646d2SAndroid Build Coastguard Worker<br>
3548*5e7646d2SAndroid Build Coastguard WorkerFor non-blocking connections the usual timeouts apply.
3549*5e7646d2SAndroid Build Coastguard Worker
3550*5e7646d2SAndroid Build Coastguard Worker</p>
3551*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpPost">httpPost</a></h3>
3552*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Send a POST request to the server.</p>
3553*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3554*5e7646d2SAndroid Build Coastguard Workerint httpPost(<a href="#http_t">http_t</a> *http, const char *uri);</p>
3555*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3556*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3557*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3558*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3559*5e7646d2SAndroid Build Coastguard Worker<tr><th>uri</th>
3560*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI for post</td></tr>
3561*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3562*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3563*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of call (0 = success)</p>
3564*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpPut">httpPut</a></h3>
3565*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Send a PUT request to the server.</p>
3566*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3567*5e7646d2SAndroid Build Coastguard Workerint httpPut(<a href="#http_t">http_t</a> *http, const char *uri);</p>
3568*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3569*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3570*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3571*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3572*5e7646d2SAndroid Build Coastguard Worker<tr><th>uri</th>
3573*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI to put</td></tr>
3574*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3575*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3576*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of call (0 = success)</p>
3577*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpRead2">httpRead2</a></h3>
3578*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Read data from a HTTP connection.</p>
3579*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3580*5e7646d2SAndroid Build Coastguard Workerssize_t httpRead2(<a href="#http_t">http_t</a> *http, char *buffer, size_t length);</p>
3581*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3582*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3583*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3584*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3585*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th>
3586*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Buffer for data</td></tr>
3587*5e7646d2SAndroid Build Coastguard Worker<tr><th>length</th>
3588*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Maximum number of bytes</td></tr>
3589*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3590*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3591*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of bytes read</p>
3592*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpReadRequest">httpReadRequest</a></h3>
3593*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Read a HTTP request from a connection.</p>
3594*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3595*5e7646d2SAndroid Build Coastguard Worker<a href="#http_state_t">http_state_t</a> httpReadRequest(<a href="#http_t">http_t</a> *http, char *uri, size_t urilen);</p>
3596*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3597*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3598*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3599*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3600*5e7646d2SAndroid Build Coastguard Worker<tr><th>uri</th>
3601*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI buffer</td></tr>
3602*5e7646d2SAndroid Build Coastguard Worker<tr><th>urilen</th>
3603*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of URI buffer</td></tr>
3604*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3605*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3606*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New state of connection</p>
3607*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpReconnect2">httpReconnect2</a></h3>
3608*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Reconnect to a HTTP server with timeout and optional
3609*5e7646d2SAndroid Build Coastguard Workercancel.</p>
3610*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3611*5e7646d2SAndroid Build Coastguard Workerint httpReconnect2(<a href="#http_t">http_t</a> *http, int msec, int *cancel);</p>
3612*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3613*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3614*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3615*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3616*5e7646d2SAndroid Build Coastguard Worker<tr><th>msec</th>
3617*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Timeout in milliseconds</td></tr>
3618*5e7646d2SAndroid Build Coastguard Worker<tr><th>cancel</th>
3619*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to &quot;cancel&quot; variable</td></tr>
3620*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3621*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3622*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, non-zero on failure</p>
3623*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpResolveHostname">httpResolveHostname</a></h3>
3624*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Resolve the hostname of the HTTP connection
3625*5e7646d2SAndroid Build Coastguard Workeraddress.</p>
3626*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3627*5e7646d2SAndroid Build Coastguard Workerconst char *httpResolveHostname(<a href="#http_t">http_t</a> *http, char *buffer, size_t bufsize);</p>
3628*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3629*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3630*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3631*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3632*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th>
3633*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Hostname buffer</td></tr>
3634*5e7646d2SAndroid Build Coastguard Worker<tr><th>bufsize</th>
3635*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of buffer</td></tr>
3636*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3637*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3638*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Resolved hostname or <code>NULL</code></p>
3639*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpSaveCredentials">httpSaveCredentials</a></h3>
3640*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Save X.509 credentials to a keychain file.</p>
3641*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3642*5e7646d2SAndroid Build Coastguard Workerint httpSaveCredentials(const char *path, cups_array_t *credentials, const char *common_name);</p>
3643*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3644*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3645*5e7646d2SAndroid Build Coastguard Worker<tr><th>path</th>
3646*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Keychain path or <code>NULL</code> for default</td></tr>
3647*5e7646d2SAndroid Build Coastguard Worker<tr><th>credentials</th>
3648*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Credentials</td></tr>
3649*5e7646d2SAndroid Build Coastguard Worker<tr><th>common_name</th>
3650*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Common name for credentials</td></tr>
3651*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3652*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3653*5e7646d2SAndroid Build Coastguard Worker        <p class="description">-1 on error, 0 on success</p>
3654*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpSeparateURI">httpSeparateURI</a></h3>
3655*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Separate a Universal Resource Identifier into its
3656*5e7646d2SAndroid Build Coastguard Workercomponents.</p>
3657*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3658*5e7646d2SAndroid Build Coastguard Worker<a href="#http_uri_status_t">http_uri_status_t</a> httpSeparateURI(<a href="#http_uri_coding_t">http_uri_coding_t</a> decoding, const char *uri, char *scheme, int schemelen, char *username, int usernamelen, char *host, int hostlen, int *port, char *resource, int resourcelen);</p>
3659*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3660*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3661*5e7646d2SAndroid Build Coastguard Worker<tr><th>decoding</th>
3662*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Decoding flags</td></tr>
3663*5e7646d2SAndroid Build Coastguard Worker<tr><th>uri</th>
3664*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Universal Resource Identifier</td></tr>
3665*5e7646d2SAndroid Build Coastguard Worker<tr><th>scheme</th>
3666*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Scheme (http, https, etc.)</td></tr>
3667*5e7646d2SAndroid Build Coastguard Worker<tr><th>schemelen</th>
3668*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of scheme buffer</td></tr>
3669*5e7646d2SAndroid Build Coastguard Worker<tr><th>username</th>
3670*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Username</td></tr>
3671*5e7646d2SAndroid Build Coastguard Worker<tr><th>usernamelen</th>
3672*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of username buffer</td></tr>
3673*5e7646d2SAndroid Build Coastguard Worker<tr><th>host</th>
3674*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Hostname</td></tr>
3675*5e7646d2SAndroid Build Coastguard Worker<tr><th>hostlen</th>
3676*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of hostname buffer</td></tr>
3677*5e7646d2SAndroid Build Coastguard Worker<tr><th>port</th>
3678*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Port number to use</td></tr>
3679*5e7646d2SAndroid Build Coastguard Worker<tr><th>resource</th>
3680*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Resource/filename</td></tr>
3681*5e7646d2SAndroid Build Coastguard Worker<tr><th>resourcelen</th>
3682*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of resource buffer</td></tr>
3683*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3684*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3685*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Result of separation</p>
3686*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.3/macOS 10.5&#160;</span><a id="httpSetAuthString">httpSetAuthString</a></h3>
3687*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the current authorization string.</p>
3688*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3689*5e7646d2SAndroid Build Coastguard Workervoid httpSetAuthString(<a href="#http_t">http_t</a> *http, const char *scheme, const char *data);</p>
3690*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3691*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3692*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3693*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3694*5e7646d2SAndroid Build Coastguard Worker<tr><th>scheme</th>
3695*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Auth scheme (NULL to clear it)</td></tr>
3696*5e7646d2SAndroid Build Coastguard Worker<tr><th>data</th>
3697*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Auth data (NULL for none)</td></tr>
3698*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3699*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3700*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function just stores a copy of the current authorization string in
3701*5e7646d2SAndroid Build Coastguard Workerthe HTTP connection object.  You must still call <a href="#httpSetField"><code>httpSetField</code></a> to set
3702*5e7646d2SAndroid Build Coastguard Worker<code>HTTP_FIELD_AUTHORIZATION</code> prior to issuing a HTTP request using
3703*5e7646d2SAndroid Build Coastguard Worker<a href="#httpGet"><code>httpGet</code></a>, <a href="#httpHead"><code>httpHead</code></a>, <a href="#httpOptions"><code>httpOptions</code></a>, <a href="#httpPost"><code>httpPost</code></a>, or
3704*5e7646d2SAndroid Build Coastguard Worker<a href="#httpPut"><code>httpPut</code></a>.
3705*5e7646d2SAndroid Build Coastguard Worker
3706*5e7646d2SAndroid Build Coastguard Worker</p>
3707*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span><a id="httpSetCookie">httpSetCookie</a></h3>
3708*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the cookie value(s).</p>
3709*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3710*5e7646d2SAndroid Build Coastguard Workervoid httpSetCookie(<a href="#http_t">http_t</a> *http, const char *cookie);</p>
3711*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3712*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3713*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3714*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection</td></tr>
3715*5e7646d2SAndroid Build Coastguard Worker<tr><th>cookie</th>
3716*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Cookie string</td></tr>
3717*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3718*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span><a id="httpSetCredentials">httpSetCredentials</a></h3>
3719*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the credentials associated with an encrypted
3720*5e7646d2SAndroid Build Coastguard Workerconnection.</p>
3721*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3722*5e7646d2SAndroid Build Coastguard Workerint httpSetCredentials(<a href="#http_t">http_t</a> *http, cups_array_t *credentials);</p>
3723*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3724*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3725*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3726*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3727*5e7646d2SAndroid Build Coastguard Worker<tr><th>credentials</th>
3728*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Array of credentials</td></tr>
3729*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3730*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3731*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status of call (0 = success)</p>
3732*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpSetDefaultField">httpSetDefaultField</a></h3>
3733*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the default value of an HTTP header.</p>
3734*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3735*5e7646d2SAndroid Build Coastguard Workervoid httpSetDefaultField(<a href="#http_t">http_t</a> *http, <a href="#http_field_t">http_field_t</a> field, const char *value);</p>
3736*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3737*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3738*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3739*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3740*5e7646d2SAndroid Build Coastguard Worker<tr><th>field</th>
3741*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Field index</td></tr>
3742*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
3743*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value</td></tr>
3744*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3745*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3746*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Currently only <code>HTTP_FIELD_ACCEPT_ENCODING</code>, <code>HTTP_FIELD_SERVER</code>,
3747*5e7646d2SAndroid Build Coastguard Workerand <code>HTTP_FIELD_USER_AGENT</code> can be set.
3748*5e7646d2SAndroid Build Coastguard Worker
3749*5e7646d2SAndroid Build Coastguard Worker</p>
3750*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpSetExpect">httpSetExpect</a></h3>
3751*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the Expect: header in a request.</p>
3752*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3753*5e7646d2SAndroid Build Coastguard Workervoid httpSetExpect(<a href="#http_t">http_t</a> *http, http_status_t expect);</p>
3754*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3755*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3756*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3757*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3758*5e7646d2SAndroid Build Coastguard Worker<tr><th>expect</th>
3759*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP status to expect
3760*5e7646d2SAndroid Build Coastguard Worker(<code>HTTP_STATUS_CONTINUE</code>)</td></tr>
3761*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3762*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3763*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Currently only <code>HTTP_STATUS_CONTINUE</code> is supported for the &quot;expect&quot;
3764*5e7646d2SAndroid Build Coastguard Workerargument.
3765*5e7646d2SAndroid Build Coastguard Worker
3766*5e7646d2SAndroid Build Coastguard Worker</p>
3767*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpSetField">httpSetField</a></h3>
3768*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the value of an HTTP header.</p>
3769*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3770*5e7646d2SAndroid Build Coastguard Workervoid httpSetField(<a href="#http_t">http_t</a> *http, <a href="#http_field_t">http_field_t</a> field, const char *value);</p>
3771*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3772*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3773*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3774*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3775*5e7646d2SAndroid Build Coastguard Worker<tr><th>field</th>
3776*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Field index</td></tr>
3777*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
3778*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value</td></tr>
3779*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3780*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpSetKeepAlive">httpSetKeepAlive</a></h3>
3781*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the current Keep-Alive state of a connection.</p>
3782*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3783*5e7646d2SAndroid Build Coastguard Workervoid httpSetKeepAlive(<a href="#http_t">http_t</a> *http, <a href="#http_keepalive_t">http_keepalive_t</a> keep_alive);</p>
3784*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3785*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3786*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3787*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3788*5e7646d2SAndroid Build Coastguard Worker<tr><th>keep_alive</th>
3789*5e7646d2SAndroid Build Coastguard Worker        <td class="description">New Keep-Alive value</td></tr>
3790*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3791*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpSetLength">httpSetLength</a></h3>
3792*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the content-length and content-encoding.</p>
3793*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3794*5e7646d2SAndroid Build Coastguard Workervoid httpSetLength(<a href="#http_t">http_t</a> *http, size_t length);</p>
3795*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3796*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3797*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3798*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3799*5e7646d2SAndroid Build Coastguard Worker<tr><th>length</th>
3800*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Length (0 for chunked)</td></tr>
3801*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3802*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span><a id="httpSetTimeout">httpSetTimeout</a></h3>
3803*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set read/write timeouts and an optional callback.</p>
3804*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3805*5e7646d2SAndroid Build Coastguard Workervoid httpSetTimeout(<a href="#http_t">http_t</a> *http, double timeout, <a href="#http_timeout_cb_t">http_timeout_cb_t</a> cb, void *user_data);</p>
3806*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3807*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3808*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3809*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3810*5e7646d2SAndroid Build Coastguard Worker<tr><th>timeout</th>
3811*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of seconds for timeout,
3812*5e7646d2SAndroid Build Coastguard Workermust be greater than 0</td></tr>
3813*5e7646d2SAndroid Build Coastguard Worker<tr><th>cb</th>
3814*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Callback function or <code>NULL</code></td></tr>
3815*5e7646d2SAndroid Build Coastguard Worker<tr><th>user_data</th>
3816*5e7646d2SAndroid Build Coastguard Worker        <td class="description">User data pointer</td></tr>
3817*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3818*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3819*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The optional timeout callback receives both the HTTP connection and a user
3820*5e7646d2SAndroid Build Coastguard Workerdata pointer and must return 1 to continue or 0 to error (time) out.
3821*5e7646d2SAndroid Build Coastguard Worker
3822*5e7646d2SAndroid Build Coastguard Worker</p>
3823*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpShutdown">httpShutdown</a></h3>
3824*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Shutdown one side of an HTTP connection.</p>
3825*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3826*5e7646d2SAndroid Build Coastguard Workervoid httpShutdown(<a href="#http_t">http_t</a> *http);</p>
3827*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3828*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3829*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3830*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3831*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3832*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpStateString">httpStateString</a></h3>
3833*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the string describing a HTTP state value.</p>
3834*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3835*5e7646d2SAndroid Build Coastguard Workerconst char *httpStateString(<a href="#http_state_t">http_state_t</a> state);</p>
3836*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3837*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3838*5e7646d2SAndroid Build Coastguard Worker<tr><th>state</th>
3839*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP state value</td></tr>
3840*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3841*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3842*5e7646d2SAndroid Build Coastguard Worker        <p class="description">State string</p>
3843*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpStatus">httpStatus</a></h3>
3844*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return a short string describing a HTTP status code.</p>
3845*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3846*5e7646d2SAndroid Build Coastguard Workerconst char *httpStatus(http_status_t status);</p>
3847*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3848*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3849*5e7646d2SAndroid Build Coastguard Worker<tr><th>status</th>
3850*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP status code</td></tr>
3851*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3852*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3853*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Localized status string</p>
3854*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3855*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The returned string is localized to the current POSIX locale and is based
3856*5e7646d2SAndroid Build Coastguard Workeron the status strings defined in RFC 7231.</p>
3857*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="httpURIStatusString">httpURIStatusString</a></h3>
3858*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return a string describing a URI status code.</p>
3859*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3860*5e7646d2SAndroid Build Coastguard Workerconst char *httpURIStatusString(<a href="#http_uri_status_t">http_uri_status_t</a> status);</p>
3861*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3862*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3863*5e7646d2SAndroid Build Coastguard Worker<tr><th>status</th>
3864*5e7646d2SAndroid Build Coastguard Worker        <td class="description">URI status code</td></tr>
3865*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3866*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3867*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Localized status string</p>
3868*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="httpUpdate">httpUpdate</a></h3>
3869*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Update the current HTTP state for incoming data.</p>
3870*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3871*5e7646d2SAndroid Build Coastguard Workerhttp_status_t httpUpdate(<a href="#http_t">http_t</a> *http);</p>
3872*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3873*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3874*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3875*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3876*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3877*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3878*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP status</p>
3879*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span><a id="httpWait">httpWait</a></h3>
3880*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Wait for data available on a connection.</p>
3881*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3882*5e7646d2SAndroid Build Coastguard Workerint httpWait(<a href="#http_t">http_t</a> *http, int msec);</p>
3883*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3884*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3885*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3886*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3887*5e7646d2SAndroid Build Coastguard Worker<tr><th>msec</th>
3888*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Milliseconds to wait</td></tr>
3889*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3890*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3891*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if data is available, 0 otherwise</p>
3892*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="httpWrite2">httpWrite2</a></h3>
3893*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Write data to a HTTP connection.</p>
3894*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3895*5e7646d2SAndroid Build Coastguard Workerssize_t httpWrite2(<a href="#http_t">http_t</a> *http, const char *buffer, size_t length);</p>
3896*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3897*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3898*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3899*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3900*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th>
3901*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Buffer for data</td></tr>
3902*5e7646d2SAndroid Build Coastguard Worker<tr><th>length</th>
3903*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of bytes to write</td></tr>
3904*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3905*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3906*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of bytes written</p>
3907*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="httpWriteResponse">httpWriteResponse</a></h3>
3908*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Write a HTTP response to a client connection.</p>
3909*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3910*5e7646d2SAndroid Build Coastguard Workerint httpWriteResponse(<a href="#http_t">http_t</a> *http, http_status_t status);</p>
3911*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3912*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3913*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
3914*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
3915*5e7646d2SAndroid Build Coastguard Worker<tr><th>status</th>
3916*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Status code</td></tr>
3917*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3918*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3919*5e7646d2SAndroid Build Coastguard Worker        <p class="description">0 on success, -1 on error</p>
3920*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddBoolean">ippAddBoolean</a></h3>
3921*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add a boolean attribute to an IPP message.</p>
3922*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3923*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddBoolean(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, const char *name, char value);</p>
3924*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3925*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3926*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
3927*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
3928*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
3929*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
3930*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
3931*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
3932*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
3933*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value of attribute</td></tr>
3934*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3935*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3936*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
3937*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3938*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
3939*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
3940*5e7646d2SAndroid Build Coastguard Worker<br>
3941*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
3942*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
3943*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
3944*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
3945*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).</p>
3946*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddBooleans">ippAddBooleans</a></h3>
3947*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add an array of boolean values.</p>
3948*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3949*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddBooleans(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, const char *name, int num_values, const char *values);</p>
3950*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3951*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3952*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
3953*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
3954*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
3955*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
3956*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
3957*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
3958*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_values</th>
3959*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of values</td></tr>
3960*5e7646d2SAndroid Build Coastguard Worker<tr><th>values</th>
3961*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Values</td></tr>
3962*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3963*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3964*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
3965*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3966*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
3967*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
3968*5e7646d2SAndroid Build Coastguard Worker<br>
3969*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
3970*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
3971*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
3972*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
3973*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).</p>
3974*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span><a id="ippAddCollection">ippAddCollection</a></h3>
3975*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add a collection value.</p>
3976*5e7646d2SAndroid Build Coastguard Worker<p class="code">
3977*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddCollection(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, const char *name, <a href="#ipp_t">ipp_t</a> *value);</p>
3978*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
3979*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
3980*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
3981*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
3982*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
3983*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
3984*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
3985*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
3986*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
3987*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value</td></tr>
3988*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
3989*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
3990*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
3991*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
3992*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
3993*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
3994*5e7646d2SAndroid Build Coastguard Worker<br>
3995*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
3996*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
3997*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
3998*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
3999*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).
4000*5e7646d2SAndroid Build Coastguard Worker
4001*5e7646d2SAndroid Build Coastguard Worker</p>
4002*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span><a id="ippAddCollections">ippAddCollections</a></h3>
4003*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add an array of collection values.</p>
4004*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4005*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddCollections(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, const char *name, int num_values, const <a href="#ipp_t">ipp_t</a> **values);</p>
4006*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4007*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4008*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4009*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4010*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4011*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4012*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4013*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4014*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_values</th>
4015*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of values</td></tr>
4016*5e7646d2SAndroid Build Coastguard Worker<tr><th>values</th>
4017*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Values</td></tr>
4018*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4019*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4020*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4021*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4022*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4023*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4024*5e7646d2SAndroid Build Coastguard Worker<br>
4025*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4026*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4027*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4028*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4029*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).
4030*5e7646d2SAndroid Build Coastguard Worker
4031*5e7646d2SAndroid Build Coastguard Worker</p>
4032*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddDate">ippAddDate</a></h3>
4033*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add a dateTime attribute to an IPP message.</p>
4034*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4035*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddDate(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, const char *name, const <a href="#ipp_uchar_t">ipp_uchar_t</a> *value);</p>
4036*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4037*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4038*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4039*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4040*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4041*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4042*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4043*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4044*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
4045*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value</td></tr>
4046*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4047*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4048*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4049*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4050*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4051*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4052*5e7646d2SAndroid Build Coastguard Worker<br>
4053*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4054*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4055*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4056*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4057*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).</p>
4058*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddInteger">ippAddInteger</a></h3>
4059*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add a integer attribute to an IPP message.</p>
4060*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4061*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddInteger(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, int value);</p>
4062*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4063*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4064*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4065*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4066*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4067*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4068*5e7646d2SAndroid Build Coastguard Worker<tr><th>value_tag</th>
4069*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Type of attribute</td></tr>
4070*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4071*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4072*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
4073*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value of attribute</td></tr>
4074*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4075*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4076*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4077*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4078*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4079*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4080*5e7646d2SAndroid Build Coastguard Worker<br>
4081*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4082*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4083*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4084*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4085*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).<br>
4086*5e7646d2SAndroid Build Coastguard Worker<br>
4087*5e7646d2SAndroid Build Coastguard WorkerSupported values include enum (<code>IPP_TAG_ENUM</code>) and integer
4088*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_INTEGER</code>).</p>
4089*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddIntegers">ippAddIntegers</a></h3>
4090*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add an array of integer values.</p>
4091*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4092*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddIntegers(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, int num_values, const int *values);</p>
4093*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4094*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4095*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4096*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4097*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4098*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4099*5e7646d2SAndroid Build Coastguard Worker<tr><th>value_tag</th>
4100*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Type of attribute</td></tr>
4101*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4102*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4103*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_values</th>
4104*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of values</td></tr>
4105*5e7646d2SAndroid Build Coastguard Worker<tr><th>values</th>
4106*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Values</td></tr>
4107*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4108*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4109*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4110*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4111*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4112*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4113*5e7646d2SAndroid Build Coastguard Worker<br>
4114*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4115*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4116*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4117*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4118*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).<br>
4119*5e7646d2SAndroid Build Coastguard Worker<br>
4120*5e7646d2SAndroid Build Coastguard WorkerSupported values include enum (<code>IPP_TAG_ENUM</code>) and integer
4121*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_INTEGER</code>).</p>
4122*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ippAddOctetString">ippAddOctetString</a></h3>
4123*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add an octetString value to an IPP message.</p>
4124*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4125*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddOctetString(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, const char *name, const void *data, int datalen);</p>
4126*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4127*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4128*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4129*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4130*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4131*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4132*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4133*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4134*5e7646d2SAndroid Build Coastguard Worker<tr><th>data</th>
4135*5e7646d2SAndroid Build Coastguard Worker        <td class="description">octetString data</td></tr>
4136*5e7646d2SAndroid Build Coastguard Worker<tr><th>datalen</th>
4137*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Length of data in bytes</td></tr>
4138*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4139*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4140*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4141*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4142*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4143*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4144*5e7646d2SAndroid Build Coastguard Worker<br>
4145*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4146*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4147*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4148*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4149*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).
4150*5e7646d2SAndroid Build Coastguard Worker
4151*5e7646d2SAndroid Build Coastguard Worker</p>
4152*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippAddOutOfBand">ippAddOutOfBand</a></h3>
4153*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add an out-of-band value to an IPP message.</p>
4154*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4155*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddOutOfBand(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name);</p>
4156*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4157*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4158*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4159*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4160*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4161*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4162*5e7646d2SAndroid Build Coastguard Worker<tr><th>value_tag</th>
4163*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Type of attribute</td></tr>
4164*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4165*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4166*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4167*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4168*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4169*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4170*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4171*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4172*5e7646d2SAndroid Build Coastguard Worker<br>
4173*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4174*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4175*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4176*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4177*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).<br>
4178*5e7646d2SAndroid Build Coastguard Worker<br>
4179*5e7646d2SAndroid Build Coastguard WorkerSupported out-of-band values include unsupported-value
4180*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_UNSUPPORTED_VALUE</code>), default (<code>IPP_TAG_DEFAULT</code>), unknown
4181*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_UNKNOWN</code>), no-value (<code>IPP_TAG_NOVALUE</code>), not-settable
4182*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_NOTSETTABLE</code>), delete-attribute (<code>IPP_TAG_DELETEATTR</code>), and
4183*5e7646d2SAndroid Build Coastguard Workeradmin-define (<code>IPP_TAG_ADMINDEFINE</code>).
4184*5e7646d2SAndroid Build Coastguard Worker
4185*5e7646d2SAndroid Build Coastguard Worker</p>
4186*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddRange">ippAddRange</a></h3>
4187*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add a range of values to an IPP message.</p>
4188*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4189*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddRange(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, const char *name, int lower, int upper);</p>
4190*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4191*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4192*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4193*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4194*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4195*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4196*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4197*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4198*5e7646d2SAndroid Build Coastguard Worker<tr><th>lower</th>
4199*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Lower value</td></tr>
4200*5e7646d2SAndroid Build Coastguard Worker<tr><th>upper</th>
4201*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Upper value</td></tr>
4202*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4203*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4204*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4205*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4206*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4207*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4208*5e7646d2SAndroid Build Coastguard Worker<br>
4209*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4210*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4211*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4212*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4213*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).<br>
4214*5e7646d2SAndroid Build Coastguard Worker<br>
4215*5e7646d2SAndroid Build Coastguard WorkerThe <code>lower</code> parameter must be less than or equal to the <code>upper</code> parameter.</p>
4216*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddRanges">ippAddRanges</a></h3>
4217*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add ranges of values to an IPP message.</p>
4218*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4219*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddRanges(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, const char *name, int num_values, const int *lower, const int *upper);</p>
4220*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4221*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4222*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4223*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4224*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4225*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4226*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4227*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4228*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_values</th>
4229*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of values</td></tr>
4230*5e7646d2SAndroid Build Coastguard Worker<tr><th>lower</th>
4231*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Lower values</td></tr>
4232*5e7646d2SAndroid Build Coastguard Worker<tr><th>upper</th>
4233*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Upper values</td></tr>
4234*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4235*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4236*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4237*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4238*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4239*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4240*5e7646d2SAndroid Build Coastguard Worker<br>
4241*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4242*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4243*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4244*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4245*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).</p>
4246*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddResolution">ippAddResolution</a></h3>
4247*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add a resolution value to an IPP message.</p>
4248*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4249*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddResolution(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, const char *name, <a href="#ipp_res_t">ipp_res_t</a> units, int xres, int yres);</p>
4250*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4251*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4252*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4253*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4254*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4255*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4256*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4257*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4258*5e7646d2SAndroid Build Coastguard Worker<tr><th>units</th>
4259*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Units for resolution</td></tr>
4260*5e7646d2SAndroid Build Coastguard Worker<tr><th>xres</th>
4261*5e7646d2SAndroid Build Coastguard Worker        <td class="description">X resolution</td></tr>
4262*5e7646d2SAndroid Build Coastguard Worker<tr><th>yres</th>
4263*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Y resolution</td></tr>
4264*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4265*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4266*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4267*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4268*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4269*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4270*5e7646d2SAndroid Build Coastguard Worker<br>
4271*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4272*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4273*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4274*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4275*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).</p>
4276*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddResolutions">ippAddResolutions</a></h3>
4277*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add resolution values to an IPP message.</p>
4278*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4279*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddResolutions(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, const char *name, int num_values, <a href="#ipp_res_t">ipp_res_t</a> units, const int *xres, const int *yres);</p>
4280*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4281*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4282*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4283*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4284*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4285*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4286*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4287*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4288*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_values</th>
4289*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of values</td></tr>
4290*5e7646d2SAndroid Build Coastguard Worker<tr><th>units</th>
4291*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Units for resolution</td></tr>
4292*5e7646d2SAndroid Build Coastguard Worker<tr><th>xres</th>
4293*5e7646d2SAndroid Build Coastguard Worker        <td class="description">X resolutions</td></tr>
4294*5e7646d2SAndroid Build Coastguard Worker<tr><th>yres</th>
4295*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Y resolutions</td></tr>
4296*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4297*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4298*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4299*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4300*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4301*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4302*5e7646d2SAndroid Build Coastguard Worker<br>
4303*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4304*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4305*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4306*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4307*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).</p>
4308*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddSeparator">ippAddSeparator</a></h3>
4309*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add a group separator to an IPP message.</p>
4310*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4311*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddSeparator(<a href="#ipp_t">ipp_t</a> *ipp);</p>
4312*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4313*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4314*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4315*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4316*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4317*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4318*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4319*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4320*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4321*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.</p>
4322*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddString">ippAddString</a></h3>
4323*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add a language-encoded string to an IPP message.</p>
4324*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4325*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddString(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, const char *language, const char *value);</p>
4326*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4327*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4328*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4329*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4330*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4331*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4332*5e7646d2SAndroid Build Coastguard Worker<tr><th>value_tag</th>
4333*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Type of attribute</td></tr>
4334*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4335*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4336*5e7646d2SAndroid Build Coastguard Worker<tr><th>language</th>
4337*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Language code</td></tr>
4338*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
4339*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value</td></tr>
4340*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4341*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4342*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4343*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4344*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4345*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4346*5e7646d2SAndroid Build Coastguard Worker<br>
4347*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4348*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4349*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4350*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4351*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).<br>
4352*5e7646d2SAndroid Build Coastguard Worker<br>
4353*5e7646d2SAndroid Build Coastguard WorkerSupported string values include charset (<code>IPP_TAG_CHARSET</code>), keyword
4354*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_KEYWORD</code>), language (<code>IPP_TAG_LANGUAGE</code>), mimeMediaType
4355*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_MIMETYPE</code>), name (<code>IPP_TAG_NAME</code>), nameWithLanguage
4356*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_NAMELANG), text (</code>code IPP_TAG_TEXT@), textWithLanguage
4357*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_TEXTLANG</code>), uri (<code>IPP_TAG_URI</code>), and uriScheme
4358*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_URISCHEME</code>).<br>
4359*5e7646d2SAndroid Build Coastguard Worker<br>
4360*5e7646d2SAndroid Build Coastguard WorkerThe <code>language</code> parameter must be non-<code>NULL</code> for nameWithLanguage and
4361*5e7646d2SAndroid Build Coastguard WorkertextWithLanguage string values and must be <code>NULL</code> for all other string values.</p>
4362*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippAddStringf">ippAddStringf</a></h3>
4363*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add a formatted string to an IPP message.</p>
4364*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4365*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddStringf(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, const char *language, const char *format, ...);</p>
4366*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4367*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4368*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4369*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4370*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4371*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4372*5e7646d2SAndroid Build Coastguard Worker<tr><th>value_tag</th>
4373*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Type of attribute</td></tr>
4374*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4375*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4376*5e7646d2SAndroid Build Coastguard Worker<tr><th>language</th>
4377*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Language code (<code>NULL</code> for default)</td></tr>
4378*5e7646d2SAndroid Build Coastguard Worker<tr><th>format</th>
4379*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Printf-style format string</td></tr>
4380*5e7646d2SAndroid Build Coastguard Worker<tr><th>...</th>
4381*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Additional arguments as needed</td></tr>
4382*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4383*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4384*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4385*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4386*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4387*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4388*5e7646d2SAndroid Build Coastguard Worker<br>
4389*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4390*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document
4391*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_DOCUMENT</code>), event notification
4392*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation (<code>IPP_TAG_OPERATION</code>),
4393*5e7646d2SAndroid Build Coastguard Workerprinter (<code>IPP_TAG_PRINTER</code>), subscription (<code>IPP_TAG_SUBSCRIPTION</code>),
4394*5e7646d2SAndroid Build Coastguard Workeror unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).<br>
4395*5e7646d2SAndroid Build Coastguard Worker<br>
4396*5e7646d2SAndroid Build Coastguard WorkerSupported string values include charset (<code>IPP_TAG_CHARSET</code>), keyword
4397*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_KEYWORD</code>), language (<code>IPP_TAG_LANGUAGE</code>), mimeMediaType
4398*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_MIMETYPE</code>), name (<code>IPP_TAG_NAME</code>), nameWithLanguage
4399*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_NAMELANG), text (</code>code IPP_TAG_TEXT@), textWithLanguage
4400*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_TEXTLANG</code>), uri (<code>IPP_TAG_URI</code>), and uriScheme
4401*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_URISCHEME</code>).<br>
4402*5e7646d2SAndroid Build Coastguard Worker<br>
4403*5e7646d2SAndroid Build Coastguard WorkerThe <code>language</code> parameter must be non-<code>NULL</code> for nameWithLanguage
4404*5e7646d2SAndroid Build Coastguard Workerand textWithLanguage string values and must be <code>NULL</code> for all other
4405*5e7646d2SAndroid Build Coastguard Workerstring values.<br>
4406*5e7646d2SAndroid Build Coastguard Worker<br>
4407*5e7646d2SAndroid Build Coastguard WorkerThe <code>format</code> parameter uses formatting characters compatible with the
4408*5e7646d2SAndroid Build Coastguard Workerprintf family of standard functions.  Additional arguments follow it as
4409*5e7646d2SAndroid Build Coastguard Workerneeded.  The formatted string is truncated as needed to the maximum length of
4410*5e7646d2SAndroid Build Coastguard Workerthe corresponding value type.
4411*5e7646d2SAndroid Build Coastguard Worker
4412*5e7646d2SAndroid Build Coastguard Worker</p>
4413*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippAddStringfv">ippAddStringfv</a></h3>
4414*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add a formatted string to an IPP message.</p>
4415*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4416*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddStringfv(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, const char *language, const char *format, va_list ap);</p>
4417*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4418*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4419*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4420*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4421*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4422*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4423*5e7646d2SAndroid Build Coastguard Worker<tr><th>value_tag</th>
4424*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Type of attribute</td></tr>
4425*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4426*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4427*5e7646d2SAndroid Build Coastguard Worker<tr><th>language</th>
4428*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Language code (<code>NULL</code> for default)</td></tr>
4429*5e7646d2SAndroid Build Coastguard Worker<tr><th>format</th>
4430*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Printf-style format string</td></tr>
4431*5e7646d2SAndroid Build Coastguard Worker<tr><th>ap</th>
4432*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Additional arguments</td></tr>
4433*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4434*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4435*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4436*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4437*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4438*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4439*5e7646d2SAndroid Build Coastguard Worker<br>
4440*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4441*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document
4442*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_DOCUMENT</code>), event notification
4443*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation (<code>IPP_TAG_OPERATION</code>),
4444*5e7646d2SAndroid Build Coastguard Workerprinter (<code>IPP_TAG_PRINTER</code>), subscription (<code>IPP_TAG_SUBSCRIPTION</code>),
4445*5e7646d2SAndroid Build Coastguard Workeror unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).<br>
4446*5e7646d2SAndroid Build Coastguard Worker<br>
4447*5e7646d2SAndroid Build Coastguard WorkerSupported string values include charset (<code>IPP_TAG_CHARSET</code>), keyword
4448*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_KEYWORD</code>), language (<code>IPP_TAG_LANGUAGE</code>), mimeMediaType
4449*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_MIMETYPE</code>), name (<code>IPP_TAG_NAME</code>), nameWithLanguage
4450*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_NAMELANG), text (</code>code IPP_TAG_TEXT@), textWithLanguage
4451*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_TEXTLANG</code>), uri (<code>IPP_TAG_URI</code>), and uriScheme
4452*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_URISCHEME</code>).<br>
4453*5e7646d2SAndroid Build Coastguard Worker<br>
4454*5e7646d2SAndroid Build Coastguard WorkerThe <code>language</code> parameter must be non-<code>NULL</code> for nameWithLanguage
4455*5e7646d2SAndroid Build Coastguard Workerand textWithLanguage string values and must be <code>NULL</code> for all other
4456*5e7646d2SAndroid Build Coastguard Workerstring values.<br>
4457*5e7646d2SAndroid Build Coastguard Worker<br>
4458*5e7646d2SAndroid Build Coastguard WorkerThe <code>format</code> parameter uses formatting characters compatible with the
4459*5e7646d2SAndroid Build Coastguard Workerprintf family of standard functions.  Additional arguments are passed in the
4460*5e7646d2SAndroid Build Coastguard Workerstdarg pointer <code>ap</code>.  The formatted string is truncated as needed to the
4461*5e7646d2SAndroid Build Coastguard Workermaximum length of the corresponding value type.
4462*5e7646d2SAndroid Build Coastguard Worker
4463*5e7646d2SAndroid Build Coastguard Worker</p>
4464*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippAddStrings">ippAddStrings</a></h3>
4465*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Add language-encoded strings to an IPP message.</p>
4466*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4467*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippAddStrings(<a href="#ipp_t">ipp_t</a> *ipp, ipp_tag_t group, ipp_tag_t value_tag, const char *name, int num_values, const char *language, const char *const *values);</p>
4468*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4469*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4470*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4471*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4472*5e7646d2SAndroid Build Coastguard Worker<tr><th>group</th>
4473*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP group</td></tr>
4474*5e7646d2SAndroid Build Coastguard Worker<tr><th>value_tag</th>
4475*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Type of attribute</td></tr>
4476*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4477*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4478*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_values</th>
4479*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of values</td></tr>
4480*5e7646d2SAndroid Build Coastguard Worker<tr><th>language</th>
4481*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Language code (<code>NULL</code> for default)</td></tr>
4482*5e7646d2SAndroid Build Coastguard Worker<tr><th>values</th>
4483*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Values</td></tr>
4484*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4485*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4486*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4487*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4488*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
4489*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
4490*5e7646d2SAndroid Build Coastguard Worker<br>
4491*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
4492*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
4493*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
4494*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
4495*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).<br>
4496*5e7646d2SAndroid Build Coastguard Worker<br>
4497*5e7646d2SAndroid Build Coastguard WorkerSupported string values include charset (<code>IPP_TAG_CHARSET</code>), keyword
4498*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_KEYWORD</code>), language (<code>IPP_TAG_LANGUAGE</code>), mimeMediaType
4499*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_MIMETYPE</code>), name (<code>IPP_TAG_NAME</code>), nameWithLanguage
4500*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_NAMELANG), text (</code>code IPP_TAG_TEXT@), textWithLanguage
4501*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_TEXTLANG</code>), uri (<code>IPP_TAG_URI</code>), and uriScheme
4502*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_URISCHEME</code>).<br>
4503*5e7646d2SAndroid Build Coastguard Worker<br>
4504*5e7646d2SAndroid Build Coastguard WorkerThe <code>language</code> parameter must be non-<code>NULL</code> for nameWithLanguage and
4505*5e7646d2SAndroid Build Coastguard WorkertextWithLanguage string values and must be <code>NULL</code> for all other string values.</p>
4506*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippAttributeString">ippAttributeString</a></h3>
4507*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Convert the attribute's value to a string.</p>
4508*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4509*5e7646d2SAndroid Build Coastguard Workersize_t ippAttributeString(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr, char *buffer, size_t bufsize);</p>
4510*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4511*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4512*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4513*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute</td></tr>
4514*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th>
4515*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String buffer or NULL</td></tr>
4516*5e7646d2SAndroid Build Coastguard Worker<tr><th>bufsize</th>
4517*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of string buffer</td></tr>
4518*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4519*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4520*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of bytes less nul</p>
4521*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4522*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Returns the number of bytes that would be written, not including the
4523*5e7646d2SAndroid Build Coastguard Workertrailing nul. The buffer pointer can be NULL to get the required length,
4524*5e7646d2SAndroid Build Coastguard Workerjust like (v)snprintf.
4525*5e7646d2SAndroid Build Coastguard Worker
4526*5e7646d2SAndroid Build Coastguard Worker</p>
4527*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippContainsInteger">ippContainsInteger</a></h3>
4528*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Determine whether an attribute contains the
4529*5e7646d2SAndroid Build Coastguard Workerspecified value or is within the list of ranges.</p>
4530*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4531*5e7646d2SAndroid Build Coastguard Workerint ippContainsInteger(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr, int value);</p>
4532*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4533*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4534*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4535*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute</td></tr>
4536*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
4537*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Integer/enum value</td></tr>
4538*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4539*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4540*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on a match, 0 on no match</p>
4541*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4542*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Returns non-zero when the attribute contains either a matching integer or
4543*5e7646d2SAndroid Build Coastguard Workerenum value, or the value falls within one of the rangeOfInteger values for
4544*5e7646d2SAndroid Build Coastguard Workerthe attribute.
4545*5e7646d2SAndroid Build Coastguard Worker
4546*5e7646d2SAndroid Build Coastguard Worker</p>
4547*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippContainsString">ippContainsString</a></h3>
4548*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Determine whether an attribute contains the
4549*5e7646d2SAndroid Build Coastguard Workerspecified string value.</p>
4550*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4551*5e7646d2SAndroid Build Coastguard Workerint ippContainsString(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr, const char *value);</p>
4552*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4553*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4554*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4555*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute</td></tr>
4556*5e7646d2SAndroid Build Coastguard Worker<tr><th>value</th>
4557*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String value</td></tr>
4558*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4559*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4560*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on a match, 0 on no match</p>
4561*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4562*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Returns non-zero when the attribute contains a matching charset, keyword,
4563*5e7646d2SAndroid Build Coastguard WorkernaturalLanguage, mimeMediaType, name, text, uri, or uriScheme value.
4564*5e7646d2SAndroid Build Coastguard Worker
4565*5e7646d2SAndroid Build Coastguard Worker</p>
4566*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippCopyAttribute">ippCopyAttribute</a></h3>
4567*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Copy an attribute.</p>
4568*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4569*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippCopyAttribute(<a href="#ipp_t">ipp_t</a> *dst, <a href="#ipp_attribute_t">ipp_attribute_t</a> *srcattr, int quickcopy);</p>
4570*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4571*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4572*5e7646d2SAndroid Build Coastguard Worker<tr><th>dst</th>
4573*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination IPP message</td></tr>
4574*5e7646d2SAndroid Build Coastguard Worker<tr><th>srcattr</th>
4575*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute to copy</td></tr>
4576*5e7646d2SAndroid Build Coastguard Worker<tr><th>quickcopy</th>
4577*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 for a referenced copy, 0 for normal</td></tr>
4578*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4579*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4580*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New attribute</p>
4581*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4582*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The specified attribute, <code>attr</code>, is copied to the destination IPP message.
4583*5e7646d2SAndroid Build Coastguard WorkerWhen <code>quickcopy</code> is non-zero, a &quot;shallow&quot; reference copy of the attribute is
4584*5e7646d2SAndroid Build Coastguard Workercreated - this should only be done as long as the original source IPP message will
4585*5e7646d2SAndroid Build Coastguard Workernot be freed for the life of the destination.
4586*5e7646d2SAndroid Build Coastguard Worker
4587*5e7646d2SAndroid Build Coastguard Worker</p>
4588*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippCopyAttributes">ippCopyAttributes</a></h3>
4589*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Copy attributes from one IPP message to another.</p>
4590*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4591*5e7646d2SAndroid Build Coastguard Workerint ippCopyAttributes(<a href="#ipp_t">ipp_t</a> *dst, <a href="#ipp_t">ipp_t</a> *src, int quickcopy, <a href="#ipp_copycb_t">ipp_copycb_t</a> cb, void *context);</p>
4592*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4593*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4594*5e7646d2SAndroid Build Coastguard Worker<tr><th>dst</th>
4595*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination IPP message</td></tr>
4596*5e7646d2SAndroid Build Coastguard Worker<tr><th>src</th>
4597*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Source IPP message</td></tr>
4598*5e7646d2SAndroid Build Coastguard Worker<tr><th>quickcopy</th>
4599*5e7646d2SAndroid Build Coastguard Worker        <td class="description">1 for a referenced copy, 0 for normal</td></tr>
4600*5e7646d2SAndroid Build Coastguard Worker<tr><th>cb</th>
4601*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Copy callback or <code>NULL</code> for none</td></tr>
4602*5e7646d2SAndroid Build Coastguard Worker<tr><th>context</th>
4603*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Context pointer</td></tr>
4604*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4605*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4606*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on error</p>
4607*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4608*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Zero or more attributes are copied from the source IPP message, <code>src</code>, to the
4609*5e7646d2SAndroid Build Coastguard Workerdestination IPP message, <code>dst</code>. When <code>quickcopy</code> is non-zero, a &quot;shallow&quot;
4610*5e7646d2SAndroid Build Coastguard Workerreference copy of the attribute is created - this should only be done as long as the
4611*5e7646d2SAndroid Build Coastguard Workeroriginal source IPP message will not be freed for the life of the destination.<br>
4612*5e7646d2SAndroid Build Coastguard Worker<br>
4613*5e7646d2SAndroid Build Coastguard WorkerThe <code>cb</code> and <code>context</code> parameters provide a generic way to &quot;filter&quot; the
4614*5e7646d2SAndroid Build Coastguard Workerattributes that are copied - the function must return 1 to copy the attribute or
4615*5e7646d2SAndroid Build Coastguard Worker0 to skip it. The function may also choose to do a partial copy of the source attribute
4616*5e7646d2SAndroid Build Coastguard Workeritself.
4617*5e7646d2SAndroid Build Coastguard Worker
4618*5e7646d2SAndroid Build Coastguard Worker</p>
4619*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippCreateRequestedArray">ippCreateRequestedArray</a></h3>
4620*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Create a CUPS array of attribute names from the
4621*5e7646d2SAndroid Build Coastguard Workergiven requested-attributes attribute.</p>
4622*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4623*5e7646d2SAndroid Build Coastguard Workercups_array_t *ippCreateRequestedArray(<a href="#ipp_t">ipp_t</a> *request);</p>
4624*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4625*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4626*5e7646d2SAndroid Build Coastguard Worker<tr><th>request</th>
4627*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP request</td></tr>
4628*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4629*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4630*5e7646d2SAndroid Build Coastguard Worker        <p class="description">CUPS array or <code>NULL</code> if all</p>
4631*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4632*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function creates a (sorted) CUPS array of attribute names matching the
4633*5e7646d2SAndroid Build Coastguard Workerlist of &quot;requested-attribute&quot; values supplied in an IPP request.  All IANA-
4634*5e7646d2SAndroid Build Coastguard Workerregistered values are supported in addition to the CUPS IPP extension
4635*5e7646d2SAndroid Build Coastguard Workerattributes.<br>
4636*5e7646d2SAndroid Build Coastguard Worker<br>
4637*5e7646d2SAndroid Build Coastguard WorkerThe <code>request</code> parameter specifies the request message that was read from
4638*5e7646d2SAndroid Build Coastguard Workerthe client.
4639*5e7646d2SAndroid Build Coastguard Worker
4640*5e7646d2SAndroid Build Coastguard Worker<code>NULL</code> is returned if all attributes should be returned.  Otherwise, the
4641*5e7646d2SAndroid Build Coastguard Workerresult is a sorted array of attribute names, where <code>cupsArrayFind(array,
4642*5e7646d2SAndroid Build Coastguard Worker"attribute-name")</code> will return a non-NULL pointer.  The array must be freed
4643*5e7646d2SAndroid Build Coastguard Workerusing the <code>cupsArrayDelete</code> function.
4644*5e7646d2SAndroid Build Coastguard Worker
4645*5e7646d2SAndroid Build Coastguard Worker</p>
4646*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippDateToTime">ippDateToTime</a></h3>
4647*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Convert from RFC 2579 Date/Time format to time in
4648*5e7646d2SAndroid Build Coastguard Workerseconds.</p>
4649*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4650*5e7646d2SAndroid Build Coastguard Workertime_t ippDateToTime(const <a href="#ipp_uchar_t">ipp_uchar_t</a> *date);</p>
4651*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4652*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4653*5e7646d2SAndroid Build Coastguard Worker<tr><th>date</th>
4654*5e7646d2SAndroid Build Coastguard Worker        <td class="description">RFC 2579 date info</td></tr>
4655*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4656*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4657*5e7646d2SAndroid Build Coastguard Worker        <p class="description">UNIX time value</p>
4658*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippDelete">ippDelete</a></h3>
4659*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Delete an IPP message.</p>
4660*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4661*5e7646d2SAndroid Build Coastguard Workervoid ippDelete(<a href="#ipp_t">ipp_t</a> *ipp);</p>
4662*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4663*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4664*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4665*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4666*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4667*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span><a id="ippDeleteAttribute">ippDeleteAttribute</a></h3>
4668*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Delete a single attribute in an IPP message.</p>
4669*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4670*5e7646d2SAndroid Build Coastguard Workervoid ippDeleteAttribute(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> *attr);</p>
4671*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4672*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4673*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4674*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4675*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4676*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute to delete</td></tr>
4677*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4678*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippDeleteValues">ippDeleteValues</a></h3>
4679*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Delete values in an attribute.</p>
4680*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4681*5e7646d2SAndroid Build Coastguard Workerint ippDeleteValues(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, int element, int count);</p>
4682*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4683*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4684*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4685*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4686*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4687*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute</td></tr>
4688*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
4689*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Index of first value to delete (0-based)</td></tr>
4690*5e7646d2SAndroid Build Coastguard Worker<tr><th>count</th>
4691*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of values to delete</td></tr>
4692*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4693*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4694*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
4695*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4696*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>element</code> parameter specifies the first value to delete, starting at
4697*5e7646d2SAndroid Build Coastguard Worker0. It must be less than the number of values returned by <a href="#ippGetCount"><code>ippGetCount</code></a>.<br>
4698*5e7646d2SAndroid Build Coastguard Worker<br>
4699*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
4700*5e7646d2SAndroid Build Coastguard Worker<br>
4701*5e7646d2SAndroid Build Coastguard WorkerDeleting all values in an attribute deletes the attribute.
4702*5e7646d2SAndroid Build Coastguard Worker
4703*5e7646d2SAndroid Build Coastguard Worker</p>
4704*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippEnumString">ippEnumString</a></h3>
4705*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return a string corresponding to the enum value.</p>
4706*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4707*5e7646d2SAndroid Build Coastguard Workerconst char *ippEnumString(const char *attrname, int enumvalue);</p>
4708*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4709*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4710*5e7646d2SAndroid Build Coastguard Worker<tr><th>attrname</th>
4711*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute name</td></tr>
4712*5e7646d2SAndroid Build Coastguard Worker<tr><th>enumvalue</th>
4713*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Enum value</td></tr>
4714*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4715*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4716*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Enum string</p>
4717*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippEnumValue">ippEnumValue</a></h3>
4718*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the value associated with a given enum string.</p>
4719*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4720*5e7646d2SAndroid Build Coastguard Workerint ippEnumValue(const char *attrname, const char *enumstring);</p>
4721*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4722*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4723*5e7646d2SAndroid Build Coastguard Worker<tr><th>attrname</th>
4724*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute name</td></tr>
4725*5e7646d2SAndroid Build Coastguard Worker<tr><th>enumstring</th>
4726*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Enum string</td></tr>
4727*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4728*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4729*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Enum value or -1 if unknown</p>
4730*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippErrorString">ippErrorString</a></h3>
4731*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return a name for the given status code.</p>
4732*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4733*5e7646d2SAndroid Build Coastguard Workerconst char *ippErrorString(ipp_status_t error);</p>
4734*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4735*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4736*5e7646d2SAndroid Build Coastguard Worker<tr><th>error</th>
4737*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Error status</td></tr>
4738*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4739*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4740*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Text string</p>
4741*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ippErrorValue">ippErrorValue</a></h3>
4742*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return a status code for the given name.</p>
4743*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4744*5e7646d2SAndroid Build Coastguard Workeripp_status_t ippErrorValue(const char *name);</p>
4745*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4746*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4747*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4748*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name</td></tr>
4749*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4750*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4751*5e7646d2SAndroid Build Coastguard Worker        <p class="description">IPP status code</p>
4752*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippFindAttribute">ippFindAttribute</a></h3>
4753*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Find a named attribute in a request.</p>
4754*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4755*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippFindAttribute(<a href="#ipp_t">ipp_t</a> *ipp, const char *name, ipp_tag_t type);</p>
4756*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4757*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4758*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4759*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4760*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4761*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4762*5e7646d2SAndroid Build Coastguard Worker<tr><th>type</th>
4763*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Type of attribute</td></tr>
4764*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4765*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4766*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Matching attribute</p>
4767*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4768*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Starting with CUPS 2.0, the attribute name can contain a hierarchical list
4769*5e7646d2SAndroid Build Coastguard Workerof attribute and member names separated by slashes, for example
4770*5e7646d2SAndroid Build Coastguard Worker&quot;media-col/media-size&quot;.</p>
4771*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippFindNextAttribute">ippFindNextAttribute</a></h3>
4772*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Find the next named attribute in a request.</p>
4773*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4774*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippFindNextAttribute(<a href="#ipp_t">ipp_t</a> *ipp, const char *name, ipp_tag_t type);</p>
4775*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4776*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4777*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4778*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4779*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
4780*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of attribute</td></tr>
4781*5e7646d2SAndroid Build Coastguard Worker<tr><th>type</th>
4782*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Type of attribute</td></tr>
4783*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4784*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4785*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Matching attribute</p>
4786*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4787*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">Starting with CUPS 2.0, the attribute name can contain a hierarchical list
4788*5e7646d2SAndroid Build Coastguard Workerof attribute and member names separated by slashes, for example
4789*5e7646d2SAndroid Build Coastguard Worker&quot;media-col/media-size&quot;.</p>
4790*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippFirstAttribute">ippFirstAttribute</a></h3>
4791*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the first attribute in the message.</p>
4792*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4793*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippFirstAttribute(<a href="#ipp_t">ipp_t</a> *ipp);</p>
4794*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4795*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4796*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4797*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4798*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4799*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4800*5e7646d2SAndroid Build Coastguard Worker        <p class="description">First attribute or <code>NULL</code> if none</p>
4801*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetBoolean">ippGetBoolean</a></h3>
4802*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a boolean value for an attribute.</p>
4803*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4804*5e7646d2SAndroid Build Coastguard Workerint ippGetBoolean(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr, int element);</p>
4805*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4806*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4807*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4808*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
4809*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
4810*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
4811*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4812*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4813*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Boolean value or 0 on error</p>
4814*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4815*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>element</code> parameter specifies which value to get from 0 to
4816*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code> - 1.
4817*5e7646d2SAndroid Build Coastguard Worker
4818*5e7646d2SAndroid Build Coastguard Worker</p>
4819*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetCollection">ippGetCollection</a></h3>
4820*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a collection value for an attribute.</p>
4821*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4822*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_t">ipp_t</a> *ippGetCollection(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr, int element);</p>
4823*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4824*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4825*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4826*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
4827*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
4828*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
4829*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4830*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4831*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Collection value or <code>NULL</code> on error</p>
4832*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4833*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>element</code> parameter specifies which value to get from 0 to
4834*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code> - 1.
4835*5e7646d2SAndroid Build Coastguard Worker
4836*5e7646d2SAndroid Build Coastguard Worker</p>
4837*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetCount">ippGetCount</a></h3>
4838*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the number of values in an attribute.</p>
4839*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4840*5e7646d2SAndroid Build Coastguard Workerint ippGetCount(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr);</p>
4841*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4842*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4843*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4844*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
4845*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4846*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4847*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Number of values or 0 on error</p>
4848*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetDate">ippGetDate</a></h3>
4849*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a dateTime value for an attribute.</p>
4850*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4851*5e7646d2SAndroid Build Coastguard Workerconst <a href="#ipp_uchar_t">ipp_uchar_t</a> *ippGetDate(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr, int element);</p>
4852*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4853*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4854*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4855*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
4856*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
4857*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
4858*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4859*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4860*5e7646d2SAndroid Build Coastguard Worker        <p class="description">dateTime value or <code>NULL</code></p>
4861*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4862*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>element</code> parameter specifies which value to get from 0 to
4863*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code> - 1.
4864*5e7646d2SAndroid Build Coastguard Worker
4865*5e7646d2SAndroid Build Coastguard Worker</p>
4866*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetGroupTag">ippGetGroupTag</a></h3>
4867*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the group associated with an attribute.</p>
4868*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4869*5e7646d2SAndroid Build Coastguard Workeripp_tag_t ippGetGroupTag(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr);</p>
4870*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4871*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4872*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4873*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
4874*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4875*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4876*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Group tag or <code>IPP_TAG_ZERO</code> on error</p>
4877*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetInteger">ippGetInteger</a></h3>
4878*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the integer/enum value for an attribute.</p>
4879*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4880*5e7646d2SAndroid Build Coastguard Workerint ippGetInteger(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr, int element);</p>
4881*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4882*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4883*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4884*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
4885*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
4886*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
4887*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4888*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4889*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Value or 0 on error</p>
4890*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4891*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>element</code> parameter specifies which value to get from 0 to
4892*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code> - 1.
4893*5e7646d2SAndroid Build Coastguard Worker
4894*5e7646d2SAndroid Build Coastguard Worker</p>
4895*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetName">ippGetName</a></h3>
4896*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the attribute name.</p>
4897*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4898*5e7646d2SAndroid Build Coastguard Workerconst char *ippGetName(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr);</p>
4899*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4900*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4901*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4902*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
4903*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4904*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4905*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Attribute name or <code>NULL</code> for separators</p>
4906*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippGetOctetString">ippGetOctetString</a></h3>
4907*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get an octetString value from an IPP attribute.</p>
4908*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4909*5e7646d2SAndroid Build Coastguard Workervoid *ippGetOctetString(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr, int element, int *datalen);</p>
4910*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4911*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4912*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4913*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
4914*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
4915*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
4916*5e7646d2SAndroid Build Coastguard Worker<tr><th>datalen</th>
4917*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Length of octetString data</td></tr>
4918*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4919*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4920*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Pointer to octetString data</p>
4921*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4922*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>element</code> parameter specifies which value to get from 0 to
4923*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code> - 1.
4924*5e7646d2SAndroid Build Coastguard Worker
4925*5e7646d2SAndroid Build Coastguard Worker</p>
4926*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetOperation">ippGetOperation</a></h3>
4927*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the operation ID in an IPP message.</p>
4928*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4929*5e7646d2SAndroid Build Coastguard Workeripp_op_t ippGetOperation(<a href="#ipp_t">ipp_t</a> *ipp);</p>
4930*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4931*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4932*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4933*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP request message</td></tr>
4934*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4935*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4936*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Operation ID or 0 on error</p>
4937*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetRange">ippGetRange</a></h3>
4938*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a rangeOfInteger value from an attribute.</p>
4939*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4940*5e7646d2SAndroid Build Coastguard Workerint ippGetRange(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr, int element, int *uppervalue);</p>
4941*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4942*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4943*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4944*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
4945*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
4946*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
4947*5e7646d2SAndroid Build Coastguard Worker<tr><th>uppervalue</th>
4948*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Upper value of range</td></tr>
4949*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4950*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4951*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Lower value of range or 0</p>
4952*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4953*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>element</code> parameter specifies which value to get from 0 to
4954*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code> - 1.
4955*5e7646d2SAndroid Build Coastguard Worker
4956*5e7646d2SAndroid Build Coastguard Worker</p>
4957*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetRequestId">ippGetRequestId</a></h3>
4958*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the request ID from an IPP message.</p>
4959*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4960*5e7646d2SAndroid Build Coastguard Workerint ippGetRequestId(<a href="#ipp_t">ipp_t</a> *ipp);</p>
4961*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4962*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4963*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4964*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4965*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4966*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4967*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Request ID or 0 on error</p>
4968*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetResolution">ippGetResolution</a></h3>
4969*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get a resolution value for an attribute.</p>
4970*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4971*5e7646d2SAndroid Build Coastguard Workerint ippGetResolution(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr, int element, int *yres, <a href="#ipp_res_t">ipp_res_t</a> *units);</p>
4972*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4973*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4974*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
4975*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
4976*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
4977*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
4978*5e7646d2SAndroid Build Coastguard Worker<tr><th>yres</th>
4979*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Vertical/feed resolution</td></tr>
4980*5e7646d2SAndroid Build Coastguard Worker<tr><th>units</th>
4981*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Units for resolution</td></tr>
4982*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4983*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
4984*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Horizontal/cross feed resolution or 0</p>
4985*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
4986*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>element</code> parameter specifies which value to get from 0 to
4987*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code> - 1.
4988*5e7646d2SAndroid Build Coastguard Worker
4989*5e7646d2SAndroid Build Coastguard Worker</p>
4990*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetState">ippGetState</a></h3>
4991*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the IPP message state.</p>
4992*5e7646d2SAndroid Build Coastguard Worker<p class="code">
4993*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_state_t">ipp_state_t</a> ippGetState(<a href="#ipp_t">ipp_t</a> *ipp);</p>
4994*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
4995*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
4996*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
4997*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
4998*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
4999*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5000*5e7646d2SAndroid Build Coastguard Worker        <p class="description">IPP message state value</p>
5001*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetStatusCode">ippGetStatusCode</a></h3>
5002*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the status code from an IPP response or event message.</p>
5003*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5004*5e7646d2SAndroid Build Coastguard Workeripp_status_t ippGetStatusCode(<a href="#ipp_t">ipp_t</a> *ipp);</p>
5005*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5006*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5007*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5008*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP response or event message</td></tr>
5009*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5010*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5011*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Status code in IPP message</p>
5012*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippGetString">ippGetString</a></h3>
5013*5e7646d2SAndroid Build Coastguard Worker        <p class="description"></p>
5014*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5015*5e7646d2SAndroid Build Coastguard Workerconst char *ippGetString(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr, int element, const char **language);</p>
5016*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5017*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5018*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5019*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5020*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
5021*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
5022*5e7646d2SAndroid Build Coastguard Worker<tr><th>language</th>
5023*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Language code (<code>NULL</code> for don't care)</td></tr>
5024*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5025*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5026*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the string and optionally the language code for an attribute.</p>
5027*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>element</code> parameter specifies which value to get from 0 to
5028*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code> - 1.
5029*5e7646d2SAndroid Build Coastguard Worker
5030*5e7646d2SAndroid Build Coastguard Worker</p>
5031*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetValueTag">ippGetValueTag</a></h3>
5032*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the value tag for an attribute.</p>
5033*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5034*5e7646d2SAndroid Build Coastguard Workeripp_tag_t ippGetValueTag(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr);</p>
5035*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5036*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5037*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5038*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5039*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5040*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5041*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Value tag or <code>IPP_TAG_ZERO</code> on error</p>
5042*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippGetVersion">ippGetVersion</a></h3>
5043*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get the major and minor version number from an IPP message.</p>
5044*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5045*5e7646d2SAndroid Build Coastguard Workerint ippGetVersion(<a href="#ipp_t">ipp_t</a> *ipp, int *minor);</p>
5046*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5047*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5048*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5049*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5050*5e7646d2SAndroid Build Coastguard Worker<tr><th>minor</th>
5051*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Minor version number or <code>NULL</code> for don't care</td></tr>
5052*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5053*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5054*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Major version number or 0 on error</p>
5055*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippLength">ippLength</a></h3>
5056*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Compute the length of an IPP message.</p>
5057*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5058*5e7646d2SAndroid Build Coastguard Workersize_t ippLength(<a href="#ipp_t">ipp_t</a> *ipp);</p>
5059*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5060*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5061*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5062*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5063*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5064*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5065*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Size of IPP message</p>
5066*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippNew">ippNew</a></h3>
5067*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Allocate a new IPP message.</p>
5068*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5069*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_t">ipp_t</a> *ippNew(void);</p>
5070*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5071*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New IPP message</p>
5072*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ippNewRequest">ippNewRequest</a></h3>
5073*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Allocate a new IPP request message.</p>
5074*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5075*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_t">ipp_t</a> *ippNewRequest(ipp_op_t op);</p>
5076*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5077*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5078*5e7646d2SAndroid Build Coastguard Worker<tr><th>op</th>
5079*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Operation code</td></tr>
5080*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5081*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5082*5e7646d2SAndroid Build Coastguard Worker        <p class="description">IPP request message</p>
5083*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5084*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The new request message is initialized with the &quot;attributes-charset&quot; and
5085*5e7646d2SAndroid Build Coastguard Worker&quot;attributes-natural-language&quot; attributes added. The
5086*5e7646d2SAndroid Build Coastguard Worker&quot;attributes-natural-language&quot; value is derived from the current locale.
5087*5e7646d2SAndroid Build Coastguard Worker
5088*5e7646d2SAndroid Build Coastguard Worker</p>
5089*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippNewResponse">ippNewResponse</a></h3>
5090*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Allocate a new IPP response message.</p>
5091*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5092*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_t">ipp_t</a> *ippNewResponse(<a href="#ipp_t">ipp_t</a> *request);</p>
5093*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5094*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5095*5e7646d2SAndroid Build Coastguard Worker<tr><th>request</th>
5096*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP request message</td></tr>
5097*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5098*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5099*5e7646d2SAndroid Build Coastguard Worker        <p class="description">IPP response message</p>
5100*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5101*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The new response message is initialized with the same &quot;version-number&quot;,
5102*5e7646d2SAndroid Build Coastguard Worker&quot;request-id&quot;, &quot;attributes-charset&quot;, and &quot;attributes-natural-language&quot; as the
5103*5e7646d2SAndroid Build Coastguard Workerprovided request message.  If the &quot;attributes-charset&quot; or
5104*5e7646d2SAndroid Build Coastguard Worker&quot;attributes-natural-language&quot; attributes are missing from the request,
5105*5e7646d2SAndroid Build Coastguard Worker'utf-8' and a value derived from the current locale are substituted,
5106*5e7646d2SAndroid Build Coastguard Workerrespectively.
5107*5e7646d2SAndroid Build Coastguard Worker
5108*5e7646d2SAndroid Build Coastguard Worker</p>
5109*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippNextAttribute">ippNextAttribute</a></h3>
5110*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the next attribute in the message.</p>
5111*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5112*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_attribute_t">ipp_attribute_t</a> *ippNextAttribute(<a href="#ipp_t">ipp_t</a> *ipp);</p>
5113*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5114*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5115*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5116*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5117*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5118*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5119*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Next attribute or <code>NULL</code> if none</p>
5120*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ippOpString">ippOpString</a></h3>
5121*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return a name for the given operation id.</p>
5122*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5123*5e7646d2SAndroid Build Coastguard Workerconst char *ippOpString(ipp_op_t op);</p>
5124*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5125*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5126*5e7646d2SAndroid Build Coastguard Worker<tr><th>op</th>
5127*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Operation ID</td></tr>
5128*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5129*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5130*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Name</p>
5131*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ippOpValue">ippOpValue</a></h3>
5132*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return an operation id for the given name.</p>
5133*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5134*5e7646d2SAndroid Build Coastguard Workeripp_op_t ippOpValue(const char *name);</p>
5135*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5136*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5137*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
5138*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Textual name</td></tr>
5139*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5140*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5141*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Operation ID</p>
5142*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippPort">ippPort</a></h3>
5143*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the default IPP port number.</p>
5144*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5145*5e7646d2SAndroid Build Coastguard Workerint ippPort(void);</p>
5146*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5147*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Port number</p>
5148*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippRead">ippRead</a></h3>
5149*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Read data for an IPP message from a HTTP connection.</p>
5150*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5151*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_state_t">ipp_state_t</a> ippRead(<a href="#http_t">http_t</a> *http, <a href="#ipp_t">ipp_t</a> *ipp);</p>
5152*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5153*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5154*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
5155*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
5156*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5157*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP data</td></tr>
5158*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5159*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5160*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Current state</p>
5161*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span><a id="ippReadFile">ippReadFile</a></h3>
5162*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Read data for an IPP message from a file.</p>
5163*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5164*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_state_t">ipp_state_t</a> ippReadFile(int fd, <a href="#ipp_t">ipp_t</a> *ipp);</p>
5165*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5166*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5167*5e7646d2SAndroid Build Coastguard Worker<tr><th>fd</th>
5168*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP data</td></tr>
5169*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5170*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP data</td></tr>
5171*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5172*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5173*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Current state</p>
5174*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ippReadIO">ippReadIO</a></h3>
5175*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Read data for an IPP message.</p>
5176*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5177*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_state_t">ipp_state_t</a> ippReadIO(void *src, <a href="#ipp_iocb_t">ipp_iocb_t</a> cb, int blocking, <a href="#ipp_t">ipp_t</a> *parent, <a href="#ipp_t">ipp_t</a> *ipp);</p>
5178*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5179*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5180*5e7646d2SAndroid Build Coastguard Worker<tr><th>src</th>
5181*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Data source</td></tr>
5182*5e7646d2SAndroid Build Coastguard Worker<tr><th>cb</th>
5183*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Read callback function</td></tr>
5184*5e7646d2SAndroid Build Coastguard Worker<tr><th>blocking</th>
5185*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Use blocking IO?</td></tr>
5186*5e7646d2SAndroid Build Coastguard Worker<tr><th>parent</th>
5187*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Parent request, if any</td></tr>
5188*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5189*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP data</td></tr>
5190*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5191*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5192*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Current state</p>
5193*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetBoolean">ippSetBoolean</a></h3>
5194*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set a boolean value in an attribute.</p>
5195*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5196*5e7646d2SAndroid Build Coastguard Workerint ippSetBoolean(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, int element, int boolvalue);</p>
5197*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5198*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5199*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5200*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5201*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5202*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5203*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
5204*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
5205*5e7646d2SAndroid Build Coastguard Worker<tr><th>boolvalue</th>
5206*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Boolean value</td></tr>
5207*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5208*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5209*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5210*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5211*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5212*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5213*5e7646d2SAndroid Build Coastguard Worker<br>
5214*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5215*5e7646d2SAndroid Build Coastguard Worker<br>
5216*5e7646d2SAndroid Build Coastguard WorkerThe <code>element</code> parameter specifies which value to set from 0 to
5217*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code>.
5218*5e7646d2SAndroid Build Coastguard Worker
5219*5e7646d2SAndroid Build Coastguard Worker</p>
5220*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetCollection">ippSetCollection</a></h3>
5221*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set a collection value in an attribute.</p>
5222*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5223*5e7646d2SAndroid Build Coastguard Workerint ippSetCollection(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, int element, <a href="#ipp_t">ipp_t</a> *colvalue);</p>
5224*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5225*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5226*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5227*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5228*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5229*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5230*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
5231*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
5232*5e7646d2SAndroid Build Coastguard Worker<tr><th>colvalue</th>
5233*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Collection value</td></tr>
5234*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5235*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5236*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5237*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5238*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5239*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5240*5e7646d2SAndroid Build Coastguard Worker<br>
5241*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5242*5e7646d2SAndroid Build Coastguard Worker<br>
5243*5e7646d2SAndroid Build Coastguard WorkerThe <code>element</code> parameter specifies which value to set from 0 to
5244*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code>.
5245*5e7646d2SAndroid Build Coastguard Worker
5246*5e7646d2SAndroid Build Coastguard Worker</p>
5247*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetDate">ippSetDate</a></h3>
5248*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set a dateTime value in an attribute.</p>
5249*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5250*5e7646d2SAndroid Build Coastguard Workerint ippSetDate(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, int element, const <a href="#ipp_uchar_t">ipp_uchar_t</a> *datevalue);</p>
5251*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5252*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5253*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5254*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5255*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5256*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5257*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
5258*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
5259*5e7646d2SAndroid Build Coastguard Worker<tr><th>datevalue</th>
5260*5e7646d2SAndroid Build Coastguard Worker        <td class="description">dateTime value</td></tr>
5261*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5262*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5263*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5264*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5265*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5266*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5267*5e7646d2SAndroid Build Coastguard Worker<br>
5268*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5269*5e7646d2SAndroid Build Coastguard Worker<br>
5270*5e7646d2SAndroid Build Coastguard WorkerThe <code>element</code> parameter specifies which value to set from 0 to
5271*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code>.
5272*5e7646d2SAndroid Build Coastguard Worker
5273*5e7646d2SAndroid Build Coastguard Worker</p>
5274*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetGroupTag">ippSetGroupTag</a></h3>
5275*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the group tag of an attribute.</p>
5276*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5277*5e7646d2SAndroid Build Coastguard Workerint ippSetGroupTag(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, ipp_tag_t group_tag);</p>
5278*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5279*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5280*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5281*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5282*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5283*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute</td></tr>
5284*5e7646d2SAndroid Build Coastguard Worker<tr><th>group_tag</th>
5285*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Group tag</td></tr>
5286*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5287*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5288*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5289*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5290*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5291*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5292*5e7646d2SAndroid Build Coastguard Worker<br>
5293*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5294*5e7646d2SAndroid Build Coastguard Worker<br>
5295*5e7646d2SAndroid Build Coastguard WorkerThe <code>group</code> parameter specifies the IPP attribute group tag: none
5296*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_ZERO</code>, for member attributes), document (<code>IPP_TAG_DOCUMENT</code>),
5297*5e7646d2SAndroid Build Coastguard Workerevent notification (<code>IPP_TAG_EVENT_NOTIFICATION</code>), operation
5298*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_OPERATION</code>), printer (<code>IPP_TAG_PRINTER</code>), subscription
5299*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_SUBSCRIPTION</code>), or unsupported (<code>IPP_TAG_UNSUPPORTED_GROUP</code>).
5300*5e7646d2SAndroid Build Coastguard Worker
5301*5e7646d2SAndroid Build Coastguard Worker</p>
5302*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetInteger">ippSetInteger</a></h3>
5303*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set an integer or enum value in an attribute.</p>
5304*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5305*5e7646d2SAndroid Build Coastguard Workerint ippSetInteger(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, int element, int intvalue);</p>
5306*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5307*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5308*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5309*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5310*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5311*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5312*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
5313*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
5314*5e7646d2SAndroid Build Coastguard Worker<tr><th>intvalue</th>
5315*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Integer/enum value</td></tr>
5316*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5317*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5318*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5319*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5320*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5321*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5322*5e7646d2SAndroid Build Coastguard Worker<br>
5323*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5324*5e7646d2SAndroid Build Coastguard Worker<br>
5325*5e7646d2SAndroid Build Coastguard WorkerThe <code>element</code> parameter specifies which value to set from 0 to
5326*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code>.
5327*5e7646d2SAndroid Build Coastguard Worker
5328*5e7646d2SAndroid Build Coastguard Worker</p>
5329*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetName">ippSetName</a></h3>
5330*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the name of an attribute.</p>
5331*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5332*5e7646d2SAndroid Build Coastguard Workerint ippSetName(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, const char *name);</p>
5333*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5334*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5335*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5336*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5337*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5338*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5339*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
5340*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute name</td></tr>
5341*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5342*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5343*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5344*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5345*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5346*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5347*5e7646d2SAndroid Build Coastguard Worker<br>
5348*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.
5349*5e7646d2SAndroid Build Coastguard Worker
5350*5e7646d2SAndroid Build Coastguard Worker</p>
5351*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippSetOctetString">ippSetOctetString</a></h3>
5352*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set an octetString value in an IPP attribute.</p>
5353*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5354*5e7646d2SAndroid Build Coastguard Workerint ippSetOctetString(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, int element, const void *data, int datalen);</p>
5355*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5356*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5357*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5358*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5359*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5360*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5361*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
5362*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
5363*5e7646d2SAndroid Build Coastguard Worker<tr><th>data</th>
5364*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to octetString data</td></tr>
5365*5e7646d2SAndroid Build Coastguard Worker<tr><th>datalen</th>
5366*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Length of octetString data</td></tr>
5367*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5368*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5369*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5370*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5371*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5372*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5373*5e7646d2SAndroid Build Coastguard Worker<br>
5374*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5375*5e7646d2SAndroid Build Coastguard Worker<br>
5376*5e7646d2SAndroid Build Coastguard WorkerThe <code>element</code> parameter specifies which value to set from 0 to
5377*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code>.
5378*5e7646d2SAndroid Build Coastguard Worker
5379*5e7646d2SAndroid Build Coastguard Worker</p>
5380*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetOperation">ippSetOperation</a></h3>
5381*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the operation ID in an IPP request message.</p>
5382*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5383*5e7646d2SAndroid Build Coastguard Workerint ippSetOperation(<a href="#ipp_t">ipp_t</a> *ipp, ipp_op_t op);</p>
5384*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5385*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5386*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5387*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP request message</td></tr>
5388*5e7646d2SAndroid Build Coastguard Worker<tr><th>op</th>
5389*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Operation ID</td></tr>
5390*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5391*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5392*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5393*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5394*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5395*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.
5396*5e7646d2SAndroid Build Coastguard Worker
5397*5e7646d2SAndroid Build Coastguard Worker</p>
5398*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippSetPort">ippSetPort</a></h3>
5399*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the default port number.</p>
5400*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5401*5e7646d2SAndroid Build Coastguard Workervoid ippSetPort(int p);</p>
5402*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5403*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5404*5e7646d2SAndroid Build Coastguard Worker<tr><th>p</th>
5405*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Port number to use</td></tr>
5406*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5407*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetRange">ippSetRange</a></h3>
5408*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set a rangeOfInteger value in an attribute.</p>
5409*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5410*5e7646d2SAndroid Build Coastguard Workerint ippSetRange(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, int element, int lowervalue, int uppervalue);</p>
5411*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5412*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5413*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5414*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5415*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5416*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5417*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
5418*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
5419*5e7646d2SAndroid Build Coastguard Worker<tr><th>lowervalue</th>
5420*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Lower bound for range</td></tr>
5421*5e7646d2SAndroid Build Coastguard Worker<tr><th>uppervalue</th>
5422*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Upper bound for range</td></tr>
5423*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5424*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5425*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5426*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5427*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5428*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5429*5e7646d2SAndroid Build Coastguard Worker<br>
5430*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5431*5e7646d2SAndroid Build Coastguard Worker<br>
5432*5e7646d2SAndroid Build Coastguard WorkerThe <code>element</code> parameter specifies which value to set from 0 to
5433*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code>.
5434*5e7646d2SAndroid Build Coastguard Worker
5435*5e7646d2SAndroid Build Coastguard Worker</p>
5436*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetRequestId">ippSetRequestId</a></h3>
5437*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the request ID in an IPP message.</p>
5438*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5439*5e7646d2SAndroid Build Coastguard Workerint ippSetRequestId(<a href="#ipp_t">ipp_t</a> *ipp, int request_id);</p>
5440*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5441*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5442*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5443*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5444*5e7646d2SAndroid Build Coastguard Worker<tr><th>request_id</th>
5445*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Request ID</td></tr>
5446*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5447*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5448*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5449*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5450*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5451*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5452*5e7646d2SAndroid Build Coastguard Worker<br>
5453*5e7646d2SAndroid Build Coastguard WorkerThe <code>request_id</code> parameter must be greater than 0.
5454*5e7646d2SAndroid Build Coastguard Worker
5455*5e7646d2SAndroid Build Coastguard Worker</p>
5456*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetResolution">ippSetResolution</a></h3>
5457*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set a resolution value in an attribute.</p>
5458*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5459*5e7646d2SAndroid Build Coastguard Workerint ippSetResolution(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, int element, <a href="#ipp_res_t">ipp_res_t</a> unitsvalue, int xresvalue, int yresvalue);</p>
5460*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5461*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5462*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5463*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5464*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5465*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5466*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
5467*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
5468*5e7646d2SAndroid Build Coastguard Worker<tr><th>unitsvalue</th>
5469*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Resolution units</td></tr>
5470*5e7646d2SAndroid Build Coastguard Worker<tr><th>xresvalue</th>
5471*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Horizontal/cross feed resolution</td></tr>
5472*5e7646d2SAndroid Build Coastguard Worker<tr><th>yresvalue</th>
5473*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Vertical/feed resolution</td></tr>
5474*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5475*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5476*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5477*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5478*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5479*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5480*5e7646d2SAndroid Build Coastguard Worker<br>
5481*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5482*5e7646d2SAndroid Build Coastguard Worker<br>
5483*5e7646d2SAndroid Build Coastguard WorkerThe <code>element</code> parameter specifies which value to set from 0 to
5484*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code>.
5485*5e7646d2SAndroid Build Coastguard Worker
5486*5e7646d2SAndroid Build Coastguard Worker</p>
5487*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetState">ippSetState</a></h3>
5488*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the current state of the IPP message.</p>
5489*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5490*5e7646d2SAndroid Build Coastguard Workerint ippSetState(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_state_t">ipp_state_t</a> state);</p>
5491*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5492*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5493*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5494*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5495*5e7646d2SAndroid Build Coastguard Worker<tr><th>state</th>
5496*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP state value</td></tr>
5497*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5498*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5499*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5500*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetStatusCode">ippSetStatusCode</a></h3>
5501*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the status code in an IPP response or event message.</p>
5502*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5503*5e7646d2SAndroid Build Coastguard Workerint ippSetStatusCode(<a href="#ipp_t">ipp_t</a> *ipp, ipp_status_t status);</p>
5504*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5505*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5506*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5507*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP response or event message</td></tr>
5508*5e7646d2SAndroid Build Coastguard Worker<tr><th>status</th>
5509*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Status code</td></tr>
5510*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5511*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5512*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5513*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5514*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5515*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.
5516*5e7646d2SAndroid Build Coastguard Worker
5517*5e7646d2SAndroid Build Coastguard Worker</p>
5518*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetString">ippSetString</a></h3>
5519*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set a string value in an attribute.</p>
5520*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5521*5e7646d2SAndroid Build Coastguard Workerint ippSetString(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, int element, const char *strvalue);</p>
5522*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5523*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5524*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5525*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5526*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5527*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5528*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
5529*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
5530*5e7646d2SAndroid Build Coastguard Worker<tr><th>strvalue</th>
5531*5e7646d2SAndroid Build Coastguard Worker        <td class="description">String value</td></tr>
5532*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5533*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5534*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5535*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5536*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5537*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5538*5e7646d2SAndroid Build Coastguard Worker<br>
5539*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5540*5e7646d2SAndroid Build Coastguard Worker<br>
5541*5e7646d2SAndroid Build Coastguard WorkerThe <code>element</code> parameter specifies which value to set from 0 to
5542*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code>.
5543*5e7646d2SAndroid Build Coastguard Worker
5544*5e7646d2SAndroid Build Coastguard Worker</p>
5545*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippSetStringf">ippSetStringf</a></h3>
5546*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set a formatted string value of an attribute.</p>
5547*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5548*5e7646d2SAndroid Build Coastguard Workerint ippSetStringf(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, int element, const char *format, ...);</p>
5549*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5550*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5551*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5552*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5553*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5554*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5555*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
5556*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
5557*5e7646d2SAndroid Build Coastguard Worker<tr><th>format</th>
5558*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Printf-style format string</td></tr>
5559*5e7646d2SAndroid Build Coastguard Worker<tr><th>...</th>
5560*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Additional arguments as needed</td></tr>
5561*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5562*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5563*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5564*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5565*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5566*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5567*5e7646d2SAndroid Build Coastguard Worker<br>
5568*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5569*5e7646d2SAndroid Build Coastguard Worker<br>
5570*5e7646d2SAndroid Build Coastguard WorkerThe <code>element</code> parameter specifies which value to set from 0 to
5571*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code>.<br>
5572*5e7646d2SAndroid Build Coastguard Worker<br>
5573*5e7646d2SAndroid Build Coastguard WorkerThe <code>format</code> parameter uses formatting characters compatible with the
5574*5e7646d2SAndroid Build Coastguard Workerprintf family of standard functions.  Additional arguments follow it as
5575*5e7646d2SAndroid Build Coastguard Workerneeded.  The formatted string is truncated as needed to the maximum length of
5576*5e7646d2SAndroid Build Coastguard Workerthe corresponding value type.
5577*5e7646d2SAndroid Build Coastguard Worker
5578*5e7646d2SAndroid Build Coastguard Worker</p>
5579*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippSetStringfv">ippSetStringfv</a></h3>
5580*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set a formatted string value of an attribute.</p>
5581*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5582*5e7646d2SAndroid Build Coastguard Workerint ippSetStringfv(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, int element, const char *format, va_list ap);</p>
5583*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5584*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5585*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5586*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5587*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5588*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5589*5e7646d2SAndroid Build Coastguard Worker<tr><th>element</th>
5590*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value number (0-based)</td></tr>
5591*5e7646d2SAndroid Build Coastguard Worker<tr><th>format</th>
5592*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Printf-style format string</td></tr>
5593*5e7646d2SAndroid Build Coastguard Worker<tr><th>ap</th>
5594*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Pointer to additional arguments</td></tr>
5595*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5596*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5597*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5598*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5599*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5600*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5601*5e7646d2SAndroid Build Coastguard Worker<br>
5602*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5603*5e7646d2SAndroid Build Coastguard Worker<br>
5604*5e7646d2SAndroid Build Coastguard WorkerThe <code>element</code> parameter specifies which value to set from 0 to
5605*5e7646d2SAndroid Build Coastguard Worker<code>ippGetCount(attr)</code>.<br>
5606*5e7646d2SAndroid Build Coastguard Worker<br>
5607*5e7646d2SAndroid Build Coastguard WorkerThe <code>format</code> parameter uses formatting characters compatible with the
5608*5e7646d2SAndroid Build Coastguard Workerprintf family of standard functions.  Additional arguments follow it as
5609*5e7646d2SAndroid Build Coastguard Workerneeded.  The formatted string is truncated as needed to the maximum length of
5610*5e7646d2SAndroid Build Coastguard Workerthe corresponding value type.
5611*5e7646d2SAndroid Build Coastguard Worker
5612*5e7646d2SAndroid Build Coastguard Worker</p>
5613*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetValueTag">ippSetValueTag</a></h3>
5614*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the value tag of an attribute.</p>
5615*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5616*5e7646d2SAndroid Build Coastguard Workerint ippSetValueTag(<a href="#ipp_t">ipp_t</a> *ipp, <a href="#ipp_attribute_t">ipp_attribute_t</a> **attr, ipp_tag_t value_tag);</p>
5617*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5618*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5619*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5620*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5621*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5622*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP attribute</td></tr>
5623*5e7646d2SAndroid Build Coastguard Worker<tr><th>value_tag</th>
5624*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value tag</td></tr>
5625*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5626*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5627*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5628*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5629*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5630*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5631*5e7646d2SAndroid Build Coastguard Worker<br>
5632*5e7646d2SAndroid Build Coastguard WorkerThe <code>attr</code> parameter may be modified as a result of setting the value.<br>
5633*5e7646d2SAndroid Build Coastguard Worker<br>
5634*5e7646d2SAndroid Build Coastguard WorkerInteger (<code>IPP_TAG_INTEGER</code>) values can be promoted to rangeOfInteger
5635*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_RANGE</code>) values, the various string tags can be promoted to name
5636*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_NAME</code>) or nameWithLanguage (<code>IPP_TAG_NAMELANG</code>) values, text
5637*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_TEXT</code>) values can be promoted to textWithLanguage
5638*5e7646d2SAndroid Build Coastguard Worker(<code>IPP_TAG_TEXTLANG</code>) values, and all values can be demoted to the various
5639*5e7646d2SAndroid Build Coastguard Workerout-of-band value tags such as no-value (<code>IPP_TAG_NOVALUE</code>). All other changes
5640*5e7646d2SAndroid Build Coastguard Workerwill be rejected.<br>
5641*5e7646d2SAndroid Build Coastguard Worker<br>
5642*5e7646d2SAndroid Build Coastguard WorkerPromoting a string attribute to nameWithLanguage or textWithLanguage adds the language
5643*5e7646d2SAndroid Build Coastguard Workercode in the &quot;attributes-natural-language&quot; attribute or, if not present, the language
5644*5e7646d2SAndroid Build Coastguard Workercode for the current locale.
5645*5e7646d2SAndroid Build Coastguard Worker
5646*5e7646d2SAndroid Build Coastguard Worker</p>
5647*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="ippSetVersion">ippSetVersion</a></h3>
5648*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set the version number in an IPP message.</p>
5649*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5650*5e7646d2SAndroid Build Coastguard Workerint ippSetVersion(<a href="#ipp_t">ipp_t</a> *ipp, int major, int minor);</p>
5651*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5652*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5653*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5654*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5655*5e7646d2SAndroid Build Coastguard Worker<tr><th>major</th>
5656*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Major version number (major.minor)</td></tr>
5657*5e7646d2SAndroid Build Coastguard Worker<tr><th>minor</th>
5658*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Minor version number (major.minor)</td></tr>
5659*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5660*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5661*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
5662*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5663*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The <code>ipp</code> parameter refers to an IPP message previously created using
5664*5e7646d2SAndroid Build Coastguard Workerthe <a href="#ippNew"><code>ippNew</code></a>, <a href="#ippNewRequest"><code>ippNewRequest</code></a>, or  <a href="#ippNewResponse"><code>ippNewResponse</code></a> functions.<br>
5665*5e7646d2SAndroid Build Coastguard Worker<br>
5666*5e7646d2SAndroid Build Coastguard WorkerThe valid version numbers are currently 1.0, 1.1, 2.0, 2.1, and 2.2.
5667*5e7646d2SAndroid Build Coastguard Worker
5668*5e7646d2SAndroid Build Coastguard Worker</p>
5669*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span><a id="ippStateString">ippStateString</a></h3>
5670*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the name corresponding to a state value.</p>
5671*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5672*5e7646d2SAndroid Build Coastguard Workerconst char *ippStateString(<a href="#ipp_state_t">ipp_state_t</a> state);</p>
5673*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5674*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5675*5e7646d2SAndroid Build Coastguard Worker<tr><th>state</th>
5676*5e7646d2SAndroid Build Coastguard Worker        <td class="description">State value</td></tr>
5677*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5678*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5679*5e7646d2SAndroid Build Coastguard Worker        <p class="description">State name</p>
5680*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="ippTagString">ippTagString</a></h3>
5681*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the tag name corresponding to a tag value.</p>
5682*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5683*5e7646d2SAndroid Build Coastguard Workerconst char *ippTagString(ipp_tag_t tag);</p>
5684*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5685*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5686*5e7646d2SAndroid Build Coastguard Worker<tr><th>tag</th>
5687*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Tag value</td></tr>
5688*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5689*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5690*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Tag name</p>
5691*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5692*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The returned names are defined in RFC 8011 and the IANA IPP Registry.
5693*5e7646d2SAndroid Build Coastguard Worker
5694*5e7646d2SAndroid Build Coastguard Worker</p>
5695*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span><a id="ippTagValue">ippTagValue</a></h3>
5696*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Return the tag value corresponding to a tag name.</p>
5697*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5698*5e7646d2SAndroid Build Coastguard Workeripp_tag_t ippTagValue(const char *name);</p>
5699*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5700*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5701*5e7646d2SAndroid Build Coastguard Worker<tr><th>name</th>
5702*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Tag name</td></tr>
5703*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5704*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5705*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Tag value</p>
5706*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5707*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The tag names are defined in RFC 8011 and the IANA IPP Registry.
5708*5e7646d2SAndroid Build Coastguard Worker
5709*5e7646d2SAndroid Build Coastguard Worker</p>
5710*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippTimeToDate">ippTimeToDate</a></h3>
5711*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Convert from time in seconds to RFC 2579 format.</p>
5712*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5713*5e7646d2SAndroid Build Coastguard Workerconst <a href="#ipp_uchar_t">ipp_uchar_t</a> *ippTimeToDate(time_t t);</p>
5714*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5715*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5716*5e7646d2SAndroid Build Coastguard Worker<tr><th>t</th>
5717*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Time in seconds</td></tr>
5718*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5719*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5720*5e7646d2SAndroid Build Coastguard Worker        <p class="description">RFC-2579 date/time data</p>
5721*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippValidateAttribute">ippValidateAttribute</a></h3>
5722*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Validate the contents of an attribute.</p>
5723*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5724*5e7646d2SAndroid Build Coastguard Workerint ippValidateAttribute(<a href="#ipp_attribute_t">ipp_attribute_t</a> *attr);</p>
5725*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5726*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5727*5e7646d2SAndroid Build Coastguard Worker<tr><th>attr</th>
5728*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Attribute</td></tr>
5729*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5730*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5731*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if valid, 0 otherwise</p>
5732*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5733*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function validates the contents of an attribute based on the name and
5734*5e7646d2SAndroid Build Coastguard Workervalue tag.  1 is returned if the attribute is valid, 0 otherwise.  On
5735*5e7646d2SAndroid Build Coastguard Workerfailure, <a href="#cupsLastErrorString"><code>cupsLastErrorString</code></a> is set to a human-readable message.
5736*5e7646d2SAndroid Build Coastguard Worker
5737*5e7646d2SAndroid Build Coastguard Worker</p>
5738*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span><a id="ippValidateAttributes">ippValidateAttributes</a></h3>
5739*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Validate all attributes in an IPP message.</p>
5740*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5741*5e7646d2SAndroid Build Coastguard Workerint ippValidateAttributes(<a href="#ipp_t">ipp_t</a> *ipp);</p>
5742*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5743*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5744*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5745*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP message</td></tr>
5746*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5747*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5748*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 if valid, 0 otherwise</p>
5749*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
5750*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function validates the contents of the IPP message, including each
5751*5e7646d2SAndroid Build Coastguard Workerattribute.  Like <a href="#ippValidateAttribute"><code>ippValidateAttribute</code></a>, <a href="#cupsLastErrorString"><code>cupsLastErrorString</code></a> is
5752*5e7646d2SAndroid Build Coastguard Workerset to a human-readable message on failure.
5753*5e7646d2SAndroid Build Coastguard Worker
5754*5e7646d2SAndroid Build Coastguard Worker</p>
5755*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><a id="ippWrite">ippWrite</a></h3>
5756*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Write data for an IPP message to a HTTP connection.</p>
5757*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5758*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_state_t">ipp_state_t</a> ippWrite(<a href="#http_t">http_t</a> *http, <a href="#ipp_t">ipp_t</a> *ipp);</p>
5759*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5760*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5761*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
5762*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP connection</td></tr>
5763*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5764*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP data</td></tr>
5765*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5766*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5767*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Current state</p>
5768*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.1.19/macOS 10.3&#160;</span><a id="ippWriteFile">ippWriteFile</a></h3>
5769*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Write data for an IPP message to a file.</p>
5770*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5771*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_state_t">ipp_state_t</a> ippWriteFile(int fd, <a href="#ipp_t">ipp_t</a> *ipp);</p>
5772*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5773*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5774*5e7646d2SAndroid Build Coastguard Worker<tr><th>fd</th>
5775*5e7646d2SAndroid Build Coastguard Worker        <td class="description">HTTP data</td></tr>
5776*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5777*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP data</td></tr>
5778*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5779*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5780*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Current state</p>
5781*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span><a id="ippWriteIO">ippWriteIO</a></h3>
5782*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Write data for an IPP message.</p>
5783*5e7646d2SAndroid Build Coastguard Worker<p class="code">
5784*5e7646d2SAndroid Build Coastguard Worker<a href="#ipp_state_t">ipp_state_t</a> ippWriteIO(void *dst, <a href="#ipp_iocb_t">ipp_iocb_t</a> cb, int blocking, <a href="#ipp_t">ipp_t</a> *parent, <a href="#ipp_t">ipp_t</a> *ipp);</p>
5785*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
5786*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5787*5e7646d2SAndroid Build Coastguard Worker<tr><th>dst</th>
5788*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination</td></tr>
5789*5e7646d2SAndroid Build Coastguard Worker<tr><th>cb</th>
5790*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Write callback function</td></tr>
5791*5e7646d2SAndroid Build Coastguard Worker<tr><th>blocking</th>
5792*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Use blocking IO?</td></tr>
5793*5e7646d2SAndroid Build Coastguard Worker<tr><th>parent</th>
5794*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Parent IPP message</td></tr>
5795*5e7646d2SAndroid Build Coastguard Worker<tr><th>ipp</th>
5796*5e7646d2SAndroid Build Coastguard Worker        <td class="description">IPP data</td></tr>
5797*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5798*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
5799*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Current state</p>
5800*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title"><a id="TYPES">Data Types</a></h2>
5801*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_client_cert_cb_t"><span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span>cups_client_cert_cb_t</a></h3>
5802*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Client credentials callback
5803*5e7646d2SAndroid Build Coastguard Worker</p>
5804*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5805*5e7646d2SAndroid Build Coastguard Workertypedef int(*)(http_t *http, void *tls, cups_array_t *distinguished_names, void *user_data)cups_client_cert_cb_t;
5806*5e7646d2SAndroid Build Coastguard Worker</p>
5807*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_dest_cb_t"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span>cups_dest_cb_t</a></h3>
5808*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Destination enumeration callback
5809*5e7646d2SAndroid Build Coastguard Worker</p>
5810*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5811*5e7646d2SAndroid Build Coastguard Workertypedef int(*)(void *user_data, unsigned flags, <a href="#cups_dest_t">cups_dest_t</a> *dest)cups_dest_cb_t;
5812*5e7646d2SAndroid Build Coastguard Worker</p>
5813*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_dest_t">cups_dest_t</a></h3>
5814*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Destination</p>
5815*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5816*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#cups_dest_s">cups_dest_s</a> cups_dest_t;
5817*5e7646d2SAndroid Build Coastguard Worker</p>
5818*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_dinfo_t"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span>cups_dinfo_t</a></h3>
5819*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Destination capability and status
5820*5e7646d2SAndroid Build Coastguard Workerinformation </p>
5821*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5822*5e7646d2SAndroid Build Coastguard Workertypedef struct _cups_dinfo_s cups_dinfo_t;
5823*5e7646d2SAndroid Build Coastguard Worker</p>
5824*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_job_t">cups_job_t</a></h3>
5825*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Job</p>
5826*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5827*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#cups_job_s">cups_job_s</a> cups_job_t;
5828*5e7646d2SAndroid Build Coastguard Worker</p>
5829*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_option_t">cups_option_t</a></h3>
5830*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Printer Options</p>
5831*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5832*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#cups_option_s">cups_option_s</a> cups_option_t;
5833*5e7646d2SAndroid Build Coastguard Worker</p>
5834*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_password_cb2_t"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span>cups_password_cb2_t</a></h3>
5835*5e7646d2SAndroid Build Coastguard Worker        <p class="description">New password callback
5836*5e7646d2SAndroid Build Coastguard Worker</p>
5837*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5838*5e7646d2SAndroid Build Coastguard Workertypedef const char *(*)(const char *prompt, <a href="#http_t">http_t</a> *http, const char *method, const char *resource, void *user_data)cups_password_cb2_t;
5839*5e7646d2SAndroid Build Coastguard Worker</p>
5840*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_ptype_t">cups_ptype_t</a></h3>
5841*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Printer type/capability bits</p>
5842*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5843*5e7646d2SAndroid Build Coastguard Workertypedef unsigned cups_ptype_t;
5844*5e7646d2SAndroid Build Coastguard Worker</p>
5845*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_server_cert_cb_t"><span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span>cups_server_cert_cb_t</a></h3>
5846*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Server credentials callback
5847*5e7646d2SAndroid Build Coastguard Worker</p>
5848*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5849*5e7646d2SAndroid Build Coastguard Workertypedef int(*)(http_t *http, void *tls, cups_array_t *certs, void *user_data)cups_server_cert_cb_t;
5850*5e7646d2SAndroid Build Coastguard Worker</p>
5851*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_size_t"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span>cups_size_t</a></h3>
5852*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Media Size </p>
5853*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5854*5e7646d2SAndroid Build Coastguard Workertypedef struct <a href="#cups_size_s">cups_size_s</a> cups_size_t;
5855*5e7646d2SAndroid Build Coastguard Worker</p>
5856*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="http_addr_t"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span>http_addr_t</a></h3>
5857*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Socket address union, which
5858*5e7646d2SAndroid Build Coastguard Workermakes using IPv6 and other
5859*5e7646d2SAndroid Build Coastguard Workeraddress types easier and
5860*5e7646d2SAndroid Build Coastguard Workermore portable. </p>
5861*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5862*5e7646d2SAndroid Build Coastguard Workertypedef union _http_addr_u / http_addr_t;
5863*5e7646d2SAndroid Build Coastguard Worker</p>
5864*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="http_encoding_t">http_encoding_t</a></h3>
5865*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP transfer encoding values</p>
5866*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5867*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#http_encoding_e">http_encoding_e</a> http_encoding_t;
5868*5e7646d2SAndroid Build Coastguard Worker</p>
5869*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="http_encryption_t">http_encryption_t</a></h3>
5870*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP encryption values</p>
5871*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5872*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#http_encryption_e">http_encryption_e</a> http_encryption_t;
5873*5e7646d2SAndroid Build Coastguard Worker</p>
5874*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="http_field_t">http_field_t</a></h3>
5875*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP field names</p>
5876*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5877*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#http_field_e">http_field_e</a> http_field_t;
5878*5e7646d2SAndroid Build Coastguard Worker</p>
5879*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="http_keepalive_t">http_keepalive_t</a></h3>
5880*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP keep-alive values</p>
5881*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5882*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#http_keepalive_e">http_keepalive_e</a> http_keepalive_t;
5883*5e7646d2SAndroid Build Coastguard Worker</p>
5884*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="http_state_t">http_state_t</a></h3>
5885*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP state values; states
5886*5e7646d2SAndroid Build Coastguard Workerare server-oriented...</p>
5887*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5888*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#http_state_e">http_state_e</a> http_state_t;
5889*5e7646d2SAndroid Build Coastguard Worker</p>
5890*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="http_t">http_t</a></h3>
5891*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP connection type</p>
5892*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5893*5e7646d2SAndroid Build Coastguard Workertypedef struct _http_s http_t;
5894*5e7646d2SAndroid Build Coastguard Worker</p>
5895*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="http_timeout_cb_t"><span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span>http_timeout_cb_t</a></h3>
5896*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP timeout callback </p>
5897*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5898*5e7646d2SAndroid Build Coastguard Workertypedef int(*)(http_t *http, void *user_data)http_timeout_cb_t;
5899*5e7646d2SAndroid Build Coastguard Worker</p>
5900*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="http_trust_t"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span>http_trust_t</a></h3>
5901*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Level of trust for credentials </p>
5902*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5903*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#http_trust_e">http_trust_e</a> http_trust_t;
5904*5e7646d2SAndroid Build Coastguard Worker</p>
5905*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="http_uri_coding_t">http_uri_coding_t</a></h3>
5906*5e7646d2SAndroid Build Coastguard Worker        <p class="description">URI en/decode flags</p>
5907*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5908*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#http_uri_coding_e">http_uri_coding_e</a> http_uri_coding_t;
5909*5e7646d2SAndroid Build Coastguard Worker</p>
5910*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="http_uri_status_t"><span class="info">&#160;CUPS 1.2&#160;</span>http_uri_status_t</a></h3>
5911*5e7646d2SAndroid Build Coastguard Worker        <p class="description">URI separation status </p>
5912*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5913*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#http_uri_status_e">http_uri_status_e</a> http_uri_status_t;
5914*5e7646d2SAndroid Build Coastguard Worker</p>
5915*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ipp_attribute_t">ipp_attribute_t</a></h3>
5916*5e7646d2SAndroid Build Coastguard Worker        <p class="description">IPP attribute</p>
5917*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5918*5e7646d2SAndroid Build Coastguard Workertypedef struct _ipp_attribute_s ipp_attribute_t;
5919*5e7646d2SAndroid Build Coastguard Worker</p>
5920*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ipp_copycb_t"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span>ipp_copycb_t</a></h3>
5921*5e7646d2SAndroid Build Coastguard Worker        <p class="description">ippCopyAttributes callback function </p>
5922*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5923*5e7646d2SAndroid Build Coastguard Workertypedef int(*)(void *context, <a href="#ipp_t">ipp_t</a> *dst, <a href="#ipp_attribute_t">ipp_attribute_t</a> *attr)ipp_copycb_t;
5924*5e7646d2SAndroid Build Coastguard Worker</p>
5925*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ipp_iocb_t"><span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span>ipp_iocb_t</a></h3>
5926*5e7646d2SAndroid Build Coastguard Worker        <p class="description">ippReadIO/ippWriteIO callback function </p>
5927*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5928*5e7646d2SAndroid Build Coastguard Workertypedef ssize_t(*)(void *context, ipp_uchar_t *buffer, size_t bytes) ipp_iocb_t;
5929*5e7646d2SAndroid Build Coastguard Worker</p>
5930*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ipp_orient_t">ipp_orient_t</a></h3>
5931*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Orientation values</p>
5932*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5933*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ipp_orient_e">ipp_orient_e</a> ipp_orient_t;
5934*5e7646d2SAndroid Build Coastguard Worker</p>
5935*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ipp_pstate_t">ipp_pstate_t</a></h3>
5936*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Printer state values</p>
5937*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5938*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ipp_pstate_e">ipp_pstate_e</a> ipp_pstate_t;
5939*5e7646d2SAndroid Build Coastguard Worker</p>
5940*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ipp_quality_t">ipp_quality_t</a></h3>
5941*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Print quality values</p>
5942*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5943*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ipp_quality_e">ipp_quality_e</a> ipp_quality_t;
5944*5e7646d2SAndroid Build Coastguard Worker</p>
5945*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ipp_res_t">ipp_res_t</a></h3>
5946*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Resolution units</p>
5947*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5948*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ipp_res_e">ipp_res_e</a> ipp_res_t;
5949*5e7646d2SAndroid Build Coastguard Worker</p>
5950*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ipp_rstate_t">ipp_rstate_t</a></h3>
5951*5e7646d2SAndroid Build Coastguard Worker        <p class="description">resource-state values</p>
5952*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5953*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ipp_rstate_e">ipp_rstate_e</a> ipp_rstate_t;
5954*5e7646d2SAndroid Build Coastguard Worker</p>
5955*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ipp_sstate_t">ipp_sstate_t</a></h3>
5956*5e7646d2SAndroid Build Coastguard Worker        <p class="description">system-state values</p>
5957*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5958*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ipp_sstate_e">ipp_sstate_e</a> ipp_sstate_t;
5959*5e7646d2SAndroid Build Coastguard Worker</p>
5960*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ipp_state_t">ipp_state_t</a></h3>
5961*5e7646d2SAndroid Build Coastguard Worker        <p class="description">ipp_t state values</p>
5962*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5963*5e7646d2SAndroid Build Coastguard Workertypedef enum <a href="#ipp_state_e">ipp_state_e</a> ipp_state_t;
5964*5e7646d2SAndroid Build Coastguard Worker</p>
5965*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="ipp_t">ipp_t</a></h3>
5966*5e7646d2SAndroid Build Coastguard Worker        <p class="description">IPP request/response data</p>
5967*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
5968*5e7646d2SAndroid Build Coastguard Workertypedef struct _ipp_s ipp_t;
5969*5e7646d2SAndroid Build Coastguard Worker</p>
5970*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title"><a id="STRUCTURES">Structures</a></h2>
5971*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><a id="cups_dest_s">cups_dest_s</a></h3>
5972*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Destination</p>
5973*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct cups_dest_s {<br>
5974*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *name, *instance;<br>
5975*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int is_default;<br>
5976*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int num_options;<br>
5977*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;<a href="#cups_option_t">cups_option_t</a> *options;<br>
5978*5e7646d2SAndroid Build Coastguard Worker};</p>
5979*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
5980*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
5981*5e7646d2SAndroid Build Coastguard Worker<tr><th>instance </th>
5982*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Local instance name or NULL</td></tr>
5983*5e7646d2SAndroid Build Coastguard Worker<tr><th>is_default </th>
5984*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Is this printer the default?</td></tr>
5985*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_options </th>
5986*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of options</td></tr>
5987*5e7646d2SAndroid Build Coastguard Worker<tr><th>options </th>
5988*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Options</td></tr>
5989*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
5990*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><a id="cups_job_s">cups_job_s</a></h3>
5991*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Job</p>
5992*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct cups_job_s {<br>
5993*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;time_t completed_time;<br>
5994*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;time_t creation_time;<br>
5995*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *dest;<br>
5996*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *format;<br>
5997*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int id;<br>
5998*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int priority;<br>
5999*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;time_t processing_time;<br>
6000*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int size;<br>
6001*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;ipp_jstate_t state;<br>
6002*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *title;<br>
6003*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *user;<br>
6004*5e7646d2SAndroid Build Coastguard Worker};</p>
6005*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
6006*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
6007*5e7646d2SAndroid Build Coastguard Worker<tr><th>completed_time </th>
6008*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Time the job was completed</td></tr>
6009*5e7646d2SAndroid Build Coastguard Worker<tr><th>creation_time </th>
6010*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Time the job was created</td></tr>
6011*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest </th>
6012*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Printer or class name</td></tr>
6013*5e7646d2SAndroid Build Coastguard Worker<tr><th>format </th>
6014*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Document format</td></tr>
6015*5e7646d2SAndroid Build Coastguard Worker<tr><th>id </th>
6016*5e7646d2SAndroid Build Coastguard Worker        <td class="description">The job ID</td></tr>
6017*5e7646d2SAndroid Build Coastguard Worker<tr><th>priority </th>
6018*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Priority (1-100)</td></tr>
6019*5e7646d2SAndroid Build Coastguard Worker<tr><th>processing_time </th>
6020*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Time the job was processed</td></tr>
6021*5e7646d2SAndroid Build Coastguard Worker<tr><th>size </th>
6022*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size in kilobytes</td></tr>
6023*5e7646d2SAndroid Build Coastguard Worker<tr><th>state </th>
6024*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Job state</td></tr>
6025*5e7646d2SAndroid Build Coastguard Worker<tr><th>title </th>
6026*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Title/job name</td></tr>
6027*5e7646d2SAndroid Build Coastguard Worker<tr><th>user </th>
6028*5e7646d2SAndroid Build Coastguard Worker        <td class="description">User that submitted the job</td></tr>
6029*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6030*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><a id="cups_option_s">cups_option_s</a></h3>
6031*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Printer Options</p>
6032*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct cups_option_s {<br>
6033*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *name;<br>
6034*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char *value;<br>
6035*5e7646d2SAndroid Build Coastguard Worker};</p>
6036*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
6037*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
6038*5e7646d2SAndroid Build Coastguard Worker<tr><th>name </th>
6039*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Name of option</td></tr>
6040*5e7646d2SAndroid Build Coastguard Worker<tr><th>value </th>
6041*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Value of option</td></tr>
6042*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6043*5e7646d2SAndroid Build Coastguard Worker<h3 class="struct"><span class="info">&#160;CUPS 1.6/macOS 10.8&#160;</span><a id="cups_size_s">cups_size_s</a></h3>
6044*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Media Size </p>
6045*5e7646d2SAndroid Build Coastguard Worker<p class="code">struct cups_size_s {<br>
6046*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;char media[128];<br>
6047*5e7646d2SAndroid Build Coastguard Worker&#160;&#160;&#160;&#160;int width, length, bottom, left, right, top;<br>
6048*5e7646d2SAndroid Build Coastguard Worker};</p>
6049*5e7646d2SAndroid Build Coastguard Worker<h4 class="members">Members</h4>
6050*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
6051*5e7646d2SAndroid Build Coastguard Worker<tr><th>media[128] </th>
6052*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Media name to use</td></tr>
6053*5e7646d2SAndroid Build Coastguard Worker<tr><th>top </th>
6054*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Top margin in hundredths of
6055*5e7646d2SAndroid Build Coastguard Workermillimeters</td></tr>
6056*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6057*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title"><a id="ENUMERATIONS">Constants</a></h2>
6058*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="cups_ptype_e">cups_ptype_e</a></h3>
6059*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Printer type/capability bit
6060*5e7646d2SAndroid Build Coastguard Workerconstants</p>
6061*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6062*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6063*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_AUTHENTICATED <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">Printer requires authentication
6064*5e7646d2SAndroid Build Coastguard Worker</td></tr>
6065*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_BIND </th>        <td class="description">Can bind output</td></tr>
6066*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_BW </th>        <td class="description">Can do B&amp;W printing</td></tr>
6067*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_CLASS </th>        <td class="description">Printer class</td></tr>
6068*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_COLLATE </th>        <td class="description">Can quickly collate copies</td></tr>
6069*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_COLOR </th>        <td class="description">Can do color printing</td></tr>
6070*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_COMMANDS <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">Printer supports maintenance commands
6071*5e7646d2SAndroid Build Coastguard Worker</td></tr>
6072*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_COPIES </th>        <td class="description">Can do copies in hardware</td></tr>
6073*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_COVER </th>        <td class="description">Can cover output</td></tr>
6074*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_DEFAULT </th>        <td class="description">Default printer on network</td></tr>
6075*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_DISCOVERED <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">Printer was discovered </td></tr>
6076*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_DUPLEX </th>        <td class="description">Can do two-sided printing</td></tr>
6077*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_FAX </th>        <td class="description">Fax queue</td></tr>
6078*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_LARGE </th>        <td class="description">Can print on D/E/A1/A0-size media</td></tr>
6079*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_LOCAL </th>        <td class="description">Local printer or class</td></tr>
6080*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_MEDIUM </th>        <td class="description">Can print on Tabloid/B/C/A3/A2-size media</td></tr>
6081*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_NOT_SHARED <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">Printer is not shared
6082*5e7646d2SAndroid Build Coastguard Worker</td></tr>
6083*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_PUNCH </th>        <td class="description">Can punch output</td></tr>
6084*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_REJECTING </th>        <td class="description">Printer is rejecting jobs</td></tr>
6085*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_REMOTE </th>        <td class="description">Remote printer or class</td></tr>
6086*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_SMALL </th>        <td class="description">Can print on Letter/Legal/A4-size media</td></tr>
6087*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_SORT </th>        <td class="description">Can sort output</td></tr>
6088*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_STAPLE </th>        <td class="description">Can staple output</td></tr>
6089*5e7646d2SAndroid Build Coastguard Worker        <tr><th>CUPS_PRINTER_VARIABLE </th>        <td class="description">Can print on rolls and custom-size media</td></tr>
6090*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6091*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="http_encoding_e">http_encoding_e</a></h3>
6092*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP transfer encoding values</p>
6093*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6094*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6095*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_ENCODING_CHUNKED </th>        <td class="description">Data is chunked</td></tr>
6096*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_ENCODING_FIELDS </th>        <td class="description">Sending HTTP fields</td></tr>
6097*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_ENCODING_LENGTH </th>        <td class="description">Data is sent with Content-Length</td></tr>
6098*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6099*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="http_encryption_e">http_encryption_e</a></h3>
6100*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP encryption values</p>
6101*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6102*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6103*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_ENCRYPTION_ALWAYS </th>        <td class="description">Always encrypt (SSL)</td></tr>
6104*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_ENCRYPTION_IF_REQUESTED </th>        <td class="description">Encrypt if requested (TLS upgrade)</td></tr>
6105*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_ENCRYPTION_NEVER </th>        <td class="description">Never encrypt</td></tr>
6106*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_ENCRYPTION_REQUIRED </th>        <td class="description">Encryption is required (TLS upgrade)</td></tr>
6107*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6108*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="http_field_e">http_field_e</a></h3>
6109*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP field names</p>
6110*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6111*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6112*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_ACCEPT_ENCODING <span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span></th>        <td class="description">Accepting-Encoding field </td></tr>
6113*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_ACCEPT_LANGUAGE </th>        <td class="description">Accept-Language field</td></tr>
6114*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_ACCEPT_RANGES </th>        <td class="description">Accept-Ranges field</td></tr>
6115*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_ALLOW <span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span></th>        <td class="description">Allow field </td></tr>
6116*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_AUTHENTICATION_INFO <span class="info">&#160;CUPS 2.2.9)&#160;</span></th>        <td class="description">Authentication-Info field (</td></tr>
6117*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_AUTHORIZATION </th>        <td class="description">Authorization field</td></tr>
6118*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_CONNECTION </th>        <td class="description">Connection field</td></tr>
6119*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_CONTENT_ENCODING </th>        <td class="description">Content-Encoding field</td></tr>
6120*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_CONTENT_LANGUAGE </th>        <td class="description">Content-Language field</td></tr>
6121*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_CONTENT_LENGTH </th>        <td class="description">Content-Length field</td></tr>
6122*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_CONTENT_LOCATION </th>        <td class="description">Content-Location field</td></tr>
6123*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_CONTENT_MD5 </th>        <td class="description">Content-MD5 field</td></tr>
6124*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_CONTENT_RANGE </th>        <td class="description">Content-Range field</td></tr>
6125*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_CONTENT_TYPE </th>        <td class="description">Content-Type field</td></tr>
6126*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_CONTENT_VERSION </th>        <td class="description">Content-Version field</td></tr>
6127*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_DATE </th>        <td class="description">Date field</td></tr>
6128*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_HOST </th>        <td class="description">Host field</td></tr>
6129*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_IF_MODIFIED_SINCE </th>        <td class="description">If-Modified-Since field</td></tr>
6130*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_IF_UNMODIFIED_SINCE </th>        <td class="description">If-Unmodified-Since field</td></tr>
6131*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_KEEP_ALIVE </th>        <td class="description">Keep-Alive field</td></tr>
6132*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_LAST_MODIFIED </th>        <td class="description">Last-Modified field</td></tr>
6133*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_LINK </th>        <td class="description">Link field</td></tr>
6134*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_LOCATION </th>        <td class="description">Location field</td></tr>
6135*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_MAX </th>        <td class="description">Maximum field index</td></tr>
6136*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_RANGE </th>        <td class="description">Range field</td></tr>
6137*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_REFERER </th>        <td class="description">Referer field</td></tr>
6138*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_RETRY_AFTER </th>        <td class="description">Retry-After field</td></tr>
6139*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_SERVER <span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span></th>        <td class="description">Server field </td></tr>
6140*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_TRANSFER_ENCODING </th>        <td class="description">Transfer-Encoding field</td></tr>
6141*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_UNKNOWN </th>        <td class="description">Unknown field</td></tr>
6142*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_UPGRADE </th>        <td class="description">Upgrade field</td></tr>
6143*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_USER_AGENT </th>        <td class="description">User-Agent field</td></tr>
6144*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_FIELD_WWW_AUTHENTICATE </th>        <td class="description">WWW-Authenticate field</td></tr>
6145*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6146*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="http_keepalive_e">http_keepalive_e</a></h3>
6147*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP keep-alive values</p>
6148*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6149*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6150*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_KEEPALIVE_OFF </th>        <td class="description">No keep alive support</td></tr>
6151*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_KEEPALIVE_ON </th>        <td class="description">Use keep alive</td></tr>
6152*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6153*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="http_state_e">http_state_e</a></h3>
6154*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP state values; states
6155*5e7646d2SAndroid Build Coastguard Workerare server-oriented...</p>
6156*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6157*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6158*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_CONNECT </th>        <td class="description">CONNECT command, waiting for blank line</td></tr>
6159*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_DELETE </th>        <td class="description">DELETE command, waiting for blank line</td></tr>
6160*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_ERROR </th>        <td class="description">Error on socket</td></tr>
6161*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_GET </th>        <td class="description">GET command, waiting for blank line</td></tr>
6162*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_GET_SEND </th>        <td class="description">GET command, sending data</td></tr>
6163*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_HEAD </th>        <td class="description">HEAD command, waiting for blank line</td></tr>
6164*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_OPTIONS </th>        <td class="description">OPTIONS command, waiting for blank line</td></tr>
6165*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_POST </th>        <td class="description">POST command, waiting for blank line</td></tr>
6166*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_POST_RECV </th>        <td class="description">POST command, receiving data</td></tr>
6167*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_POST_SEND </th>        <td class="description">POST command, sending data</td></tr>
6168*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_PUT </th>        <td class="description">PUT command, waiting for blank line</td></tr>
6169*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_PUT_RECV </th>        <td class="description">PUT command, receiving data</td></tr>
6170*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_STATUS </th>        <td class="description">Command complete, sending status</td></tr>
6171*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_TRACE </th>        <td class="description">TRACE command, waiting for blank line</td></tr>
6172*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_UNKNOWN_METHOD <span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span></th>        <td class="description">Unknown request method, waiting for blank line </td></tr>
6173*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_UNKNOWN_VERSION <span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span></th>        <td class="description">Unknown request method, waiting for blank line </td></tr>
6174*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATE_WAITING </th>        <td class="description">Waiting for command</td></tr>
6175*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6176*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="http_status_e">http_status_e</a></h3>
6177*5e7646d2SAndroid Build Coastguard Worker        <p class="description">HTTP status codes</p>
6178*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6179*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6180*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_ACCEPTED </th>        <td class="description">DELETE command was successful</td></tr>
6181*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_BAD_GATEWAY </th>        <td class="description">Bad gateway</td></tr>
6182*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_BAD_REQUEST </th>        <td class="description">Bad request</td></tr>
6183*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_CONFLICT </th>        <td class="description">Request is self-conflicting</td></tr>
6184*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_CONTINUE </th>        <td class="description">Everything OK, keep going...</td></tr>
6185*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_CREATED </th>        <td class="description">PUT command was successful</td></tr>
6186*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_CUPS_AUTHORIZATION_CANCELED <span class="info">&#160;CUPS 1.4&#160;</span></th>        <td class="description">User canceled authorization </td></tr>
6187*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_CUPS_PKI_ERROR <span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span></th>        <td class="description">Error negotiating a secure connection </td></tr>
6188*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_ERROR </th>        <td class="description">An error response from httpXxxx()</td></tr>
6189*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_EXPECTATION_FAILED </th>        <td class="description">The expectation given in an Expect header field was not met</td></tr>
6190*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_FORBIDDEN </th>        <td class="description">Forbidden to access this URI</td></tr>
6191*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_FOUND </th>        <td class="description">Document was found at a different URI</td></tr>
6192*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_GATEWAY_TIMEOUT </th>        <td class="description">Gateway connection timed out</td></tr>
6193*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_GONE </th>        <td class="description">Server has gone away</td></tr>
6194*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_LENGTH_REQUIRED </th>        <td class="description">A content length or encoding is required</td></tr>
6195*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_METHOD_NOT_ALLOWED </th>        <td class="description">Method is not allowed</td></tr>
6196*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_MOVED_PERMANENTLY </th>        <td class="description">Document has moved permanently</td></tr>
6197*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_MULTIPLE_CHOICES </th>        <td class="description">Multiple files match request</td></tr>
6198*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_NONE <span class="info">&#160;CUPS 1.7/macOS 10.9&#160;</span></th>        <td class="description">No Expect value </td></tr>
6199*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_NOT_ACCEPTABLE </th>        <td class="description">Not Acceptable</td></tr>
6200*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_NOT_AUTHORITATIVE </th>        <td class="description">Information isn't authoritative</td></tr>
6201*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_NOT_FOUND </th>        <td class="description">URI was not found</td></tr>
6202*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_NOT_IMPLEMENTED </th>        <td class="description">Feature not implemented</td></tr>
6203*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_NOT_MODIFIED </th>        <td class="description">File not modified</td></tr>
6204*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_NOT_SUPPORTED </th>        <td class="description">HTTP version not supported</td></tr>
6205*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_NO_CONTENT </th>        <td class="description">Successful command, no new data</td></tr>
6206*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_OK </th>        <td class="description">OPTIONS/GET/HEAD/POST/TRACE command was successful</td></tr>
6207*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_PARTIAL_CONTENT </th>        <td class="description">Only a partial file was received/sent</td></tr>
6208*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_PAYMENT_REQUIRED </th>        <td class="description">Payment required</td></tr>
6209*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_PRECONDITION </th>        <td class="description">Precondition failed</td></tr>
6210*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_PROXY_AUTHENTICATION </th>        <td class="description">Proxy Authentication is Required</td></tr>
6211*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_REQUESTED_RANGE </th>        <td class="description">The requested range is not satisfiable</td></tr>
6212*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_REQUEST_TIMEOUT </th>        <td class="description">Request timed out</td></tr>
6213*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_REQUEST_TOO_LARGE </th>        <td class="description">Request entity too large</td></tr>
6214*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_RESET_CONTENT </th>        <td class="description">Content was reset/recreated</td></tr>
6215*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_SEE_OTHER </th>        <td class="description">See this other link</td></tr>
6216*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_SERVER_ERROR </th>        <td class="description">Internal server error</td></tr>
6217*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_SERVICE_UNAVAILABLE </th>        <td class="description">Service is unavailable</td></tr>
6218*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_SWITCHING_PROTOCOLS </th>        <td class="description">HTTP upgrade to TLS/SSL</td></tr>
6219*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_TEMPORARY_REDIRECT </th>        <td class="description">Temporary redirection</td></tr>
6220*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_UNAUTHORIZED </th>        <td class="description">Unauthorized to access host</td></tr>
6221*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_UNSUPPORTED_MEDIATYPE </th>        <td class="description">The requested media type is unsupported</td></tr>
6222*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_UPGRADE_REQUIRED </th>        <td class="description">Upgrade to SSL/TLS required</td></tr>
6223*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_URI_TOO_LONG </th>        <td class="description">URI too long</td></tr>
6224*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_STATUS_USE_PROXY </th>        <td class="description">Must use a proxy to access this URI</td></tr>
6225*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6226*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="http_trust_e"><span class="info">&#160;CUPS 2.0/OS 10.10&#160;</span>http_trust_e</a></h3>
6227*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Level of trust for credentials </p>
6228*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6229*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6230*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_TRUST_CHANGED </th>        <td class="description">Credentials have changed</td></tr>
6231*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_TRUST_EXPIRED </th>        <td class="description">Credentials are expired</td></tr>
6232*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_TRUST_INVALID </th>        <td class="description">Credentials are invalid</td></tr>
6233*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_TRUST_OK </th>        <td class="description">Credentials are OK/trusted</td></tr>
6234*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_TRUST_RENEWED </th>        <td class="description">Credentials have been renewed</td></tr>
6235*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_TRUST_UNKNOWN </th>        <td class="description">Credentials are unknown/new</td></tr>
6236*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6237*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="http_uri_coding_e">http_uri_coding_e</a></h3>
6238*5e7646d2SAndroid Build Coastguard Worker        <p class="description">URI en/decode flags</p>
6239*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6240*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6241*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_CODING_ALL </th>        <td class="description">En/decode everything</td></tr>
6242*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_CODING_HOSTNAME </th>        <td class="description">En/decode the hostname portion</td></tr>
6243*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_CODING_MOST </th>        <td class="description">En/decode all but the query</td></tr>
6244*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_CODING_NONE </th>        <td class="description">Don't en/decode anything</td></tr>
6245*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_CODING_QUERY </th>        <td class="description">En/decode the query portion</td></tr>
6246*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_CODING_RESOURCE </th>        <td class="description">En/decode the resource portion</td></tr>
6247*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_CODING_RFC6874 </th>        <td class="description">Use RFC 6874 address format</td></tr>
6248*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_CODING_USERNAME </th>        <td class="description">En/decode the username portion</td></tr>
6249*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6250*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="http_uri_status_e"><span class="info">&#160;CUPS 1.2&#160;</span>http_uri_status_e</a></h3>
6251*5e7646d2SAndroid Build Coastguard Worker        <p class="description">URI separation status </p>
6252*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6253*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6254*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_BAD_ARGUMENTS </th>        <td class="description">Bad arguments to function (error)</td></tr>
6255*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_BAD_HOSTNAME </th>        <td class="description">Bad hostname in URI (error)</td></tr>
6256*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_BAD_PORT </th>        <td class="description">Bad port number in URI (error)</td></tr>
6257*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_BAD_RESOURCE </th>        <td class="description">Bad resource in URI (error)</td></tr>
6258*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_BAD_SCHEME </th>        <td class="description">Bad scheme in URI (error)</td></tr>
6259*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_BAD_URI </th>        <td class="description">Bad/empty URI (error)</td></tr>
6260*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_BAD_USERNAME </th>        <td class="description">Bad username in URI (error)</td></tr>
6261*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_MISSING_RESOURCE </th>        <td class="description">Missing resource in URI (warning)</td></tr>
6262*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_MISSING_SCHEME </th>        <td class="description">Missing scheme in URI (warning)</td></tr>
6263*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_OK </th>        <td class="description">URI decoded OK</td></tr>
6264*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_OVERFLOW </th>        <td class="description">URI buffer for httpAssembleURI is too small</td></tr>
6265*5e7646d2SAndroid Build Coastguard Worker        <tr><th>HTTP_URI_STATUS_UNKNOWN_SCHEME </th>        <td class="description">Unknown scheme in URI (warning)</td></tr>
6266*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6267*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_finishings_e">ipp_finishings_e</a></h3>
6268*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Finishings values</p>
6269*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6270*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6271*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_BALE </th>        <td class="description">Bale (any type)</td></tr>
6272*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_BIND </th>        <td class="description">Bind</td></tr>
6273*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_BIND_BOTTOM </th>        <td class="description">Bind on bottom</td></tr>
6274*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_BIND_LEFT </th>        <td class="description">Bind on left</td></tr>
6275*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_BIND_RIGHT </th>        <td class="description">Bind on right</td></tr>
6276*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_BIND_TOP </th>        <td class="description">Bind on top</td></tr>
6277*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_BOOKLET_MAKER </th>        <td class="description">Fold to make booklet</td></tr>
6278*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_COAT </th>        <td class="description">Apply protective liquid or powder coating</td></tr>
6279*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_COVER </th>        <td class="description">Add cover</td></tr>
6280*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_EDGE_STITCH </th>        <td class="description">Stitch along any side</td></tr>
6281*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_EDGE_STITCH_BOTTOM </th>        <td class="description">Stitch along bottom edge</td></tr>
6282*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_EDGE_STITCH_LEFT </th>        <td class="description">Stitch along left side</td></tr>
6283*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_EDGE_STITCH_RIGHT </th>        <td class="description">Stitch along right side</td></tr>
6284*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_EDGE_STITCH_TOP </th>        <td class="description">Stitch along top edge</td></tr>
6285*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD </th>        <td class="description">Fold (any type)</td></tr>
6286*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_ACCORDION </th>        <td class="description">Accordion-fold the paper vertically into four sections</td></tr>
6287*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_DOUBLE_GATE </th>        <td class="description">Fold the top and bottom quarters of the paper towards the midline, then fold in half vertically</td></tr>
6288*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_ENGINEERING_Z </th>        <td class="description">Fold the paper vertically into two small sections and one larger, forming an elongated Z</td></tr>
6289*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_GATE </th>        <td class="description">Fold the top and bottom quarters of the paper towards the midline</td></tr>
6290*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_HALF </th>        <td class="description">Fold the paper in half vertically</td></tr>
6291*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_HALF_Z </th>        <td class="description">Fold the paper in half horizontally, then Z-fold the paper vertically</td></tr>
6292*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_LEFT_GATE </th>        <td class="description">Fold the top quarter of the paper towards the midline</td></tr>
6293*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_LETTER </th>        <td class="description">Fold the paper into three sections vertically; sometimes also known as a C fold</td></tr>
6294*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_PARALLEL </th>        <td class="description">Fold the paper in half vertically two times, yielding four sections</td></tr>
6295*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_POSTER </th>        <td class="description">Fold the paper in half horizontally and vertically; sometimes also called a cross fold</td></tr>
6296*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_RIGHT_GATE </th>        <td class="description">Fold the bottom quarter of the paper towards the midline</td></tr>
6297*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_FOLD_Z </th>        <td class="description">Fold the paper vertically into three sections, forming a Z</td></tr>
6298*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_JOG_OFFSET </th>        <td class="description">Offset for binding (any type)</td></tr>
6299*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_LAMINATE </th>        <td class="description">Apply protective (solid) material</td></tr>
6300*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_NONE </th>        <td class="description">No finishing</td></tr>
6301*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH </th>        <td class="description">Punch (any location/count)</td></tr>
6302*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_BOTTOM_LEFT </th>        <td class="description">Punch 1 hole bottom left</td></tr>
6303*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_BOTTOM_RIGHT </th>        <td class="description">Punch 1 hole bottom right</td></tr>
6304*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_DUAL_BOTTOM </th>        <td class="description">Punch 2 holes bottom edge</td></tr>
6305*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_DUAL_LEFT </th>        <td class="description">Punch 2 holes left side</td></tr>
6306*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_DUAL_RIGHT </th>        <td class="description">Punch 2 holes right side</td></tr>
6307*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_DUAL_TOP </th>        <td class="description">Punch 2 holes top edge</td></tr>
6308*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_MULTIPLE_BOTTOM </th>        <td class="description">Punch multiple holes bottom edge</td></tr>
6309*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_MULTIPLE_LEFT </th>        <td class="description">Punch multiple holes left side</td></tr>
6310*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_MULTIPLE_RIGHT </th>        <td class="description">Punch multiple holes right side</td></tr>
6311*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_MULTIPLE_TOP </th>        <td class="description">Punch multiple holes top edge</td></tr>
6312*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_QUAD_BOTTOM </th>        <td class="description">Punch 4 holes bottom edge</td></tr>
6313*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_QUAD_LEFT </th>        <td class="description">Punch 4 holes left side</td></tr>
6314*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_QUAD_RIGHT </th>        <td class="description">Punch 4 holes right side</td></tr>
6315*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_QUAD_TOP </th>        <td class="description">Punch 4 holes top edge</td></tr>
6316*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_TOP_LEFT </th>        <td class="description">Punch 1 hole top left</td></tr>
6317*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_TOP_RIGHT </th>        <td class="description">Punch 1 hole top right</td></tr>
6318*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_TRIPLE_BOTTOM </th>        <td class="description">Punch 3 holes bottom edge</td></tr>
6319*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_TRIPLE_LEFT </th>        <td class="description">Punch 3 holes left side</td></tr>
6320*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_TRIPLE_RIGHT </th>        <td class="description">Punch 3 holes right side</td></tr>
6321*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_PUNCH_TRIPLE_TOP </th>        <td class="description">Punch 3 holes top edge</td></tr>
6322*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_SADDLE_STITCH </th>        <td class="description">Staple interior</td></tr>
6323*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE </th>        <td class="description">Staple (any location/method)</td></tr>
6324*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_BOTTOM_LEFT </th>        <td class="description">Staple bottom left corner</td></tr>
6325*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT </th>        <td class="description">Staple bottom right corner</td></tr>
6326*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_DUAL_BOTTOM </th>        <td class="description">Two staples on bottom</td></tr>
6327*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_DUAL_LEFT </th>        <td class="description">Two staples on left</td></tr>
6328*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_DUAL_RIGHT </th>        <td class="description">Two staples on right</td></tr>
6329*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_DUAL_TOP </th>        <td class="description">Two staples on top</td></tr>
6330*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_TOP_LEFT </th>        <td class="description">Staple top left corner</td></tr>
6331*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_TOP_RIGHT </th>        <td class="description">Staple top right corner</td></tr>
6332*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_TRIPLE_BOTTOM </th>        <td class="description">Three staples on bottom</td></tr>
6333*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_TRIPLE_LEFT </th>        <td class="description">Three staples on left</td></tr>
6334*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_TRIPLE_RIGHT </th>        <td class="description">Three staples on right</td></tr>
6335*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_STAPLE_TRIPLE_TOP </th>        <td class="description">Three staples on top</td></tr>
6336*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_TRIM </th>        <td class="description">Trim (any type)</td></tr>
6337*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_TRIM_AFTER_COPIES </th>        <td class="description">Trim output after each copy</td></tr>
6338*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_TRIM_AFTER_DOCUMENTS </th>        <td class="description">Trim output after each document</td></tr>
6339*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_TRIM_AFTER_JOB </th>        <td class="description">Trim output after job</td></tr>
6340*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_FINISHINGS_TRIM_AFTER_PAGES </th>        <td class="description">Trim output after each page</td></tr>
6341*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6342*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_jstate_e">ipp_jstate_e</a></h3>
6343*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Job states</p>
6344*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6345*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6346*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_JSTATE_ABORTED </th>        <td class="description">Job has aborted due to error</td></tr>
6347*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_JSTATE_CANCELED </th>        <td class="description">Job has been canceled</td></tr>
6348*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_JSTATE_COMPLETED </th>        <td class="description">Job has completed successfully</td></tr>
6349*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_JSTATE_HELD </th>        <td class="description">Job is held for printing</td></tr>
6350*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_JSTATE_PENDING </th>        <td class="description">Job is waiting to be printed</td></tr>
6351*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_JSTATE_PROCESSING </th>        <td class="description">Job is currently printing</td></tr>
6352*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_JSTATE_STOPPED </th>        <td class="description">Job has been stopped</td></tr>
6353*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6354*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_op_e">ipp_op_e</a></h3>
6355*5e7646d2SAndroid Build Coastguard Worker        <p class="description">IPP operations</p>
6356*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6357*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6358*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_ALLOCATE_PRINTER_RESOURCES </th>        <td class="description">Allocate-Printer-Resources: Use resources for a printer.</td></tr>
6359*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CANCEL_CURRENT_JOB </th>        <td class="description">Cancel-Current-Job: Cancel the current job</td></tr>
6360*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CANCEL_JOB </th>        <td class="description">Cancel-Job: Cancel a job</td></tr>
6361*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CANCEL_JOBS </th>        <td class="description">Cancel-Jobs: Cancel all jobs (administrative)</td></tr>
6362*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CANCEL_MY_JOBS </th>        <td class="description">Cancel-My-Jobs: Cancel a user's jobs</td></tr>
6363*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CANCEL_RESOURCE </th>        <td class="description">Cancel-Resource: Uninstall a resource.</td></tr>
6364*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CANCEL_SUBSCRIPTION <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">Cancel-Subscription: Cancel a subscription </td></tr>
6365*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CLOSE_JOB </th>        <td class="description">Close-Job: Close a job and start printing</td></tr>
6366*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CREATE_JOB </th>        <td class="description">Create-Job: Create an empty print job</td></tr>
6367*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CREATE_JOB_SUBSCRIPTIONS <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">Create-Job-Subscriptions: Create one of more job subscriptions </td></tr>
6368*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CREATE_PRINTER </th>        <td class="description">Create-Printer: Create a new service.</td></tr>
6369*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CREATE_PRINTER_SUBSCRIPTIONS <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">Create-Printer-Subscriptions: Create one or more printer subscriptions </td></tr>
6370*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CREATE_RESOURCE </th>        <td class="description">Create-Resource: Create a new (empty) resource.</td></tr>
6371*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CREATE_RESOURCE_SUBSCRIPTIONS </th>        <td class="description">Create-Resource-Subscriptions: Create event subscriptions for a resource.</td></tr>
6372*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CREATE_SYSTEM_SUBSCRIPTIONS </th>        <td class="description">Create-System-Subscriptions: Create event subscriptions for a system.</td></tr>
6373*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_ADD_MODIFY_CLASS </th>        <td class="description">CUPS-Add-Modify-Class: Add or modify a class</td></tr>
6374*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_ADD_MODIFY_PRINTER </th>        <td class="description">CUPS-Add-Modify-Printer: Add or modify a printer</td></tr>
6375*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_AUTHENTICATE_JOB <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">CUPS-Authenticate-Job: Authenticate a job </td></tr>
6376*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_CREATE_LOCAL_PRINTER <span class="info">&#160;CUPS 2.2&#160;</span></th>        <td class="description">CUPS-Create-Local-Printer: Create a local (temporary) printer </td></tr>
6377*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_DELETE_CLASS </th>        <td class="description">CUPS-Delete-Class: Delete a class</td></tr>
6378*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_DELETE_PRINTER </th>        <td class="description">CUPS-Delete-Printer: Delete a printer</td></tr>
6379*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_GET_DEFAULT </th>        <td class="description">CUPS-Get-Default: Get the default printer</td></tr>
6380*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_GET_DEVICES <span class="info">&#160;DEPRECATED&#160;</span></th>        <td class="description">CUPS-Get-Devices: Get a list of supported devices </td></tr>
6381*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_GET_DOCUMENT <span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span></th>        <td class="description">CUPS-Get-Document: Get a document file </td></tr>
6382*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_GET_PPD <span class="info">&#160;DEPRECATED&#160;</span></th>        <td class="description">CUPS-Get-PPD: Get a PPD file </td></tr>
6383*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_GET_PPDS <span class="info">&#160;DEPRECATED&#160;</span></th>        <td class="description">CUPS-Get-PPDs: Get a list of supported drivers </td></tr>
6384*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_GET_PRINTERS </th>        <td class="description">CUPS-Get-Printers: Get a list of printers and/or classes</td></tr>
6385*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_INVALID </th>        <td class="description">Invalid operation name for <a href="#ippOpValue"><code>ippOpValue</code></a></td></tr>
6386*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_MOVE_JOB </th>        <td class="description">CUPS-Move-Job: Move a job to a different printer</td></tr>
6387*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_CUPS_SET_DEFAULT </th>        <td class="description">CUPS-Set-Default: Set the default printer</td></tr>
6388*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_DEALLOCATE_PRINTER_RESOURCES </th>        <td class="description">Deallocate-Printer-Resources: Stop using resources for a printer.</td></tr>
6389*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_DELETE_PRINTER </th>        <td class="description">Delete-Printer: Delete an existing service.</td></tr>
6390*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_DISABLE_ALL_PRINTERS </th>        <td class="description">Disable-All-Printers: Stop accepting new jobs on all services.</td></tr>
6391*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_DISABLE_PRINTER </th>        <td class="description">Disable-Printer: Reject new jobs for a printer</td></tr>
6392*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_ENABLE_ALL_PRINTERS </th>        <td class="description">Enable-All-Printers: Start accepting new jobs on all services.</td></tr>
6393*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_ENABLE_PRINTER </th>        <td class="description">Enable-Printer: Accept new jobs for a printer</td></tr>
6394*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_GET_JOBS </th>        <td class="description">Get-Jobs: Get a list of jobs</td></tr>
6395*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_GET_JOB_ATTRIBUTES </th>        <td class="description">Get-Job-Attribute: Get information about a job</td></tr>
6396*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_GET_NOTIFICATIONS <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">Get-Notifications: Get notification events </td></tr>
6397*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_GET_PRINTERS </th>        <td class="description">Get-Printers: Get a list of services.</td></tr>
6398*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_GET_PRINTER_ATTRIBUTES </th>        <td class="description">Get-Printer-Attributes: Get information about a printer</td></tr>
6399*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_GET_PRINTER_SUPPORTED_VALUES </th>        <td class="description">Get-Printer-Supported-Values: Get supported values</td></tr>
6400*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_GET_SUBSCRIPTIONS <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">Get-Subscriptions: Get list of subscriptions </td></tr>
6401*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_GET_SUBSCRIPTION_ATTRIBUTES <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">Get-Subscription-Attributes: Get subscription information </td></tr>
6402*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_GET_SYSTEM_ATTRIBUTES </th>        <td class="description">Get-System-Attributes: Get system object attributes.</td></tr>
6403*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_GET_SYSTEM_SUPPORTED_VALUES </th>        <td class="description">Get-System-Supported-Values: Get supported values for system object attributes.</td></tr>
6404*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_HOLD_JOB </th>        <td class="description">Hold-Job: Hold a job for printing</td></tr>
6405*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_HOLD_NEW_JOBS </th>        <td class="description">Hold-New-Jobs: Hold new jobs</td></tr>
6406*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_IDENTIFY_PRINTER </th>        <td class="description">Identify-Printer: Make the printer beep, flash, or display a message for identification</td></tr>
6407*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_INSTALL_RESOURCE </th>        <td class="description">Install-Resource: Install a resource.</td></tr>
6408*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_PAUSE_ALL_PRINTERS </th>        <td class="description">Pause-All-Printers: Stop all services immediately.</td></tr>
6409*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_PAUSE_ALL_PRINTERS_AFTER_CURRENT_JOB </th>        <td class="description">Pause-All-Printers-After-Current-Job: Stop all services after processing the current jobs.</td></tr>
6410*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_PAUSE_PRINTER </th>        <td class="description">Pause-Printer: Stop a printer</td></tr>
6411*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_PAUSE_PRINTER_AFTER_CURRENT_JOB </th>        <td class="description">Pause-Printer-After-Current-Job: Stop printer after the current job</td></tr>
6412*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_PRINT_JOB </th>        <td class="description">Print-Job: Print a single file</td></tr>
6413*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_PROMOTE_JOB </th>        <td class="description">Promote-Job: Promote a job to print sooner</td></tr>
6414*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_REGISTER_OUTPUT_DEVICE </th>        <td class="description">Register-Output-Device: Register a remote service.</td></tr>
6415*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_RELEASE_HELD_NEW_JOBS </th>        <td class="description">Release-Held-New-Jobs: Release new jobs that were previously held</td></tr>
6416*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_RELEASE_JOB </th>        <td class="description">Release-Job: Release a job for printing</td></tr>
6417*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_RENEW_SUBSCRIPTION <span class="info">&#160;CUPS 1.2/macOS 10.5&#160;</span></th>        <td class="description">Renew-Subscription: Renew a printer subscription </td></tr>
6418*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_RESTART_JOB <span class="info">&#160;DEPRECATED&#160;</span></th>        <td class="description">Restart-Job: Reprint a job </td></tr>
6419*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_RESTART_SYSTEM </th>        <td class="description">Restart-System: Restart all services.</td></tr>
6420*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_RESUME_ALL_PRINTERS </th>        <td class="description">Resume-All-Printers: Start job processing on all services.</td></tr>
6421*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_RESUME_JOB </th>        <td class="description">Resume-Job: Resume the current job</td></tr>
6422*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_RESUME_PRINTER </th>        <td class="description">Resume-Printer: Start a printer</td></tr>
6423*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_SCHEDULE_JOB_AFTER </th>        <td class="description">Schedule-Job-After: Schedule a job to print after another</td></tr>
6424*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_SEND_DOCUMENT </th>        <td class="description">Send-Document: Add a file to a job</td></tr>
6425*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_SEND_RESOURCE_DATA </th>        <td class="description">Send-Resource-Data: Upload the data for a resource.</td></tr>
6426*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_SET_JOB_ATTRIBUTES </th>        <td class="description">Set-Job-Attributes: Set job values</td></tr>
6427*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_SET_PRINTER_ATTRIBUTES </th>        <td class="description">Set-Printer-Attributes: Set printer values</td></tr>
6428*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_SET_RESOURCE_ATTRIBUTES </th>        <td class="description">Set-Resource-Attributes: Set resource object  attributes.</td></tr>
6429*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_SET_SYSTEM_ATTRIBUTES </th>        <td class="description">Set-System-Attributes: Set system object attributes.</td></tr>
6430*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_SHUTDOWN_ALL_PRINTERS </th>        <td class="description">Shutdown-All-Printers: Shutdown all services.</td></tr>
6431*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_SHUTDOWN_ONE_PRINTER </th>        <td class="description">Shutdown-One-Printer: Shutdown a service.</td></tr>
6432*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_STARTUP_ALL_PRINTERS </th>        <td class="description">Startup-All-Printers: Startup all services.</td></tr>
6433*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_STARTUP_ONE_PRINTER </th>        <td class="description">Startup-One-Printer: Start a service.</td></tr>
6434*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_SUSPEND_CURRENT_JOB </th>        <td class="description">Suspend-Current-Job: Suspend the current job</td></tr>
6435*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_OP_VALIDATE_JOB </th>        <td class="description">Validate-Job: Validate job values prior to submission</td></tr>
6436*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6437*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_orient_e">ipp_orient_e</a></h3>
6438*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Orientation values</p>
6439*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6440*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6441*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_ORIENT_LANDSCAPE </th>        <td class="description">90 degrees counter-clockwise</td></tr>
6442*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_ORIENT_NONE </th>        <td class="description">No rotation</td></tr>
6443*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_ORIENT_PORTRAIT </th>        <td class="description">No rotation</td></tr>
6444*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_ORIENT_REVERSE_LANDSCAPE </th>        <td class="description">90 degrees clockwise</td></tr>
6445*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_ORIENT_REVERSE_PORTRAIT </th>        <td class="description">180 degrees</td></tr>
6446*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6447*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_pstate_e">ipp_pstate_e</a></h3>
6448*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Printer state values</p>
6449*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6450*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6451*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_PSTATE_IDLE </th>        <td class="description">Printer is idle</td></tr>
6452*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_PSTATE_PROCESSING </th>        <td class="description">Printer is working</td></tr>
6453*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_PSTATE_STOPPED </th>        <td class="description">Printer is stopped</td></tr>
6454*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6455*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_quality_e">ipp_quality_e</a></h3>
6456*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Print quality values</p>
6457*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6458*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6459*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_QUALITY_DRAFT </th>        <td class="description">Draft quality</td></tr>
6460*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_QUALITY_HIGH </th>        <td class="description">High quality</td></tr>
6461*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_QUALITY_NORMAL </th>        <td class="description">Normal quality</td></tr>
6462*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6463*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_res_e">ipp_res_e</a></h3>
6464*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Resolution units</p>
6465*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6466*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6467*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_RES_PER_CM </th>        <td class="description">Pixels per centimeter</td></tr>
6468*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_RES_PER_INCH </th>        <td class="description">Pixels per inch</td></tr>
6469*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6470*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_rstate_e">ipp_rstate_e</a></h3>
6471*5e7646d2SAndroid Build Coastguard Worker        <p class="description">resource-state values</p>
6472*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6473*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6474*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_RSTATE_ABORTED </th>        <td class="description">Resource has been aborted and is pending deletion.</td></tr>
6475*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_RSTATE_AVAILABLE </th>        <td class="description">Resource is available for installation.</td></tr>
6476*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_RSTATE_CANCELED </th>        <td class="description">Resource has been canceled and is pending deletion.</td></tr>
6477*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_RSTATE_INSTALLED </th>        <td class="description">Resource is installed.</td></tr>
6478*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_RSTATE_PENDING </th>        <td class="description">Resource is created but has no data yet.</td></tr>
6479*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6480*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_sstate_e">ipp_sstate_e</a></h3>
6481*5e7646d2SAndroid Build Coastguard Worker        <p class="description">system-state values</p>
6482*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6483*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6484*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_SSTATE_IDLE </th>        <td class="description">At least one printer is idle and none are processing a job.</td></tr>
6485*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_SSTATE_PROCESSING </th>        <td class="description">At least one printer is processing a job.</td></tr>
6486*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_SSTATE_STOPPED </th>        <td class="description">All printers are stopped.</td></tr>
6487*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6488*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_state_e">ipp_state_e</a></h3>
6489*5e7646d2SAndroid Build Coastguard Worker        <p class="description">ipp_t state values</p>
6490*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6491*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6492*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATE_ATTRIBUTE </th>        <td class="description">One or more attributes need to be sent/received</td></tr>
6493*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATE_DATA </th>        <td class="description">IPP request data needs to be sent/received</td></tr>
6494*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATE_ERROR </th>        <td class="description">An error occurred</td></tr>
6495*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATE_HEADER </th>        <td class="description">The request header needs to be sent/received</td></tr>
6496*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATE_IDLE </th>        <td class="description">Nothing is happening/request completed</td></tr>
6497*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6498*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_status_e">ipp_status_e</a></h3>
6499*5e7646d2SAndroid Build Coastguard Worker        <p class="description">IPP status code values</p>
6500*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6501*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6502*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_CUPS_INVALID </th>        <td class="description">Invalid status name for <a href="#ippErrorValue"><code>ippErrorValue</code></a></td></tr>
6503*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_ACCOUNT_AUTHORIZATION_FAILED </th>        <td class="description">client-error-account-authorization-failed</td></tr>
6504*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_ACCOUNT_CLOSED </th>        <td class="description">client-error-account-closed</td></tr>
6505*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_ACCOUNT_INFO_NEEDED </th>        <td class="description">client-error-account-info-needed</td></tr>
6506*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_ACCOUNT_LIMIT_REACHED </th>        <td class="description">client-error-account-limit-reached</td></tr>
6507*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_ATTRIBUTES_NOT_SETTABLE </th>        <td class="description">client-error-attributes-not-settable</td></tr>
6508*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_ATTRIBUTES_OR_VALUES </th>        <td class="description">client-error-attributes-or-values-not-supported</td></tr>
6509*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_BAD_REQUEST </th>        <td class="description">client-error-bad-request</td></tr>
6510*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_BUSY </th>        <td class="description">server-error-busy</td></tr>
6511*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_CHARSET </th>        <td class="description">client-error-charset-not-supported</td></tr>
6512*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_COMPRESSION_ERROR </th>        <td class="description">client-error-compression-error</td></tr>
6513*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_COMPRESSION_NOT_SUPPORTED </th>        <td class="description">client-error-compression-not-supported</td></tr>
6514*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_CONFLICTING </th>        <td class="description">client-error-conflicting-attributes</td></tr>
6515*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_CUPS_ACCOUNT_AUTHORIZATION_FAILED <span class="info">&#160;DEPRECATED&#160;</span></th>        <td class="description">cups-error-account-authorization-failed </td></tr>
6516*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_CUPS_ACCOUNT_CLOSED </th>        <td class="description">cups-error-account-closed @deprecate@</td></tr>
6517*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_CUPS_ACCOUNT_INFO_NEEDED <span class="info">&#160;DEPRECATED&#160;</span></th>        <td class="description">cups-error-account-info-needed </td></tr>
6518*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_CUPS_ACCOUNT_LIMIT_REACHED <span class="info">&#160;DEPRECATED&#160;</span></th>        <td class="description">cups-error-account-limit-reached </td></tr>
6519*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_CUPS_AUTHENTICATION_CANCELED <span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span></th>        <td class="description">cups-authentication-canceled - Authentication canceled by user </td></tr>
6520*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_CUPS_PKI <span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span></th>        <td class="description">cups-pki-error - Error negotiating a secure connection </td></tr>
6521*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_CUPS_UPGRADE_REQUIRED <span class="info">&#160;CUPS 1.5/macOS 10.7&#160;</span></th>        <td class="description">cups-upgrade-required - TLS upgrade required </td></tr>
6522*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_DEVICE </th>        <td class="description">server-error-device-error</td></tr>
6523*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_DOCUMENT_ACCESS </th>        <td class="description">client-error-document-access-error</td></tr>
6524*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_DOCUMENT_FORMAT_ERROR </th>        <td class="description">client-error-document-format-error</td></tr>
6525*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_DOCUMENT_FORMAT_NOT_SUPPORTED </th>        <td class="description">client-error-document-format-not-supported</td></tr>
6526*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_DOCUMENT_PASSWORD </th>        <td class="description">client-error-document-password-error</td></tr>
6527*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_DOCUMENT_PERMISSION </th>        <td class="description">client-error-document-permission-error</td></tr>
6528*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_DOCUMENT_SECURITY </th>        <td class="description">client-error-document-security-error</td></tr>
6529*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_DOCUMENT_UNPRINTABLE </th>        <td class="description">client-error-document-unprintable-error</td></tr>
6530*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_FORBIDDEN </th>        <td class="description">client-error-forbidden</td></tr>
6531*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_GONE </th>        <td class="description">client-error-gone</td></tr>
6532*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_IGNORED_ALL_SUBSCRIPTIONS </th>        <td class="description">client-error-ignored-all-subscriptions</td></tr>
6533*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_INTERNAL </th>        <td class="description">server-error-internal-error</td></tr>
6534*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_JOB_CANCELED </th>        <td class="description">server-error-job-canceled</td></tr>
6535*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_MULTIPLE_JOBS_NOT_SUPPORTED </th>        <td class="description">server-error-multiple-document-jobs-not-supported</td></tr>
6536*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_NOT_ACCEPTING_JOBS </th>        <td class="description">server-error-not-accepting-jobs</td></tr>
6537*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_NOT_AUTHENTICATED </th>        <td class="description">client-error-not-authenticated</td></tr>
6538*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_NOT_AUTHORIZED </th>        <td class="description">client-error-not-authorized</td></tr>
6539*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_NOT_FETCHABLE </th>        <td class="description">client-error-not-fetchable</td></tr>
6540*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_NOT_FOUND </th>        <td class="description">client-error-not-found</td></tr>
6541*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_NOT_POSSIBLE </th>        <td class="description">client-error-not-possible</td></tr>
6542*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_OPERATION_NOT_SUPPORTED </th>        <td class="description">server-error-operation-not-supported</td></tr>
6543*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_PRINTER_IS_DEACTIVATED </th>        <td class="description">server-error-printer-is-deactivated</td></tr>
6544*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_REQUEST_ENTITY </th>        <td class="description">client-error-request-entity-too-large</td></tr>
6545*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_REQUEST_VALUE </th>        <td class="description">client-error-request-value-too-long</td></tr>
6546*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_SERVICE_UNAVAILABLE </th>        <td class="description">server-error-service-unavailable</td></tr>
6547*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_TEMPORARY </th>        <td class="description">server-error-temporary-error</td></tr>
6548*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_TIMEOUT </th>        <td class="description">client-error-timeout</td></tr>
6549*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_TOO_MANY_DOCUMENTS </th>        <td class="description">server-error-too-many-documents</td></tr>
6550*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_TOO_MANY_JOBS </th>        <td class="description">server-error-too-many-jobs</td></tr>
6551*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_TOO_MANY_SUBSCRIPTIONS </th>        <td class="description">client-error-too-many-subscriptions</td></tr>
6552*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_URI_SCHEME </th>        <td class="description">client-error-uri-scheme-not-supported</td></tr>
6553*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_ERROR_VERSION_NOT_SUPPORTED </th>        <td class="description">server-error-version-not-supported</td></tr>
6554*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_OK </th>        <td class="description">successful-ok</td></tr>
6555*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_OK_CONFLICTING </th>        <td class="description">successful-ok-conflicting-attributes</td></tr>
6556*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_OK_EVENTS_COMPLETE </th>        <td class="description">successful-ok-events-complete</td></tr>
6557*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_OK_IGNORED_OR_SUBSTITUTED </th>        <td class="description">successful-ok-ignored-or-substituted-attributes</td></tr>
6558*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_OK_IGNORED_SUBSCRIPTIONS </th>        <td class="description">successful-ok-ignored-subscriptions</td></tr>
6559*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_STATUS_OK_TOO_MANY_EVENTS </th>        <td class="description">successful-ok-too-many-events</td></tr>
6560*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6561*5e7646d2SAndroid Build Coastguard Worker      <h3 class="enumeration"><a id="ipp_tag_e">ipp_tag_e</a></h3>
6562*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Value and group tag values for attributes</p>
6563*5e7646d2SAndroid Build Coastguard Worker      <h4 class="constants">Constants</h4>
6564*5e7646d2SAndroid Build Coastguard Worker      <table class="list"><tbody>
6565*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_ADMINDEFINE </th>        <td class="description">Admin-defined value</td></tr>
6566*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_BOOLEAN </th>        <td class="description">Boolean value</td></tr>
6567*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_CHARSET </th>        <td class="description">Character set value</td></tr>
6568*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_CUPS_INVALID </th>        <td class="description">Invalid tag name for <a href="#ippTagValue"><code>ippTagValue</code></a></td></tr>
6569*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_DATE </th>        <td class="description">Date/time value</td></tr>
6570*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_DEFAULT </th>        <td class="description">Default value</td></tr>
6571*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_DELETEATTR </th>        <td class="description">Delete-attribute value</td></tr>
6572*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_DOCUMENT </th>        <td class="description">Document group</td></tr>
6573*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_END </th>        <td class="description">End-of-attributes</td></tr>
6574*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_ENUM </th>        <td class="description">Enumeration value</td></tr>
6575*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_EVENT_NOTIFICATION </th>        <td class="description">Event group</td></tr>
6576*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_INTEGER </th>        <td class="description">Integer value</td></tr>
6577*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_JOB </th>        <td class="description">Job group</td></tr>
6578*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_KEYWORD </th>        <td class="description">Keyword value</td></tr>
6579*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_LANGUAGE </th>        <td class="description">Language value</td></tr>
6580*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_MIMETYPE </th>        <td class="description">MIME media type value</td></tr>
6581*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_NAME </th>        <td class="description">Name value</td></tr>
6582*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_NAMELANG </th>        <td class="description">Name-with-language value</td></tr>
6583*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_NOTSETTABLE </th>        <td class="description">Not-settable value</td></tr>
6584*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_NOVALUE </th>        <td class="description">No-value value</td></tr>
6585*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_OPERATION </th>        <td class="description">Operation group</td></tr>
6586*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_PRINTER </th>        <td class="description">Printer group</td></tr>
6587*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_RANGE </th>        <td class="description">Range value</td></tr>
6588*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_RESOLUTION </th>        <td class="description">Resolution value</td></tr>
6589*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_RESOURCE </th>        <td class="description">Resource group</td></tr>
6590*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_STRING </th>        <td class="description">Octet string value</td></tr>
6591*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_SUBSCRIPTION </th>        <td class="description">Subscription group</td></tr>
6592*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_SYSTEM </th>        <td class="description">System group</td></tr>
6593*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_TEXT </th>        <td class="description">Text value</td></tr>
6594*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_TEXTLANG </th>        <td class="description">Text-with-language value</td></tr>
6595*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_UNKNOWN </th>        <td class="description">Unknown value</td></tr>
6596*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_UNSUPPORTED_GROUP </th>        <td class="description">Unsupported attributes group</td></tr>
6597*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_UNSUPPORTED_VALUE </th>        <td class="description">Unsupported value</td></tr>
6598*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_URI </th>        <td class="description">URI value</td></tr>
6599*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_URISCHEME </th>        <td class="description">URI scheme value</td></tr>
6600*5e7646d2SAndroid Build Coastguard Worker        <tr><th>IPP_TAG_ZERO </th>        <td class="description">Zero tag - used for separators</td></tr>
6601*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
6602*5e7646d2SAndroid Build Coastguard Worker    </div>
6603*5e7646d2SAndroid Build Coastguard Worker  </body>
6604*5e7646d2SAndroid Build Coastguard Worker</html>
6605