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 © 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 © 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 "cups" library to talk to the different parts of CUPS and with Internet Printing Protocol (IPP) printers. The "cups" library functions are accessed by including the <code><cups/cups.h></code> header.</p> 521*5e7646d2SAndroid Build Coastguard Worker <p>CUPS is based on the Internet Printing Protocol ("IPP"), 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 "cups" 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 ("print four copies, two-sided on A4 media, and staple each copy") 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 <stdio.h> 542*5e7646d2SAndroid Build Coastguard Worker#include <cups/cups.h> 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->instance) 547*5e7646d2SAndroid Build Coastguard Worker printf("%s/%s\n", dest->name, dest->instance); 548*5e7646d2SAndroid Build Coastguard Worker else 549*5e7646d2SAndroid Build Coastguard Worker puts(dest->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 "firstcups". 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 "libcups" 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 "printer-type" 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&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 & 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->num_dests = 639*5e7646d2SAndroid Build Coastguard Worker cupsRemoveDest(dest->name, dest->instance, 640*5e7646d2SAndroid Build Coastguard Worker user_data->num_dests, 641*5e7646d2SAndroid Build Coastguard Worker &(user_data->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->num_dests = 650*5e7646d2SAndroid Build Coastguard Worker cupsCopyDest(dest, user_data->num_dests, 651*5e7646d2SAndroid Build Coastguard Worker &(user_data->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 &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>"auth-info-required": The type of authentication required for printing to this destination: "none", "username,password", "domain,username,password", or "negotiate" (Kerberos).</li> 692*5e7646d2SAndroid Build Coastguard Worker <li>"printer-info": The human-readable description of the destination such as "My Laser Printer".</li> 693*5e7646d2SAndroid Build Coastguard Worker <li>"printer-is-accepting-jobs": "true" if the destination is accepting new jobs, "false" otherwise.</li> 694*5e7646d2SAndroid Build Coastguard Worker <li>"printer-is-shared": "true" if the destination is being shared with other computers, "false" otherwise.</li> 695*5e7646d2SAndroid Build Coastguard Worker <li>"printer-location": The human-readable location of the destination such as "Lab 4".</li> 696*5e7646d2SAndroid Build Coastguard Worker <li>"printer-make-and-model": The human-readable make and model of the destination such as "ExampleCorp LaserPrinter 4000 Series".</li> 697*5e7646d2SAndroid Build Coastguard Worker <li>"printer-state": "3" if the destination is idle, "4" if the destination is printing a job, and "5" if the destination is stopped.</li> 698*5e7646d2SAndroid Build Coastguard Worker <li>"printer-state-change-time": The UNIX time when the destination entered the current state.</li> 699*5e7646d2SAndroid Build Coastguard Worker <li>"printer-state-reasons": Additional comma-delimited state keywords for the destination such as "media-tray-empty-error" and "toner-low-warning".</li> 700*5e7646d2SAndroid Build Coastguard Worker <li>"printer-type": The <code>cups_ptype_t</code> value associated with the destination.</li> 701*5e7646d2SAndroid Build Coastguard Worker <li>"printer-uri-supported": 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("printer-make-and-model", 705*5e7646d2SAndroid Build Coastguard Worker dest->num_options, 706*5e7646d2SAndroid Build Coastguard Worker dest->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("finishings supported:"); 756*5e7646d2SAndroid Build Coastguard Worker for (i = 0; i < count; i ++) 757*5e7646d2SAndroid Build Coastguard Worker printf(" %d\n", ippGetInteger(finishings, i)); 758*5e7646d2SAndroid Build Coastguard Worker} 759*5e7646d2SAndroid Build Coastguard Workerelse 760*5e7646d2SAndroid Build Coastguard Worker puts("finishings not supported."); 761*5e7646d2SAndroid Build Coastguard Worker</code></pre> 762*5e7646d2SAndroid Build Coastguard Worker <p>The "job-creation-attributes" 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 "job-creation-attributes"); 766*5e7646d2SAndroid Build Coastguard Workerint i, count = ippGetCount(attrs); 767*5e7646d2SAndroid Build Coastguard Worker 768*5e7646d2SAndroid Build Coastguard Workerfor (i = 0; i < 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->num_options, 781*5e7646d2SAndroid Build Coastguard Worker dest->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("Default finishings: %s\n", 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("Default finishings: %d", 795*5e7646d2SAndroid Build Coastguard Worker ippGetInteger(def_attr, 0)); 796*5e7646d2SAndroid Build Coastguard Worker for (i = 1; i < count; i ++) 797*5e7646d2SAndroid Build Coastguard Worker printf(",%d", 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("finishings ready:"); 818*5e7646d2SAndroid Build Coastguard Worker for (i = 0; i < count; i ++) 819*5e7646d2SAndroid Build Coastguard Worker printf(" %d\n", ippGetInteger(ready_finishings, i)); 820*5e7646d2SAndroid Build Coastguard Worker} 821*5e7646d2SAndroid Build Coastguard Workerelse 822*5e7646d2SAndroid Build Coastguard Worker puts("no finishings are ready."); 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 "ready" 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, &size)) 862*5e7646d2SAndroid Build Coastguard Worker{ 863*5e7646d2SAndroid Build Coastguard Worker puts("Margins for duplex US Letter:"); 864*5e7646d2SAndroid Build Coastguard Worker printf(" Bottom: %.2fin\n", size.bottom / 2540.0); 865*5e7646d2SAndroid Build Coastguard Worker printf(" Left: %.2fin\n", size.left / 2540.0); 866*5e7646d2SAndroid Build Coastguard Worker printf(" Right: %.2fin\n", size.right / 2540.0); 867*5e7646d2SAndroid Build Coastguard Worker printf(" Top: %.2fin\n", size.top / 2540.0); 868*5e7646d2SAndroid Build Coastguard Worker} 869*5e7646d2SAndroid Build Coastguard Workerelse 870*5e7646d2SAndroid Build Coastguard Worker puts("Margins for duplex US Letter are not available."); 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 < 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 &size)) 894*5e7646d2SAndroid Build Coastguard Worker { 895*5e7646d2SAndroid Build Coastguard Worker printf("%s:\n", size.name); 896*5e7646d2SAndroid Build Coastguard Worker printf(" Width: %.2fin\n", size.width / 2540.0); 897*5e7646d2SAndroid Build Coastguard Worker printf(" Length: %.2fin\n", size.length / 2540.0); 898*5e7646d2SAndroid Build Coastguard Worker printf(" Bottom: %.2fin\n", size.bottom / 2540.0); 899*5e7646d2SAndroid Build Coastguard Worker printf(" Left: %.2fin\n", size.left / 2540.0); 900*5e7646d2SAndroid Build Coastguard Worker printf(" Right: %.2fin\n", size.right / 2540.0); 901*5e7646d2SAndroid Build Coastguard Worker printf(" Top: %.2fin\n", 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 "My Document". 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, "42", 944*5e7646d2SAndroid Build Coastguard Worker num_options, &options); 945*5e7646d2SAndroid Build Coastguard Workernum_options = cupsAddOption(CUPS_MEDIA, CUPS_MEDIA_LETTER, 946*5e7646d2SAndroid Build Coastguard Worker num_options, &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, &options); 950*5e7646d2SAndroid Build Coastguard Worker 951*5e7646d2SAndroid Build Coastguard Workerif (cupsCreateDestJob(CUPS_HTTP_DEFAULT, dest, info, 952*5e7646d2SAndroid Build Coastguard Worker &job_id, "My Document", num_options, 953*5e7646d2SAndroid Build Coastguard Worker options) == IPP_STATUS_OK) 954*5e7646d2SAndroid Build Coastguard Worker printf("Created job: %d\n", job_id); 955*5e7646d2SAndroid Build Coastguard Workerelse 956*5e7646d2SAndroid Build Coastguard Worker printf("Unable to create job: %s\n", 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>: "image/jpeg"</li> 980*5e7646d2SAndroid Build Coastguard Worker <li><code>CUPS_FORMAT_PDF</code>: "application/pdf"</li> 981*5e7646d2SAndroid Build Coastguard Worker <li><code>CUPS_FORMAT_POSTSCRIPT</code>: "application/postscript"</li> 982*5e7646d2SAndroid Build Coastguard Worker <li><code>CUPS_FORMAT_TEXT</code>: "text/plain"</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("filename.pdf", "rb"); 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, "filename.pdf", 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)) > 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("Document send succeeded."); 1002*5e7646d2SAndroid Build Coastguard Worker else 1003*5e7646d2SAndroid Build Coastguard Worker printf("Document send failed: %s\n", 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, "attributes-charset" and "attributes-natural-language", followed by IPP attribute(s) that specify the target of the operation. The <code>ippNewRequest</code> automatically adds the correct "attributes-charset" and "attributes-natural-language" attributes, but you must add the target attribute(s). For example, the following code adds the "printer-uri" 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("device-uri", 1044*5e7646d2SAndroid Build Coastguard Worker dest->num_options, 1045*5e7646d2SAndroid Build Coastguard Worker dest->options); 1046*5e7646d2SAndroid Build Coastguard Worker 1047*5e7646d2SAndroid Build Coastguard WorkerippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, 1048*5e7646d2SAndroid Build Coastguard Worker "printer-uri", 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 "printer-uri-supported" option instead of the "device-uri" value.</p> 1053*5e7646d2SAndroid Build Coastguard Worker</blockquote> 1054*5e7646d2SAndroid Build Coastguard Worker <p>The <code>ippAddString</code> function adds the "printer-uri" 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 "requested-attributes" 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 "printer-state", 1059*5e7646d2SAndroid Build Coastguard Worker "printer-state-message", 1060*5e7646d2SAndroid Build Coastguard Worker "printer-state-reasons" 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 "requested-attributes", 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() >= 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() >= IPP_STATUS_ERROR_BAD_REQUEST) 1099*5e7646d2SAndroid Build Coastguard Worker{ 1100*5e7646d2SAndroid Build Coastguard Worker /* request failed */ 1101*5e7646d2SAndroid Build Coastguard Worker printf("Request failed: %s\n", 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, "printer-state", 1110*5e7646d2SAndroid Build Coastguard Worker IPP_TAG_ENUM)) != NULL) 1111*5e7646d2SAndroid Build Coastguard Worker{ 1112*5e7646d2SAndroid Build Coastguard Worker printf("printer-state=%s\n", 1113*5e7646d2SAndroid Build Coastguard Worker ippEnumString("printer-state", ippGetInteger(attr, 0))); 1114*5e7646d2SAndroid Build Coastguard Worker} 1115*5e7646d2SAndroid Build Coastguard Workerelse 1116*5e7646d2SAndroid Build Coastguard Worker puts("printer-state=unknown"); 1117*5e7646d2SAndroid Build Coastguard Worker 1118*5e7646d2SAndroid Build Coastguard Workerif ((attr = ippFindAttribute(response, "printer-state-message", 1119*5e7646d2SAndroid Build Coastguard Worker IPP_TAG_TEXT)) != NULL) 1120*5e7646d2SAndroid Build Coastguard Worker{ 1121*5e7646d2SAndroid Build Coastguard Worker printf("printer-state-message=\"%s\"\n", 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, "printer-state-reasons", 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("printer-state-reasons="); 1131*5e7646d2SAndroid Build Coastguard Worker for (i = 0; i < count; i ++) 1132*5e7646d2SAndroid Build Coastguard Worker printf(" %s\n", 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 "POST".</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"> CUPS 2.3/macOS 10.14 </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"> CUPS 2.2.4/macOS 10.13 </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"num_options" 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"num_options" parameter.</p> 1251*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </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 "job_id" 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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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 "last_document". 1317*5e7646d2SAndroid Build Coastguard Worker"job_id" 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"> CUPS 1.6/macOS 10.8 </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 "cancel" 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 "cancel" 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 "flags" 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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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">"num_options" and "options" represent the currently selected options by the 1415*5e7646d2SAndroid Build Coastguard Workeruser. "new_option" and "new_value" 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 "num_conflicts" and "conflicts" 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"num_resolved" and "resolved" 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 "num_resolved" and "resolved" 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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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 "job_id". 1475*5e7646d2SAndroid Build Coastguard Worker 1476*5e7646d2SAndroid Build Coastguard Worker</p> 1477*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.1.20/macOS 10.4 </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 ("GET", "POST", "PUT")</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"> CUPS 2.3/macOS 10.14 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.6/macOS 10.8 </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 "cancel" 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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.6/macOS 10.8 </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 "media" string is a PWG media name. "Flags" 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 "ready" media.<br> 1825*5e7646d2SAndroid Build Coastguard Worker<br> 1826*5e7646d2SAndroid Build Coastguard WorkerThe matching result (if any) is returned in the "cups_size_t" 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"> CUPS 1.6/macOS 10.8 </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">"Width" and "length" are the dimensions in hundredths of millimeters. 1858*5e7646d2SAndroid Build Coastguard Worker"Flags" 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 "ready" media.<br> 1866*5e7646d2SAndroid Build Coastguard Worker<br> 1867*5e7646d2SAndroid Build Coastguard WorkerThe matching result (if any) is returned in the "cups_size_t" 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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 2.0/macOS 10.10 </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">"name" 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"uri" is the "ipp" or "ipps" 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"> CUPS 1.1.21/macOS 10.4 </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"printer-info", "printer-is-accepting-jobs", "printer-is-shared", 1957*5e7646d2SAndroid Build Coastguard Worker"printer-make-and-model", "printer-state", "printer-state-change-time", 1958*5e7646d2SAndroid Build Coastguard Worker"printer-state-reasons", "printer-type", and "printer-uri-supported" 1959*5e7646d2SAndroid Build Coastguard Workerattributes as options.<br> 1960*5e7646d2SAndroid Build Coastguard Worker<br> 1961*5e7646d2SAndroid Build Coastguard WorkerCUPS 1.4 adds the "marker-change-time", "marker-colors", 1962*5e7646d2SAndroid Build Coastguard Worker"marker-high-levels", "marker-levels", "marker-low-levels", "marker-message", 1963*5e7646d2SAndroid Build Coastguard Worker"marker-names", "marker-types", and "printer-commands" 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 "printer-uri-supported" 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"> CUPS 2.2.4/macOS 10.13 </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 "int" type. 1991*5e7646d2SAndroid Build Coastguard Worker 1992*5e7646d2SAndroid Build Coastguard Worker</p> 1993*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.1.21/macOS 10.4 </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 "whichjobs" 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"> CUPS 1.4/macOS 10.6 </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 "http" 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 "name" 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"num_dests" 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"> CUPS 1.4/macOS 10.6 </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 ("GET", "POST", "PUT")</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"> CUPS 2.0/macOS 10.10 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 2.0/OS 10.10 </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("name={a=... b=... c=...}") 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"> CUPS 1.3/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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 "localhost" 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"> CUPS 1.5/macOS 10.7 </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"> CUPS 1.5/macOS 10.7 </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"> CUPS 1.3/macOS 10.5 </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"> CUPS 1.1.21/macOS 10.4 </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"> CUPS 1.4/macOS 10.6 </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 "server" 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. "hostname:8631". 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"> CUPS 1.5/macOS 10.7 </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"> CUPS 2.0/macOS 10.10 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.6/macOS 10.8 </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">"job_id" is the job ID returned by cupsCreateDestJob. "docname" is the name 2493*5e7646d2SAndroid Build Coastguard Workerof the document/file being printed, "format" is the MIME media type for the 2494*5e7646d2SAndroid Build Coastguard Workerdocument (see CUPS_FORMAT_xxx constants), and "num_options" and "options" 2495*5e7646d2SAndroid Build Coastguard Workerare the options do be applied to the document. "last_document" 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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.5/macOS 10.7 </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"> CUPS 1.2/macOS 10.5 </span><a id="httpAddrAny">httpAddrAny</a></h3> 2552*5e7646d2SAndroid Build Coastguard Worker <p class="description">Check for the "any" 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 "any", 0 otherwise</p> 2562*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 2.0/OS 10.10 </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"> CUPS 1.7/macOS 10.9 </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 "cancel" 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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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 "encoding" 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"> CUPS 1.2/macOS 10.5 </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 "resourcef" and escapes reserved characters in the URI 2800*5e7646d2SAndroid Build Coastguard Workerdepending on the value of the "encoding" 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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.1.19/macOS 10.3 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.7/macOS 10.9 </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 "cancel" 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"> CUPS 1.5/macOS 10.7 </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"> CUPS 2.0/macOS 10.10 </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"> CUPS 2.0/macOS 10.10 </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"> CUPS 2.0/macOS 10.10 </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"> CUPS 2.0/macOS 10.10 </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"> CUPS 1.1.21/macOS 10.4 </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 "outlen" to the maximum size of the decoded 3004*5e7646d2SAndroid Build Coastguard Workerstring before calling <code>httpDecode64_2</code>. On return "outlen" 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"> CUPS 1.1.21/macOS 10.4 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.3/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.1.19/macOS 10.3 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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 "http" 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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.7/macOS 10.9 </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 "cancel" 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"> CUPS 2.0/OS 10.10 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.3/macOS 10.5 </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"> CUPS 1.1.19/macOS 10.3 </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"> CUPS 1.5/macOS 10.7 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.2/macOS 10.5 </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 "expect" 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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.5/macOS 10.7 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.1.19/macOS 10.3 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.1.19/macOS 10.3 </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"> CUPS 1.1.19/macOS 10.3 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.6/macOS 10.8 </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 "shallow" 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"> CUPS 1.6/macOS 10.8 </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 "shallow" 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 "filter" 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"> CUPS 1.7/macOS 10.9 </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 "requested-attribute" 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"> CUPS 1.1.19/macOS 10.3 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.2/macOS 10.5 </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"media-col/media-size".</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"media-col/media-size".</p> 4790*5e7646d2SAndroid Build Coastguard Worker<h3 class="function"><span class="info"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.2/macOS 10.5 </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 "attributes-charset" and 5085*5e7646d2SAndroid Build Coastguard Worker"attributes-natural-language" attributes added. The 5086*5e7646d2SAndroid Build Coastguard Worker"attributes-natural-language" 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"> CUPS 1.7/macOS 10.9 </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 "version-number", 5102*5e7646d2SAndroid Build Coastguard Worker"request-id", "attributes-charset", and "attributes-natural-language" as the 5103*5e7646d2SAndroid Build Coastguard Workerprovided request message. If the "attributes-charset" or 5104*5e7646d2SAndroid Build Coastguard Worker"attributes-natural-language" 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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.1.19/macOS 10.3 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.6/macOS 10.8 </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 "attributes-natural-language" 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"> CUPS 1.6/macOS 10.8 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.4/macOS 10.6 </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"> CUPS 1.4/macOS 10.6 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.1.19/macOS 10.3 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.5/macOS 10.7 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.4/macOS 10.6 </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"> CUPS 1.5/macOS 10.7 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.5/macOS 10.7 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.2 </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"> CUPS 1.6/macOS 10.8 </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"> CUPS 1.2/macOS 10.5 </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    char *name, *instance;<br> 5975*5e7646d2SAndroid Build Coastguard Worker    int is_default;<br> 5976*5e7646d2SAndroid Build Coastguard Worker    int num_options;<br> 5977*5e7646d2SAndroid Build Coastguard Worker    <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    time_t completed_time;<br> 5994*5e7646d2SAndroid Build Coastguard Worker    time_t creation_time;<br> 5995*5e7646d2SAndroid Build Coastguard Worker    char *dest;<br> 5996*5e7646d2SAndroid Build Coastguard Worker    char *format;<br> 5997*5e7646d2SAndroid Build Coastguard Worker    int id;<br> 5998*5e7646d2SAndroid Build Coastguard Worker    int priority;<br> 5999*5e7646d2SAndroid Build Coastguard Worker    time_t processing_time;<br> 6000*5e7646d2SAndroid Build Coastguard Worker    int size;<br> 6001*5e7646d2SAndroid Build Coastguard Worker    ipp_jstate_t state;<br> 6002*5e7646d2SAndroid Build Coastguard Worker    char *title;<br> 6003*5e7646d2SAndroid Build Coastguard Worker    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    char *name;<br> 6034*5e7646d2SAndroid Build Coastguard Worker    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"> CUPS 1.6/macOS 10.8 </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    char media[128];<br> 6047*5e7646d2SAndroid Build Coastguard Worker    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"> CUPS 1.2/macOS 10.5 </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&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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.7/macOS 10.9 </span></th> <td class="description">Allow field </td></tr> 6116*5e7646d2SAndroid Build Coastguard Worker <tr><th>HTTP_FIELD_AUTHENTICATION_INFO <span class="info"> CUPS 2.2.9) </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 1.4 </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"> CUPS 1.5/macOS 10.7 </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"> CUPS 1.7/macOS 10.9 </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"> CUPS 2.0/OS 10.10 </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"> CUPS 1.2 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 2.2 </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"> DEPRECATED </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"> CUPS 1.4/macOS 10.6 </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"> DEPRECATED </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"> DEPRECATED </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> CUPS 1.2/macOS 10.5 </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"> DEPRECATED </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"> DEPRECATED </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"> DEPRECATED </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"> DEPRECATED </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"> CUPS 1.5/macOS 10.7 </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"> CUPS 1.5/macOS 10.7 </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"> CUPS 1.5/macOS 10.7 </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