xref: /aosp_15_r20/external/libcups/doc/help/api-admin.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>Administration APIs</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="Unknown">
10*5e7646d2SAndroid Build Coastguard Worker    <meta name="copyright" content="Unknown">
11*5e7646d2SAndroid Build Coastguard Worker    <meta name="version" content="0.0">
12*5e7646d2SAndroid Build Coastguard Worker    <style type="text/css"><!--
13*5e7646d2SAndroid Build Coastguard WorkerBODY {
14*5e7646d2SAndroid Build Coastguard Worker  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
15*5e7646d2SAndroid Build Coastguard Worker}
16*5e7646d2SAndroid Build Coastguard Worker
17*5e7646d2SAndroid Build Coastguard WorkerH1, H2, H3, H4, H5, H6, P, TD, TH {
18*5e7646d2SAndroid Build Coastguard Worker  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
19*5e7646d2SAndroid Build Coastguard Worker}
20*5e7646d2SAndroid Build Coastguard Worker
21*5e7646d2SAndroid Build Coastguard WorkerH1 { font-size: 2em; }
22*5e7646d2SAndroid Build Coastguard WorkerH2 { font-size: 1.75em; }
23*5e7646d2SAndroid Build Coastguard WorkerH3 { font-size: 1.5em; }
24*5e7646d2SAndroid Build Coastguard WorkerH4 { font-size: 1.25em; }
25*5e7646d2SAndroid Build Coastguard Worker
26*5e7646d2SAndroid Build Coastguard WorkerKBD {
27*5e7646d2SAndroid Build Coastguard Worker  font-family: monaco, courier, monospace;
28*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
29*5e7646d2SAndroid Build Coastguard Worker}
30*5e7646d2SAndroid Build Coastguard Worker
31*5e7646d2SAndroid Build Coastguard WorkerPRE {
32*5e7646d2SAndroid Build Coastguard Worker  font-family: monaco, courier, monospace;
33*5e7646d2SAndroid Build Coastguard Worker}
34*5e7646d2SAndroid Build Coastguard Worker
35*5e7646d2SAndroid Build Coastguard WorkerBLOCKQUOTE {
36*5e7646d2SAndroid Build Coastguard Worker  border-left: solid 2px #777;
37*5e7646d2SAndroid Build Coastguard Worker  margin: 1em 0;
38*5e7646d2SAndroid Build Coastguard Worker  padding: 10px;
39*5e7646d2SAndroid Build Coastguard Worker}
40*5e7646d2SAndroid Build Coastguard Worker
41*5e7646d2SAndroid Build Coastguard WorkerBLOCKQUOTE OL LI {
42*5e7646d2SAndroid Build Coastguard Worker  margin-left: -1em;
43*5e7646d2SAndroid Build Coastguard Worker}
44*5e7646d2SAndroid Build Coastguard Worker
45*5e7646d2SAndroid Build Coastguard WorkerPRE.command, PRE.example {
46*5e7646d2SAndroid Build Coastguard Worker  background: #eee;
47*5e7646d2SAndroid Build Coastguard Worker  margin: 0 36pt;
48*5e7646d2SAndroid Build Coastguard Worker  padding: 10px;
49*5e7646d2SAndroid Build Coastguard Worker}
50*5e7646d2SAndroid Build Coastguard Worker
51*5e7646d2SAndroid Build Coastguard WorkerP.compact {
52*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
53*5e7646d2SAndroid Build Coastguard Worker}
54*5e7646d2SAndroid Build Coastguard Worker
55*5e7646d2SAndroid Build Coastguard WorkerP.example {
56*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
57*5e7646d2SAndroid Build Coastguard Worker  margin-left: 36pt;
58*5e7646d2SAndroid Build Coastguard Worker}
59*5e7646d2SAndroid Build Coastguard Worker
60*5e7646d2SAndroid Build Coastguard WorkerDL.man DD {
61*5e7646d2SAndroid Build Coastguard Worker  margin-left: 5em;
62*5e7646d2SAndroid Build Coastguard Worker}
63*5e7646d2SAndroid Build Coastguard Worker
64*5e7646d2SAndroid Build Coastguard WorkerDL.man DT {
65*5e7646d2SAndroid Build Coastguard Worker  margin-left: 0;
66*5e7646d2SAndroid Build Coastguard Worker}
67*5e7646d2SAndroid Build Coastguard Worker
68*5e7646d2SAndroid Build Coastguard WorkerPRE.man {
69*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
70*5e7646d2SAndroid Build Coastguard Worker}
71*5e7646d2SAndroid Build Coastguard Worker
72*5e7646d2SAndroid Build Coastguard WorkerPRE.command EM, PRE.example EM {
73*5e7646d2SAndroid Build Coastguard Worker  font-family: lucida grande, geneva, helvetica, arial, sans-serif;
74*5e7646d2SAndroid Build Coastguard Worker}
75*5e7646d2SAndroid Build Coastguard Worker
76*5e7646d2SAndroid Build Coastguard WorkerP.command {
77*5e7646d2SAndroid Build Coastguard Worker  font-family: monaco, courier, monospace;
78*5e7646d2SAndroid Build Coastguard Worker  margin-left: 36pt;
79*5e7646d2SAndroid Build Coastguard Worker}
80*5e7646d2SAndroid Build Coastguard Worker
81*5e7646d2SAndroid Build Coastguard WorkerP.formula {
82*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
83*5e7646d2SAndroid Build Coastguard Worker  margin-left: 36pt;
84*5e7646d2SAndroid Build Coastguard Worker}
85*5e7646d2SAndroid Build Coastguard Worker
86*5e7646d2SAndroid Build Coastguard WorkerA IMG {
87*5e7646d2SAndroid Build Coastguard Worker  border: none;
88*5e7646d2SAndroid Build Coastguard Worker}
89*5e7646d2SAndroid Build Coastguard Worker
90*5e7646d2SAndroid Build Coastguard WorkerA:link:hover IMG {
91*5e7646d2SAndroid Build Coastguard Worker  background: #f0f0f0;
92*5e7646d2SAndroid Build Coastguard Worker  border-radius: 10px;
93*5e7646d2SAndroid Build Coastguard Worker  -moz-border-radius: 10px;
94*5e7646d2SAndroid Build Coastguard Worker}
95*5e7646d2SAndroid Build Coastguard Worker
96*5e7646d2SAndroid Build Coastguard WorkerA:link, A:visited {
97*5e7646d2SAndroid Build Coastguard Worker  font-weight: inherit;
98*5e7646d2SAndroid Build Coastguard Worker  text-decoration: none;
99*5e7646d2SAndroid Build Coastguard Worker}
100*5e7646d2SAndroid Build Coastguard Worker
101*5e7646d2SAndroid Build Coastguard WorkerA:link:hover, A:visited:hover, A:active {
102*5e7646d2SAndroid Build Coastguard Worker  text-decoration: underline;
103*5e7646d2SAndroid Build Coastguard Worker}
104*5e7646d2SAndroid Build Coastguard Worker
105*5e7646d2SAndroid Build Coastguard WorkerSUB, SUP {
106*5e7646d2SAndroid Build Coastguard Worker  font-size: 50%;
107*5e7646d2SAndroid Build Coastguard Worker}
108*5e7646d2SAndroid Build Coastguard Worker
109*5e7646d2SAndroid Build Coastguard WorkerTR.data, TD.data, TR.data TD {
110*5e7646d2SAndroid Build Coastguard Worker  margin-top: 10pt;
111*5e7646d2SAndroid Build Coastguard Worker  padding: 5pt;
112*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 1pt #999999;
113*5e7646d2SAndroid Build Coastguard Worker}
114*5e7646d2SAndroid Build Coastguard Worker
115*5e7646d2SAndroid Build Coastguard WorkerTR.data TH {
116*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 1pt #999999;
117*5e7646d2SAndroid Build Coastguard Worker  padding-top: 10pt;
118*5e7646d2SAndroid Build Coastguard Worker  padding-left: 5pt;
119*5e7646d2SAndroid Build Coastguard Worker  text-align: left;
120*5e7646d2SAndroid Build Coastguard Worker}
121*5e7646d2SAndroid Build Coastguard Worker
122*5e7646d2SAndroid Build Coastguard WorkerDIV.table TABLE {
123*5e7646d2SAndroid Build Coastguard Worker  border: solid thin #999999;
124*5e7646d2SAndroid Build Coastguard Worker  border-collapse: collapse;
125*5e7646d2SAndroid Build Coastguard Worker  border-spacing: 0;
126*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
127*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
128*5e7646d2SAndroid Build Coastguard Worker}
129*5e7646d2SAndroid Build Coastguard Worker
130*5e7646d2SAndroid Build Coastguard WorkerDIV.table CAPTION {
131*5e7646d2SAndroid Build Coastguard Worker  caption-side: top;
132*5e7646d2SAndroid Build Coastguard Worker  font-size: 120%;
133*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
134*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
135*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
136*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
137*5e7646d2SAndroid Build Coastguard Worker}
138*5e7646d2SAndroid Build Coastguard Worker
139*5e7646d2SAndroid Build Coastguard WorkerDIV.table TABLE TD {
140*5e7646d2SAndroid Build Coastguard Worker  border: solid thin #cccccc;
141*5e7646d2SAndroid Build Coastguard Worker  padding: 5pt 10pt 0;
142*5e7646d2SAndroid Build Coastguard Worker}
143*5e7646d2SAndroid Build Coastguard Worker
144*5e7646d2SAndroid Build Coastguard WorkerDIV.table TABLE TH {
145*5e7646d2SAndroid Build Coastguard Worker  background: #cccccc;
146*5e7646d2SAndroid Build Coastguard Worker  border: none;
147*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid thin #999999;
148*5e7646d2SAndroid Build Coastguard Worker}
149*5e7646d2SAndroid Build Coastguard Worker
150*5e7646d2SAndroid Build Coastguard WorkerDIV.figure TABLE {
151*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
152*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
153*5e7646d2SAndroid Build Coastguard Worker}
154*5e7646d2SAndroid Build Coastguard Worker
155*5e7646d2SAndroid Build Coastguard WorkerDIV.figure CAPTION {
156*5e7646d2SAndroid Build Coastguard Worker  caption-side: bottom;
157*5e7646d2SAndroid Build Coastguard Worker  font-size: 120%;
158*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
159*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
160*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
161*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
162*5e7646d2SAndroid Build Coastguard Worker}
163*5e7646d2SAndroid Build Coastguard Worker
164*5e7646d2SAndroid Build Coastguard WorkerTH.label {
165*5e7646d2SAndroid Build Coastguard Worker  text-align: right;
166*5e7646d2SAndroid Build Coastguard Worker  vertical-align: top;
167*5e7646d2SAndroid Build Coastguard Worker}
168*5e7646d2SAndroid Build Coastguard Worker
169*5e7646d2SAndroid Build Coastguard WorkerTH.sublabel {
170*5e7646d2SAndroid Build Coastguard Worker  text-align: right;
171*5e7646d2SAndroid Build Coastguard Worker  font-weight: normal;
172*5e7646d2SAndroid Build Coastguard Worker}
173*5e7646d2SAndroid Build Coastguard Worker
174*5e7646d2SAndroid Build Coastguard WorkerHR {
175*5e7646d2SAndroid Build Coastguard Worker  border: solid thin;
176*5e7646d2SAndroid Build Coastguard Worker}
177*5e7646d2SAndroid Build Coastguard Worker
178*5e7646d2SAndroid Build Coastguard WorkerSPAN.info {
179*5e7646d2SAndroid Build Coastguard Worker  background: black;
180*5e7646d2SAndroid Build Coastguard Worker  border: thin solid black;
181*5e7646d2SAndroid Build Coastguard Worker  color: white;
182*5e7646d2SAndroid Build Coastguard Worker  font-size: 80%;
183*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
184*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
185*5e7646d2SAndroid Build Coastguard Worker  white-space: nowrap;
186*5e7646d2SAndroid Build Coastguard Worker}
187*5e7646d2SAndroid Build Coastguard Worker
188*5e7646d2SAndroid Build Coastguard WorkerH2 SPAN.info, H3 SPAN.info, H4 SPAN.info {
189*5e7646d2SAndroid Build Coastguard Worker  float: right;
190*5e7646d2SAndroid Build Coastguard Worker  font-size: 100%;
191*5e7646d2SAndroid Build Coastguard Worker}
192*5e7646d2SAndroid Build Coastguard Worker
193*5e7646d2SAndroid Build Coastguard WorkerH1.title {
194*5e7646d2SAndroid Build Coastguard Worker}
195*5e7646d2SAndroid Build Coastguard Worker
196*5e7646d2SAndroid Build Coastguard WorkerH2.title, H3.title {
197*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2pt #000000;
198*5e7646d2SAndroid Build Coastguard Worker}
199*5e7646d2SAndroid Build Coastguard Worker
200*5e7646d2SAndroid Build Coastguard WorkerDIV.indent, TABLE.indent {
201*5e7646d2SAndroid Build Coastguard Worker  margin-top: 2em;
202*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
203*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
204*5e7646d2SAndroid Build Coastguard Worker  width: 90%;
205*5e7646d2SAndroid Build Coastguard Worker}
206*5e7646d2SAndroid Build Coastguard Worker
207*5e7646d2SAndroid Build Coastguard WorkerTABLE.indent {
208*5e7646d2SAndroid Build Coastguard Worker  border-collapse: collapse;
209*5e7646d2SAndroid Build Coastguard Worker}
210*5e7646d2SAndroid Build Coastguard Worker
211*5e7646d2SAndroid Build Coastguard WorkerTABLE.indent TD, TABLE.indent TH {
212*5e7646d2SAndroid Build Coastguard Worker  padding: 0;
213*5e7646d2SAndroid Build Coastguard Worker}
214*5e7646d2SAndroid Build Coastguard Worker
215*5e7646d2SAndroid Build Coastguard WorkerTABLE.list {
216*5e7646d2SAndroid Build Coastguard Worker  border-collapse: collapse;
217*5e7646d2SAndroid Build Coastguard Worker  margin-left: auto;
218*5e7646d2SAndroid Build Coastguard Worker  margin-right: auto;
219*5e7646d2SAndroid Build Coastguard Worker  width: 90%;
220*5e7646d2SAndroid Build Coastguard Worker}
221*5e7646d2SAndroid Build Coastguard Worker
222*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TH {
223*5e7646d2SAndroid Build Coastguard Worker  background: white;
224*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid thin #cccccc;
225*5e7646d2SAndroid Build Coastguard Worker  color: #444444;
226*5e7646d2SAndroid Build Coastguard Worker  padding-top: 10pt;
227*5e7646d2SAndroid Build Coastguard Worker  padding-left: 5pt;
228*5e7646d2SAndroid Build Coastguard Worker  text-align: left;
229*5e7646d2SAndroid Build Coastguard Worker  vertical-align: bottom;
230*5e7646d2SAndroid Build Coastguard Worker  white-space: nowrap;
231*5e7646d2SAndroid Build Coastguard Worker}
232*5e7646d2SAndroid Build Coastguard Worker
233*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TH A {
234*5e7646d2SAndroid Build Coastguard Worker  color: #4444cc;
235*5e7646d2SAndroid Build Coastguard Worker}
236*5e7646d2SAndroid Build Coastguard Worker
237*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TD {
238*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid thin #eeeeee;
239*5e7646d2SAndroid Build Coastguard Worker  padding-top: 5pt;
240*5e7646d2SAndroid Build Coastguard Worker  padding-left: 5pt;
241*5e7646d2SAndroid Build Coastguard Worker}
242*5e7646d2SAndroid Build Coastguard Worker
243*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TR:nth-child(even) {
244*5e7646d2SAndroid Build Coastguard Worker  background: #f8f8f8;
245*5e7646d2SAndroid Build Coastguard Worker}
246*5e7646d2SAndroid Build Coastguard Worker
247*5e7646d2SAndroid Build Coastguard WorkerTABLE.list TR:nth-child(odd) {
248*5e7646d2SAndroid Build Coastguard Worker  background: #f4f4f4;
249*5e7646d2SAndroid Build Coastguard Worker}
250*5e7646d2SAndroid Build Coastguard Worker
251*5e7646d2SAndroid Build Coastguard WorkerDT {
252*5e7646d2SAndroid Build Coastguard Worker  margin-left: 36pt;
253*5e7646d2SAndroid Build Coastguard Worker  margin-top: 12pt;
254*5e7646d2SAndroid Build Coastguard Worker}
255*5e7646d2SAndroid Build Coastguard Worker
256*5e7646d2SAndroid Build Coastguard WorkerDD {
257*5e7646d2SAndroid Build Coastguard Worker  margin-left: 54pt;
258*5e7646d2SAndroid Build Coastguard Worker}
259*5e7646d2SAndroid Build Coastguard Worker
260*5e7646d2SAndroid Build Coastguard WorkerDL.category DT {
261*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
262*5e7646d2SAndroid Build Coastguard Worker}
263*5e7646d2SAndroid Build Coastguard Worker
264*5e7646d2SAndroid Build Coastguard WorkerP.summary {
265*5e7646d2SAndroid Build Coastguard Worker  margin-left: 36pt;
266*5e7646d2SAndroid Build Coastguard Worker  font-family: monaco, courier, monospace;
267*5e7646d2SAndroid Build Coastguard Worker}
268*5e7646d2SAndroid Build Coastguard Worker
269*5e7646d2SAndroid Build Coastguard WorkerDIV.summary TABLE {
270*5e7646d2SAndroid Build Coastguard Worker  border: solid thin #999999;
271*5e7646d2SAndroid Build Coastguard Worker  border-collapse: collapse;
272*5e7646d2SAndroid Build Coastguard Worker  border-spacing: 0;
273*5e7646d2SAndroid Build Coastguard Worker  margin: 10px;
274*5e7646d2SAndroid Build Coastguard Worker}
275*5e7646d2SAndroid Build Coastguard Worker
276*5e7646d2SAndroid Build Coastguard WorkerDIV.summary TABLE TD, DIV.summary TABLE TH {
277*5e7646d2SAndroid Build Coastguard Worker  border: solid thin #999999;
278*5e7646d2SAndroid Build Coastguard Worker  padding: 5px;
279*5e7646d2SAndroid Build Coastguard Worker  text-align: left;
280*5e7646d2SAndroid Build Coastguard Worker  vertical-align: top;
281*5e7646d2SAndroid Build Coastguard Worker}
282*5e7646d2SAndroid Build Coastguard Worker
283*5e7646d2SAndroid Build Coastguard WorkerDIV.summary TABLE THEAD TH {
284*5e7646d2SAndroid Build Coastguard Worker  background: #eeeeee;
285*5e7646d2SAndroid Build Coastguard Worker}
286*5e7646d2SAndroid Build Coastguard Worker
287*5e7646d2SAndroid Build Coastguard Worker/* API documentation styles... */
288*5e7646d2SAndroid Build Coastguard Workerdiv.body h1 {
289*5e7646d2SAndroid Build Coastguard Worker  font-size: 250%;
290*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
291*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
292*5e7646d2SAndroid Build Coastguard Worker}
293*5e7646d2SAndroid Build Coastguard Workerdiv.body h2 {
294*5e7646d2SAndroid Build Coastguard Worker  font-size: 250%;
295*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
296*5e7646d2SAndroid Build Coastguard Worker}
297*5e7646d2SAndroid Build Coastguard Workerdiv.body h3 {
298*5e7646d2SAndroid Build Coastguard Worker  font-size: 150%;
299*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0.5em;
300*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
301*5e7646d2SAndroid Build Coastguard Worker}
302*5e7646d2SAndroid Build Coastguard Workerdiv.body h4 {
303*5e7646d2SAndroid Build Coastguard Worker  font-size: 110%;
304*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0.5em;
305*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
306*5e7646d2SAndroid Build Coastguard Worker}
307*5e7646d2SAndroid Build Coastguard Workerdiv.body h5 {
308*5e7646d2SAndroid Build Coastguard Worker  font-size: 100%;
309*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0.5em;
310*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1.5em;
311*5e7646d2SAndroid Build Coastguard Worker}
312*5e7646d2SAndroid Build Coastguard Workerdiv.contents {
313*5e7646d2SAndroid Build Coastguard Worker  background: #e8e8e8;
314*5e7646d2SAndroid Build Coastguard Worker  border: solid thin black;
315*5e7646d2SAndroid Build Coastguard Worker  padding: 10px;
316*5e7646d2SAndroid Build Coastguard Worker}
317*5e7646d2SAndroid Build Coastguard Workerdiv.contents h1 {
318*5e7646d2SAndroid Build Coastguard Worker  font-size: 110%;
319*5e7646d2SAndroid Build Coastguard Worker}
320*5e7646d2SAndroid Build Coastguard Workerdiv.contents h2 {
321*5e7646d2SAndroid Build Coastguard Worker  font-size: 100%;
322*5e7646d2SAndroid Build Coastguard Worker}
323*5e7646d2SAndroid Build Coastguard Workerdiv.contents ul.contents {
324*5e7646d2SAndroid Build Coastguard Worker  font-size: 80%;
325*5e7646d2SAndroid Build Coastguard Worker}
326*5e7646d2SAndroid Build Coastguard Worker.class {
327*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
328*5e7646d2SAndroid Build Coastguard Worker}
329*5e7646d2SAndroid Build Coastguard Worker.constants {
330*5e7646d2SAndroid Build Coastguard Worker}
331*5e7646d2SAndroid Build Coastguard Worker.description {
332*5e7646d2SAndroid Build Coastguard Worker  margin-top: 0.5em;
333*5e7646d2SAndroid Build Coastguard Worker}
334*5e7646d2SAndroid Build Coastguard Worker.discussion {
335*5e7646d2SAndroid Build Coastguard Worker}
336*5e7646d2SAndroid Build Coastguard Worker.enumeration {
337*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
338*5e7646d2SAndroid Build Coastguard Worker}
339*5e7646d2SAndroid Build Coastguard Worker.function {
340*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
341*5e7646d2SAndroid Build Coastguard Worker  margin-bottom: 0;
342*5e7646d2SAndroid Build Coastguard Worker}
343*5e7646d2SAndroid Build Coastguard Worker.members {
344*5e7646d2SAndroid Build Coastguard Worker}
345*5e7646d2SAndroid Build Coastguard Worker.method {
346*5e7646d2SAndroid Build Coastguard Worker}
347*5e7646d2SAndroid Build Coastguard Worker.parameters {
348*5e7646d2SAndroid Build Coastguard Worker}
349*5e7646d2SAndroid Build Coastguard Worker.returnvalue {
350*5e7646d2SAndroid Build Coastguard Worker}
351*5e7646d2SAndroid Build Coastguard Worker.struct {
352*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
353*5e7646d2SAndroid Build Coastguard Worker}
354*5e7646d2SAndroid Build Coastguard Worker.typedef {
355*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
356*5e7646d2SAndroid Build Coastguard Worker}
357*5e7646d2SAndroid Build Coastguard Worker.union {
358*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px gray;
359*5e7646d2SAndroid Build Coastguard Worker}
360*5e7646d2SAndroid Build Coastguard Worker.variable {
361*5e7646d2SAndroid Build Coastguard Worker}
362*5e7646d2SAndroid Build Coastguard Workerh1, h2, h3, h4, h5, h6 {
363*5e7646d2SAndroid Build Coastguard Worker  page-break-inside: avoid;
364*5e7646d2SAndroid Build Coastguard Worker}
365*5e7646d2SAndroid Build Coastguard Workerblockquote {
366*5e7646d2SAndroid Build Coastguard Worker  border: solid thin gray;
367*5e7646d2SAndroid Build Coastguard Worker  box-shadow: 3px 3px 5px rgba(0,0,0,0.5);
368*5e7646d2SAndroid Build Coastguard Worker  padding: 10px 10px 0px;
369*5e7646d2SAndroid Build Coastguard Worker  page-break-inside: avoid;
370*5e7646d2SAndroid Build Coastguard Worker}
371*5e7646d2SAndroid Build Coastguard Workerp code, li code, p.code, pre, ul.code li {
372*5e7646d2SAndroid Build Coastguard Worker  background: rgba(127,127,127,0.1);
373*5e7646d2SAndroid Build Coastguard Worker  border: thin dotted gray;
374*5e7646d2SAndroid Build Coastguard Worker  font-family: monospace;
375*5e7646d2SAndroid Build Coastguard Worker  hyphens: manual;
376*5e7646d2SAndroid Build Coastguard Worker  -webkit-hyphens: manual;
377*5e7646d2SAndroid Build Coastguard Worker  page-break-inside: avoid;
378*5e7646d2SAndroid Build Coastguard Worker}
379*5e7646d2SAndroid Build Coastguard Workerp.code, pre, ul.code li {
380*5e7646d2SAndroid Build Coastguard Worker  padding: 10px;
381*5e7646d2SAndroid Build Coastguard Worker}
382*5e7646d2SAndroid Build Coastguard Workerp code, li code {
383*5e7646d2SAndroid Build Coastguard Worker  padding: 2px 5px;
384*5e7646d2SAndroid Build Coastguard Worker}
385*5e7646d2SAndroid Build Coastguard Workera:link, a:visited {
386*5e7646d2SAndroid Build Coastguard Worker  text-decoration: none;
387*5e7646d2SAndroid Build Coastguard Worker}
388*5e7646d2SAndroid Build Coastguard Workerspan.info {
389*5e7646d2SAndroid Build Coastguard Worker  background: black;
390*5e7646d2SAndroid Build Coastguard Worker  border: solid thin black;
391*5e7646d2SAndroid Build Coastguard Worker  color: white;
392*5e7646d2SAndroid Build Coastguard Worker  font-size: 80%;
393*5e7646d2SAndroid Build Coastguard Worker  font-style: italic;
394*5e7646d2SAndroid Build Coastguard Worker  font-weight: bold;
395*5e7646d2SAndroid Build Coastguard Worker  white-space: nowrap;
396*5e7646d2SAndroid Build Coastguard Worker}
397*5e7646d2SAndroid Build Coastguard Workerh2 span.info, h3 span.info, h4 span.info {
398*5e7646d2SAndroid Build Coastguard Worker  border-radius: 10px;
399*5e7646d2SAndroid Build Coastguard Worker  float: right;
400*5e7646d2SAndroid Build Coastguard Worker  font-size: 80%;
401*5e7646d2SAndroid Build Coastguard Worker  padding: 3px 6px;
402*5e7646d2SAndroid Build Coastguard Worker}
403*5e7646d2SAndroid Build Coastguard Workerh2.title span.info, h3.title span.info, h4.title span.info {
404*5e7646d2SAndroid Build Coastguard Worker  border-bottom-left-radius: 0px;
405*5e7646d2SAndroid Build Coastguard Worker  border-bottom-right-radius: 0px;
406*5e7646d2SAndroid Build Coastguard Worker}
407*5e7646d2SAndroid Build Coastguard Workerh2.title span.info {
408*5e7646d2SAndroid Build Coastguard Worker  padding: 4px 6px;
409*5e7646d2SAndroid Build Coastguard Worker}
410*5e7646d2SAndroid Build Coastguard Workerul.code, ul.contents, ul.subcontents {
411*5e7646d2SAndroid Build Coastguard Worker  list-style-type: none;
412*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
413*5e7646d2SAndroid Build Coastguard Worker  padding-left: 0;
414*5e7646d2SAndroid Build Coastguard Worker}
415*5e7646d2SAndroid Build Coastguard Workerul.code li {
416*5e7646d2SAndroid Build Coastguard Worker  margin: 0;
417*5e7646d2SAndroid Build Coastguard Worker}
418*5e7646d2SAndroid Build Coastguard Workerul.contents > li {
419*5e7646d2SAndroid Build Coastguard Worker  margin-top: 1em;
420*5e7646d2SAndroid Build Coastguard Worker}
421*5e7646d2SAndroid Build Coastguard Workerul.contents li ul.code, ul.contents li ul.subcontents {
422*5e7646d2SAndroid Build Coastguard Worker  padding-left: 2em;
423*5e7646d2SAndroid Build Coastguard Worker}
424*5e7646d2SAndroid Build Coastguard Workertable.list {
425*5e7646d2SAndroid Build Coastguard Worker  border-collapse: collapse;
426*5e7646d2SAndroid Build Coastguard Worker  width: 100%;
427*5e7646d2SAndroid Build Coastguard Worker}
428*5e7646d2SAndroid Build Coastguard Workertable.list tr:nth-child(even) {
429*5e7646d2SAndroid Build Coastguard Worker  background: rgba(127,127,127,0.1);]n}
430*5e7646d2SAndroid Build Coastguard Workertable.list th {
431*5e7646d2SAndroid Build Coastguard Worker  border-right: 2px solid gray;
432*5e7646d2SAndroid Build Coastguard Worker  font-family: monospace;
433*5e7646d2SAndroid Build Coastguard Worker  padding: 5px 10px 5px 2px;
434*5e7646d2SAndroid Build Coastguard Worker  text-align: right;
435*5e7646d2SAndroid Build Coastguard Worker  vertical-align: top;
436*5e7646d2SAndroid Build Coastguard Worker}
437*5e7646d2SAndroid Build Coastguard Workertable.list td {
438*5e7646d2SAndroid Build Coastguard Worker  padding: 5px 2px 5px 10px;
439*5e7646d2SAndroid Build Coastguard Worker  text-align: left;
440*5e7646d2SAndroid Build Coastguard Worker  vertical-align: top;
441*5e7646d2SAndroid Build Coastguard Worker}
442*5e7646d2SAndroid Build Coastguard Workerh1.title {
443*5e7646d2SAndroid Build Coastguard Worker}
444*5e7646d2SAndroid Build Coastguard Workerh2.title {
445*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px black;
446*5e7646d2SAndroid Build Coastguard Worker}
447*5e7646d2SAndroid Build Coastguard Workerh3.title {
448*5e7646d2SAndroid Build Coastguard Worker  border-bottom: solid 2px black;
449*5e7646d2SAndroid Build Coastguard Worker}
450*5e7646d2SAndroid Build Coastguard Worker--></style>
451*5e7646d2SAndroid Build Coastguard Worker  </head>
452*5e7646d2SAndroid Build Coastguard Worker  <body>
453*5e7646d2SAndroid Build Coastguard Worker<!--
454*5e7646d2SAndroid Build Coastguard Worker  Administrative API header for CUPS.
455*5e7646d2SAndroid Build Coastguard Worker
456*5e7646d2SAndroid Build Coastguard Worker  Copyright © 2016 by Apple Inc.
457*5e7646d2SAndroid Build Coastguard Worker
458*5e7646d2SAndroid Build Coastguard Worker  Licensed under Apache License v2.0.  See the file "LICENSE" for more
459*5e7646d2SAndroid Build Coastguard Worker  information.
460*5e7646d2SAndroid Build Coastguard Worker-->
461*5e7646d2SAndroid Build Coastguard Worker
462*5e7646d2SAndroid Build Coastguard Worker<h1 class='title'>Administrative APIs</h1>
463*5e7646d2SAndroid Build Coastguard Worker
464*5e7646d2SAndroid Build Coastguard Worker<div class='summary'><table summary='General Information'>
465*5e7646d2SAndroid Build Coastguard Worker<thead>
466*5e7646d2SAndroid Build Coastguard Worker<tr>
467*5e7646d2SAndroid Build Coastguard Worker	<th>Header</th>
468*5e7646d2SAndroid Build Coastguard Worker	<th>cups/adminutil.h</th>
469*5e7646d2SAndroid Build Coastguard Worker</tr>
470*5e7646d2SAndroid Build Coastguard Worker</thead>
471*5e7646d2SAndroid Build Coastguard Worker<tbody>
472*5e7646d2SAndroid Build Coastguard Worker<tr>
473*5e7646d2SAndroid Build Coastguard Worker	<th>Library</th>
474*5e7646d2SAndroid Build Coastguard Worker	<td>-lcups</td>
475*5e7646d2SAndroid Build Coastguard Worker</tr>
476*5e7646d2SAndroid Build Coastguard Worker<tr>
477*5e7646d2SAndroid Build Coastguard Worker	<th>See Also</th>
478*5e7646d2SAndroid Build Coastguard Worker	<td>Programming: <a href='api-overview.html' target='_top'>Introduction to CUPS Programming</a><br>
479*5e7646d2SAndroid Build Coastguard Worker	Programming: <a href='api-cups.html' target='_top'>CUPS API</a><br>
480*5e7646d2SAndroid Build Coastguard Worker	Programming: <a href='api-httpipp.html' target='_top'>HTTP and IPP APIs</a></td>
481*5e7646d2SAndroid Build Coastguard Worker</tr>
482*5e7646d2SAndroid Build Coastguard Worker</tbody>
483*5e7646d2SAndroid Build Coastguard Worker</table></div>
484*5e7646d2SAndroid Build Coastguard Worker    <div class="contents">
485*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title">Contents</h2>
486*5e7646d2SAndroid Build Coastguard Worker      <ul class="contents">
487*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#OVERVIEW">Overview</a><ul class="subcontents">
488*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#SETTINGS">Scheduler Settings</a></li>
489*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#DEVICES">Devices</a></li>
490*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
491*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#FUNCTIONS">Functions</a><ul class="subcontents">
492*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsAdminCreateWindowsPPD">cupsAdminCreateWindowsPPD</a></li>
493*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsAdminExportSamba">cupsAdminExportSamba</a></li>
494*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsAdminGetServerSettings">cupsAdminGetServerSettings</a></li>
495*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsAdminSetServerSettings">cupsAdminSetServerSettings</a></li>
496*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cupsGetDevices">cupsGetDevices</a></li>
497*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
498*5e7646d2SAndroid Build Coastguard Worker        <li><a href="#TYPES">Data Types</a><ul class="subcontents">
499*5e7646d2SAndroid Build Coastguard Worker          <li><a href="#cups_device_cb_t">cups_device_cb_t</a></li>
500*5e7646d2SAndroid Build Coastguard Worker        </ul></li>
501*5e7646d2SAndroid Build Coastguard Worker      </ul>
502*5e7646d2SAndroid Build Coastguard Worker    </div>
503*5e7646d2SAndroid Build Coastguard Worker    <div class="body">
504*5e7646d2SAndroid Build Coastguard Worker<!--
505*5e7646d2SAndroid Build Coastguard Worker  Administrative API documentation for CUPS.
506*5e7646d2SAndroid Build Coastguard Worker
507*5e7646d2SAndroid Build Coastguard Worker  Copyright © 2016 by Apple Inc.
508*5e7646d2SAndroid Build Coastguard Worker
509*5e7646d2SAndroid Build Coastguard Worker  Licensed under Apache License v2.0.  See the file "LICENSE" for more
510*5e7646d2SAndroid Build Coastguard Worker  information.
511*5e7646d2SAndroid Build Coastguard Worker-->
512*5e7646d2SAndroid Build Coastguard Worker
513*5e7646d2SAndroid Build Coastguard Worker<h2 class="title"><a name="OVERVIEW">Overview</a></h2>
514*5e7646d2SAndroid Build Coastguard Worker
515*5e7646d2SAndroid Build Coastguard Worker<p>The administrative APIs provide convenience functions to perform certain administrative functions with the CUPS scheduler.</p>
516*5e7646d2SAndroid Build Coastguard Worker
517*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b>
518*5e7646d2SAndroid Build Coastguard Worker  <p>Administrative functions normally require administrative privileges to execute and must not be used in ordinary user applications!</p>
519*5e7646d2SAndroid Build Coastguard Worker</blockquote>
520*5e7646d2SAndroid Build Coastguard Worker
521*5e7646d2SAndroid Build Coastguard Worker<h3><a name="SETTINGS">Scheduler Settings</a></h3>
522*5e7646d2SAndroid Build Coastguard Worker
523*5e7646d2SAndroid Build Coastguard Worker<p>The <a href="#cupsAdminGetServerSettings"><code>cupsAdminGetServerSettings</code></a> and <a href="#cupsAdminSetServerSettings"><code>cupsAdminSetServerSettings</code></a> functions allow you to get and set simple directives and their values, respectively, in the <var>cupsd.conf</var> file for the CUPS scheduler. Settings are stored in CUPS option arrays which provide a simple list of string name/value pairs. While any simple <var>cupsd.conf</var> directive name can be specified, the following convenience names are also defined to control common complex directives:</p>
524*5e7646d2SAndroid Build Coastguard Worker
525*5e7646d2SAndroid Build Coastguard Worker<ul>
526*5e7646d2SAndroid Build Coastguard Worker  <li><code>CUPS_SERVER_DEBUG_LOGGING</code></li>: For <code>cupsAdminGetServerSettings</code>, a value of "1" means that the <code>LogLevel</code> directive is set to <code>debug</code> or <code>debug2</code> while a value of "0" means it is set to any other value. For <code>cupsAdminSetServerSettings</code> a value of "1" sets the <code>LogLeveL</code> to <code>debug</code> while a value of "0" sets it to <code>warn</code>.</li>
527*5e7646d2SAndroid Build Coastguard Worker  <li><code>CUPS_SERVER_REMOTE_ADMIN</code></li>: A value of "1" specifies that administrative requests are accepted from remote addresses while "0" specifies that requests are only accepted from local addresses (loopback interface and domain sockets).</li>
528*5e7646d2SAndroid Build Coastguard Worker  <li><code>CUPS_SERVER_REMOTE_ANY</code></li>: A value of "1" specifies that requests are accepts from any address while "0" specifies that requests are only accepted from the local subnet (when sharing is enabled) or local addresses (loopback interface and domain sockets).</li>
529*5e7646d2SAndroid Build Coastguard Worker  <li><code>CUPS_SERVER_SHARE_PRINTERS</code></li>: A value of "1" specifies that printer sharing is enabled for selected printers and remote requests are accepted while a value of "0" specifies that printer sharing is disables and remote requests are not accepted.</li>
530*5e7646d2SAndroid Build Coastguard Worker  <li><code>CUPS_SERVER_USER_CANCEL_ANY</code></li>: A value of "1" specifies that the default security policy allows any user to cancel any print job, regardless of the owner. A value of "0" specifies that only administrative users can cancel other user's jobs.</li>
531*5e7646d2SAndroid Build Coastguard Worker</ul>
532*5e7646d2SAndroid Build Coastguard Worker
533*5e7646d2SAndroid Build Coastguard Worker<blockquote><b>Note:</b>
534*5e7646d2SAndroid Build Coastguard Worker  <p>Changing settings will restart the CUPS scheduler.</p>
535*5e7646d2SAndroid Build Coastguard Worker  <p>When printer sharing or the web interface are enabled, the scheduler's launch-on-demand functionality is effectively disabled. This can affect power usage, system performance, and the security profile of a system.</p>
536*5e7646d2SAndroid Build Coastguard Worker</blockquote>
537*5e7646d2SAndroid Build Coastguard Worker
538*5e7646d2SAndroid Build Coastguard Worker<p>The recommended way to make changes to the <var>cupsd.conf</var> is to first call <a href="#cupsAdminGetServerSettings"><code>cupsAdminGetServerSettings</code></a>, make any changes to the returned option array, and then call <a href="#cupsAdminSetServerSettings"><code>cupsAdminSetServerSettings</code></a> to save those settings. For example, to enable the web interface:</p>
539*5e7646d2SAndroid Build Coastguard Worker
540*5e7646d2SAndroid Build Coastguard Worker<pre class="example">
541*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/cups.h&gt;
542*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/adminutil.h&gt;
543*5e7646d2SAndroid Build Coastguard Worker
544*5e7646d2SAndroid Build Coastguard Workervoid
545*5e7646d2SAndroid Build Coastguard Workerenable_web_interface(void)
546*5e7646d2SAndroid Build Coastguard Worker{
547*5e7646d2SAndroid Build Coastguard Worker  int num_settings = 0;           /* Number of settings */
548*5e7646d2SAndroid Build Coastguard Worker  cups_option_t *settings = NULL; /* Settings */
549*5e7646d2SAndroid Build Coastguard Worker
550*5e7646d2SAndroid Build Coastguard Worker
551*5e7646d2SAndroid Build Coastguard Worker  if (!<a href="#cupsAdminGetServerSettings">cupsAdminGetServerSettings</a>(CUPS_HTTP_DEFAULT, &amp;num_settings, &amp;settings))
552*5e7646d2SAndroid Build Coastguard Worker  {
553*5e7646d2SAndroid Build Coastguard Worker    fprintf(stderr, "ERROR: Unable to get server settings: %s\n", cupsLastErrorString());
554*5e7646d2SAndroid Build Coastguard Worker    return;
555*5e7646d2SAndroid Build Coastguard Worker  }
556*5e7646d2SAndroid Build Coastguard Worker
557*5e7646d2SAndroid Build Coastguard Worker  num_settings = <a href="api-cups.html#cupsAddOption">cupsAddOption</a>("WebInterface", "Yes", num_settings, &amp;settings);
558*5e7646d2SAndroid Build Coastguard Worker
559*5e7646d2SAndroid Build Coastguard Worker  if (!<a href="#cupsAdminSetServerSettings">cupsAdminSetServerSettings</a>(CUPS_HTTP_DEFAULT, num_settings, settings))
560*5e7646d2SAndroid Build Coastguard Worker  {
561*5e7646d2SAndroid Build Coastguard Worker    fprintf(stderr, "ERROR: Unable to set server settings: %s\n", cupsLastErrorString());
562*5e7646d2SAndroid Build Coastguard Worker  }
563*5e7646d2SAndroid Build Coastguard Worker
564*5e7646d2SAndroid Build Coastguard Worker  <a href="api-cups.html#cupsFreeOptions">cupsFreeOptions</a>(num_settings, settings);
565*5e7646d2SAndroid Build Coastguard Worker}
566*5e7646d2SAndroid Build Coastguard Worker</pre>
567*5e7646d2SAndroid Build Coastguard Worker
568*5e7646d2SAndroid Build Coastguard Worker<h3><a name="DEVICES">Devices</a></h3>
569*5e7646d2SAndroid Build Coastguard Worker
570*5e7646d2SAndroid Build Coastguard Worker<p>Printers can be discovered through the CUPS scheduler using the <a href="#cupsGetDevices"><code>cupsGetDevices</code></a> API. Typically this API is used to locate printers to add the the system. Each device that is found will cause a supplied callback function to be executed. For example, to list the available printer devices that can be found within 30 seconds:</p>
571*5e7646d2SAndroid Build Coastguard Worker
572*5e7646d2SAndroid Build Coastguard Worker<pre class="example">
573*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/cups.h&gt;
574*5e7646d2SAndroid Build Coastguard Worker#include &lt;cups/adminutil.h&gt;
575*5e7646d2SAndroid Build Coastguard Worker
576*5e7646d2SAndroid Build Coastguard Worker
577*5e7646d2SAndroid Build Coastguard Workervoid
578*5e7646d2SAndroid Build Coastguard Workerget_devices_cb(
579*5e7646d2SAndroid Build Coastguard Worker    const char *device_class,           /* I - Class */
580*5e7646d2SAndroid Build Coastguard Worker    const char *device_id,              /* I - 1284 device ID */
581*5e7646d2SAndroid Build Coastguard Worker    const char *device_info,            /* I - Description */
582*5e7646d2SAndroid Build Coastguard Worker    const char *device_make_and_model,  /* I - Make and model */
583*5e7646d2SAndroid Build Coastguard Worker    const char *device_uri,             /* I - Device URI */
584*5e7646d2SAndroid Build Coastguard Worker    const char *device_location,        /* I - Location */
585*5e7646d2SAndroid Build Coastguard Worker    void       *user_data)              /* I - User data */
586*5e7646d2SAndroid Build Coastguard Worker{
587*5e7646d2SAndroid Build Coastguard Worker  puts(device_uri);
588*5e7646d2SAndroid Build Coastguard Worker}
589*5e7646d2SAndroid Build Coastguard Worker
590*5e7646d2SAndroid Build Coastguard Worker
591*5e7646d2SAndroid Build Coastguard Workervoid
592*5e7646d2SAndroid Build Coastguard Workershow_devices(void)
593*5e7646d2SAndroid Build Coastguard Worker{
594*5e7646d2SAndroid Build Coastguard Worker  <a href="#cupsGetDevices">cupsGetDevices</a>(CUPS_HTTP_DEFAULT, 30, NULL, NULL, get_devices_cb, NULL);
595*5e7646d2SAndroid Build Coastguard Worker}
596*5e7646d2SAndroid Build Coastguard Worker</pre>
597*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title"><a id="FUNCTIONS">Functions</a></h2>
598*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;DEPRECATED&#160;</span><a id="cupsAdminCreateWindowsPPD">cupsAdminCreateWindowsPPD</a></h3>
599*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Create the Windows PPD file for a printer.</p>
600*5e7646d2SAndroid Build Coastguard Worker<p class="code">
601*5e7646d2SAndroid Build Coastguard Workerchar *cupsAdminCreateWindowsPPD(http_t *http, const char *dest, char *buffer, int bufsize);</p>
602*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
603*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
604*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
605*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
606*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
607*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Printer or class</td></tr>
608*5e7646d2SAndroid Build Coastguard Worker<tr><th>buffer</th>
609*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Filename buffer</td></tr>
610*5e7646d2SAndroid Build Coastguard Worker<tr><th>bufsize</th>
611*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Size of filename buffer</td></tr>
612*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
613*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
614*5e7646d2SAndroid Build Coastguard Worker        <p class="description">PPD file or NULL</p>
615*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;DEPRECATED&#160;</span><a id="cupsAdminExportSamba">cupsAdminExportSamba</a></h3>
616*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Export a printer to Samba.</p>
617*5e7646d2SAndroid Build Coastguard Worker<p class="code">
618*5e7646d2SAndroid Build Coastguard Workerint cupsAdminExportSamba(const char *dest, const char *ppd, const char *samba_server, const char *samba_user, const char *samba_password, FILE *logfile);</p>
619*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
620*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
621*5e7646d2SAndroid Build Coastguard Worker<tr><th>dest</th>
622*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Destination to export</td></tr>
623*5e7646d2SAndroid Build Coastguard Worker<tr><th>ppd</th>
624*5e7646d2SAndroid Build Coastguard Worker        <td class="description">PPD file</td></tr>
625*5e7646d2SAndroid Build Coastguard Worker<tr><th>samba_server</th>
626*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Samba server</td></tr>
627*5e7646d2SAndroid Build Coastguard Worker<tr><th>samba_user</th>
628*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Samba username</td></tr>
629*5e7646d2SAndroid Build Coastguard Worker<tr><th>samba_password</th>
630*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Samba password</td></tr>
631*5e7646d2SAndroid Build Coastguard Worker<tr><th>logfile</th>
632*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Log file, if any</td></tr>
633*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
634*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
635*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
636*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.3/macOS 10.5&#160;</span><a id="cupsAdminGetServerSettings">cupsAdminGetServerSettings</a></h3>
637*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get settings from the server.</p>
638*5e7646d2SAndroid Build Coastguard Worker<p class="code">
639*5e7646d2SAndroid Build Coastguard Workerint cupsAdminGetServerSettings(http_t *http, int *num_settings, cups_option_t **settings);</p>
640*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
641*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
642*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
643*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
644*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_settings</th>
645*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of settings</td></tr>
646*5e7646d2SAndroid Build Coastguard Worker<tr><th>settings</th>
647*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Settings</td></tr>
648*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
649*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
650*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
651*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
652*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">The returned settings should be freed with cupsFreeOptions() when
653*5e7646d2SAndroid Build Coastguard Workeryou are done with them.
654*5e7646d2SAndroid Build Coastguard Worker
655*5e7646d2SAndroid Build Coastguard Worker</p>
656*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;CUPS 1.3/macOS 10.5&#160;</span><a id="cupsAdminSetServerSettings">cupsAdminSetServerSettings</a></h3>
657*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Set settings on the server.</p>
658*5e7646d2SAndroid Build Coastguard Worker<p class="code">
659*5e7646d2SAndroid Build Coastguard Workerint cupsAdminSetServerSettings(http_t *http, int num_settings, cups_option_t *settings);</p>
660*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
661*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
662*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
663*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
664*5e7646d2SAndroid Build Coastguard Worker<tr><th>num_settings</th>
665*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Number of settings</td></tr>
666*5e7646d2SAndroid Build Coastguard Worker<tr><th>settings</th>
667*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Settings</td></tr>
668*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
669*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
670*5e7646d2SAndroid Build Coastguard Worker        <p class="description">1 on success, 0 on failure</p>
671*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info">&#160;DEPRECATED&#160;</span><a id="cupsGetDevices">cupsGetDevices</a></h3>
672*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Get available printer devices.</p>
673*5e7646d2SAndroid Build Coastguard Worker<p class="code">
674*5e7646d2SAndroid Build Coastguard Workeripp_status_t cupsGetDevices(http_t *http, int timeout, const char *include_schemes, const char *exclude_schemes, <a href="#cups_device_cb_t">cups_device_cb_t</a> callback, void *user_data);</p>
675*5e7646d2SAndroid Build Coastguard Worker<h4 class="parameters">Parameters</h4>
676*5e7646d2SAndroid Build Coastguard Worker<table class="list"><tbody>
677*5e7646d2SAndroid Build Coastguard Worker<tr><th>http</th>
678*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></td></tr>
679*5e7646d2SAndroid Build Coastguard Worker<tr><th>timeout</th>
680*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Timeout in seconds or <code>CUPS_TIMEOUT_DEFAULT</code></td></tr>
681*5e7646d2SAndroid Build Coastguard Worker<tr><th>include_schemes</th>
682*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Comma-separated URI schemes to include or <code>CUPS_INCLUDE_ALL</code></td></tr>
683*5e7646d2SAndroid Build Coastguard Worker<tr><th>exclude_schemes</th>
684*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Comma-separated URI schemes to exclude or <code>CUPS_EXCLUDE_NONE</code></td></tr>
685*5e7646d2SAndroid Build Coastguard Worker<tr><th>callback</th>
686*5e7646d2SAndroid Build Coastguard Worker        <td class="description">Callback function</td></tr>
687*5e7646d2SAndroid Build Coastguard Worker<tr><th>user_data</th>
688*5e7646d2SAndroid Build Coastguard Worker        <td class="description">User data pointer</td></tr>
689*5e7646d2SAndroid Build Coastguard Worker</tbody></table>
690*5e7646d2SAndroid Build Coastguard Worker<h4 class="returnvalue">Return Value</h4>
691*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Request status - <code>IPP_OK</code> on success.</p>
692*5e7646d2SAndroid Build Coastguard Worker<h4 class="discussion">Discussion</h4>
693*5e7646d2SAndroid Build Coastguard Worker        <p class="discussion">This function sends a CUPS-Get-Devices request and streams the discovered
694*5e7646d2SAndroid Build Coastguard Workerdevices to the specified callback function. The &quot;timeout&quot; parameter controls
695*5e7646d2SAndroid Build Coastguard Workerhow long the request lasts, while the &quot;include_schemes&quot; and &quot;exclude_schemes&quot;
696*5e7646d2SAndroid Build Coastguard Workerparameters provide comma-delimited lists of backends to include or omit from
697*5e7646d2SAndroid Build Coastguard Workerthe request respectively.<br>
698*5e7646d2SAndroid Build Coastguard Worker<br>
699*5e7646d2SAndroid Build Coastguard WorkerThis function is deprecated with the IPP printer discovery functionality
700*5e7646d2SAndroid Build Coastguard Workerbeing provided by the <a href="#cupsEnumDests"><code>cupsEnumDests</code></a> and @cupsGetDests@ functions.
701*5e7646d2SAndroid Build Coastguard Worker
702*5e7646d2SAndroid Build Coastguard Worker</p>
703*5e7646d2SAndroid Build Coastguard Worker      <h2 class="title"><a id="TYPES">Data Types</a></h2>
704*5e7646d2SAndroid Build Coastguard Worker      <h3 class="typedef"><a id="cups_device_cb_t"><span class="info">&#160;CUPS 1.4/macOS 10.6&#160;</span>cups_device_cb_t</a></h3>
705*5e7646d2SAndroid Build Coastguard Worker        <p class="description">Device callback
706*5e7646d2SAndroid Build Coastguard Worker</p>
707*5e7646d2SAndroid Build Coastguard Worker      <p class="code">
708*5e7646d2SAndroid Build Coastguard Workertypedef void (*cups_device_cb_t)(const char *device_class, const char *device_id, const char *device_info, const char *device_make_and_model, const char *device_uri, const char *device_location, void *user_data);
709*5e7646d2SAndroid Build Coastguard Worker</p>
710*5e7646d2SAndroid Build Coastguard Worker    </div>
711*5e7646d2SAndroid Build Coastguard Worker  </body>
712*5e7646d2SAndroid Build Coastguard Worker</html>
713