1package Net::CUPS;
2
3##==================================================================##
4##  Libraries and Variables                                         ##
5##==================================================================##
6
7use 5.006;
8use strict;
9use warnings;
10use Carp;
11
12require Exporter;
13use AutoLoader;
14
15our @ISA = qw(Exporter);
16
17# Items to export into callers namespace by default. Note: do not export
18# names by default without a very good reason. Use EXPORT_OK instead.
19# Do not simply export all your public functions/methods/constants.
20
21# This allows declaration	use Net::CUPS ':all';
22# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
23# will save memory.
24our %EXPORT_TAGS = ( 'all' => [ qw(
25	AF_LOCAL
26	CUPS_ACCEPT_JOBS
27	CUPS_ADD_CLASS
28	CUPS_ADD_MODIFY_CLASS
29	CUPS_ADD_MODIFY_PRINTER
30	CUPS_ADD_PRINTER
31	CUPS_AUTHENTICATE_JOB
32	CUPS_AUTO_ENCODING
33	CUPS_BACKEND_AUTH_REQUIRED
34	CUPS_BACKEND_CANCEL
35	CUPS_BACKEND_FAILED
36	CUPS_BACKEND_HOLD
37	CUPS_BACKEND_OK
38	CUPS_BACKEND_STOP
39	CUPS_DATE_ANY
40	CUPS_DELETE_CLASS
41	CUPS_DELETE_PRINTER
42	CUPS_ENCODING_DBCS_END
43	CUPS_ENCODING_SBCS_END
44	CUPS_ENCODING_VBCS_END
45	CUPS_EUC_CN
46	CUPS_EUC_JP
47	CUPS_EUC_KR
48	CUPS_EUC_TW
49	CUPS_FILE_GZIP
50	CUPS_FILE_NONE
51	CUPS_GET_CLASSES
52	CUPS_GET_DEFAULT
53	CUPS_GET_DEVICES
54	CUPS_GET_PPDS
55	CUPS_GET_PRINTERS
56	CUPS_IMAGE_BLACK
57	CUPS_IMAGE_CMY
58	CUPS_IMAGE_CMYK
59	CUPS_IMAGE_RGB
60	CUPS_IMAGE_RGB_CMYK
61	CUPS_IMAGE_WHITE
62	CUPS_ISO8859_1
63	CUPS_ISO8859_10
64	CUPS_ISO8859_11
65	CUPS_ISO8859_13
66	CUPS_ISO8859_14
67	CUPS_ISO8859_15
68	CUPS_ISO8859_16
69	CUPS_ISO8859_2
70	CUPS_ISO8859_3
71	CUPS_ISO8859_4
72	CUPS_ISO8859_5
73	CUPS_ISO8859_6
74	CUPS_ISO8859_7
75	CUPS_ISO8859_8
76	CUPS_ISO8859_9
77	CUPS_KOI8_R
78	CUPS_KOI8_U
79	CUPS_MAC_ROMAN
80	CUPS_MAX_USTRING
81	CUPS_MOVE_JOB
82	CUPS_PRINTER_AUTHENTICATED
83	CUPS_PRINTER_BIND
84	CUPS_PRINTER_BW
85	CUPS_PRINTER_CLASS
86	CUPS_PRINTER_COLLATE
87	CUPS_PRINTER_COLOR
88	CUPS_PRINTER_COMMANDS
89	CUPS_PRINTER_COPIES
90	CUPS_PRINTER_COVER
91	CUPS_PRINTER_DEFAULT
92	CUPS_PRINTER_DELETE
93	CUPS_PRINTER_DUPLEX
94	CUPS_PRINTER_FAX
95	CUPS_PRINTER_IMPLICIT
96	CUPS_PRINTER_LARGE
97	CUPS_PRINTER_LOCAL
98	CUPS_PRINTER_MEDIUM
99	CUPS_PRINTER_NOT_SHARED
100	CUPS_PRINTER_OPTIONS
101	CUPS_PRINTER_PUNCH
102	CUPS_PRINTER_REJECTING
103	CUPS_PRINTER_REMOTE
104	CUPS_PRINTER_SMALL
105	CUPS_PRINTER_SORT
106	CUPS_PRINTER_STAPLE
107	CUPS_PRINTER_VARIABLE
108	CUPS_REJECT_JOBS
109	CUPS_SET_DEFAULT
110	CUPS_US_ASCII
111	CUPS_UTF8
112	CUPS_VERSION
113	CUPS_VERSION_MAJOR
114	CUPS_VERSION_MINOR
115	CUPS_VERSION_PATCH
116	CUPS_WINDOWS_1250
117	CUPS_WINDOWS_1251
118	CUPS_WINDOWS_1252
119	CUPS_WINDOWS_1253
120	CUPS_WINDOWS_1254
121	CUPS_WINDOWS_1255
122	CUPS_WINDOWS_1256
123	CUPS_WINDOWS_1257
124	CUPS_WINDOWS_1258
125	CUPS_WINDOWS_1361
126	CUPS_WINDOWS_874
127	CUPS_WINDOWS_932
128	CUPS_WINDOWS_936
129	CUPS_WINDOWS_949
130	CUPS_WINDOWS_950
131	HTTP_0_9
132	HTTP_1_0
133	HTTP_1_1
134	HTTP_ACCEPTED
135	HTTP_AUTH_BASIC
136	HTTP_AUTH_MD5
137	HTTP_AUTH_MD5_INT
138	HTTP_AUTH_MD5_SESS
139	HTTP_AUTH_MD5_SESS_INT
140	HTTP_AUTH_NONE
141	HTTP_BAD_GATEWAY
142	HTTP_BAD_REQUEST
143	HTTP_CLOSE
144	HTTP_CONFLICT
145	HTTP_CONTINUE
146	HTTP_CREATED
147	HTTP_DELETE
148	HTTP_ENCODE_CHUNKED
149	HTTP_ENCODE_FIELDS
150	HTTP_ENCODE_LENGTH
151	HTTP_ENCRYPT_ALWAYS
152	HTTP_ENCRYPT_IF_REQUESTED
153	HTTP_ENCRYPT_NEVER
154	HTTP_ENCRYPT_REQUIRED
155	HTTP_ERROR
156	HTTP_EXPECTATION_FAILED
157	HTTP_FIELD_ACCEPT_LANGUAGE
158	HTTP_FIELD_ACCEPT_RANGES
159	HTTP_FIELD_AUTHORIZATION
160	HTTP_FIELD_CONNECTION
161	HTTP_FIELD_CONTENT_ENCODING
162	HTTP_FIELD_CONTENT_LANGUAGE
163	HTTP_FIELD_CONTENT_LENGTH
164	HTTP_FIELD_CONTENT_LOCATION
165	HTTP_FIELD_CONTENT_MD5
166	HTTP_FIELD_CONTENT_RANGE
167	HTTP_FIELD_CONTENT_TYPE
168	HTTP_FIELD_CONTENT_VERSION
169	HTTP_FIELD_DATE
170	HTTP_FIELD_HOST
171	HTTP_FIELD_IF_MODIFIED_SINCE
172	HTTP_FIELD_IF_UNMODIFIED_SINCE
173	HTTP_FIELD_KEEP_ALIVE
174	HTTP_FIELD_LAST_MODIFIED
175	HTTP_FIELD_LINK
176	HTTP_FIELD_LOCATION
177	HTTP_FIELD_MAX
178	HTTP_FIELD_RANGE
179	HTTP_FIELD_REFERER
180	HTTP_FIELD_RETRY_AFTER
181	HTTP_FIELD_TRANSFER_ENCODING
182	HTTP_FIELD_UNKNOWN
183	HTTP_FIELD_UPGRADE
184	HTTP_FIELD_USER_AGENT
185	HTTP_FIELD_WWW_AUTHENTICATE
186	HTTP_FORBIDDEN
187	HTTP_GATEWAY_TIMEOUT
188	HTTP_GET
189	HTTP_GET_SEND
190	HTTP_GONE
191	HTTP_HEAD
192	HTTP_KEEPALIVE_OFF
193	HTTP_KEEPALIVE_ON
194	HTTP_LENGTH_REQUIRED
195	HTTP_MAX_BUFFER
196	HTTP_MAX_HOST
197	HTTP_MAX_URI
198	HTTP_MAX_VALUE
199	HTTP_METHOD_NOT_ALLOWED
200	HTTP_MOVED_PERMANENTLY
201	HTTP_MOVED_TEMPORARILY
202	HTTP_MULTIPLE_CHOICES
203	HTTP_NOT_ACCEPTABLE
204	HTTP_NOT_AUTHORITATIVE
205	HTTP_NOT_FOUND
206	HTTP_NOT_IMPLEMENTED
207	HTTP_NOT_MODIFIED
208	HTTP_NOT_SUPPORTED
209	HTTP_NO_CONTENT
210	HTTP_OK
211	HTTP_OPTIONS
212	HTTP_PARTIAL_CONTENT
213	HTTP_PAYMENT_REQUIRED
214	HTTP_POST
215	HTTP_POST_RECV
216	HTTP_POST_SEND
217	HTTP_PRECONDITION
218	HTTP_PROXY_AUTHENTICATION
219	HTTP_PUT
220	HTTP_PUT_RECV
221	HTTP_REQUESTED_RANGE
222	HTTP_REQUEST_TIMEOUT
223	HTTP_REQUEST_TOO_LARGE
224	HTTP_RESET_CONTENT
225	HTTP_SEE_OTHER
226	HTTP_SERVER_ERROR
227	HTTP_SERVICE_UNAVAILABLE
228	HTTP_STATUS
229	HTTP_SWITCHING_PROTOCOLS
230	HTTP_TRACE
231	HTTP_UNAUTHORIZED
232	HTTP_UNSUPPORTED_MEDIATYPE
233	HTTP_UPGRADE_REQUIRED
234	HTTP_URI_BAD_ARGUMENTS
235	HTTP_URI_BAD_HOSTNAME
236	HTTP_URI_BAD_PORT
237	HTTP_URI_BAD_RESOURCE
238	HTTP_URI_BAD_SCHEME
239	HTTP_URI_BAD_URI
240	HTTP_URI_BAD_USERNAME
241	HTTP_URI_CODING_ALL
242	HTTP_URI_CODING_HOSTNAME
243	HTTP_URI_CODING_MOST
244	HTTP_URI_CODING_NONE
245	HTTP_URI_CODING_QUERY
246	HTTP_URI_CODING_RESOURCE
247	HTTP_URI_CODING_USERNAME
248	HTTP_URI_MISSING_RESOURCE
249	HTTP_URI_MISSING_SCHEME
250	HTTP_URI_OK
251	HTTP_URI_OVERFLOW
252	HTTP_URI_TOO_LONG
253	HTTP_URI_UNKNOWN_SCHEME
254	HTTP_USE_PROXY
255	HTTP_WAITING
256	INET6
257	IPP_ACTIVATE_PRINTER
258	IPP_ATTRIBUTE
259	IPP_ATTRIBUTES
260	IPP_ATTRIBUTES_NOT_SETTABLE
261	IPP_BAD_REQUEST
262	IPP_CANCEL_CURRENT_JOB
263	IPP_CANCEL_JOB
264	IPP_CANCEL_SUBSCRIPTION
265	IPP_CHARSET
266	IPP_COMPRESSION_ERROR
267	IPP_COMPRESSION_NOT_SUPPORTED
268	IPP_CONFLICT
269	IPP_CREATE_JOB
270	IPP_CREATE_JOB_SUBSCRIPTION
271	IPP_CREATE_PRINTER_SUBSCRIPTION
272	IPP_DATA
273	IPP_DEACTIVATE_PRINTER
274	IPP_DEVICE_ERROR
275	IPP_DISABLE_PRINTER
276	IPP_DOCUMENT_ACCESS_ERROR
277	IPP_DOCUMENT_FORMAT
278	IPP_DOCUMENT_FORMAT_ERROR
279	IPP_ENABLE_PRINTER
280	IPP_ERROR
281	IPP_ERROR_JOB_CANCELED
282	IPP_ERROR_JOB_CANCELLED
283	IPP_FINISHINGS_BALE
284	IPP_FINISHINGS_BIND
285	IPP_FINISHINGS_BIND_BOTTOM
286	IPP_FINISHINGS_BIND_LEFT
287	IPP_FINISHINGS_BIND_RIGHT
288	IPP_FINISHINGS_BIND_TOP
289	IPP_FINISHINGS_BOOKLET_MAKER
290	IPP_FINISHINGS_COVER
291	IPP_FINISHINGS_EDGE_STITCH
292	IPP_FINISHINGS_EDGE_STITCH_BOTTOM
293	IPP_FINISHINGS_EDGE_STITCH_LEFT
294	IPP_FINISHINGS_EDGE_STITCH_RIGHT
295	IPP_FINISHINGS_EDGE_STITCH_TOP
296	IPP_FINISHINGS_FOLD
297	IPP_FINISHINGS_JOB_OFFSET
298	IPP_FINISHINGS_NONE
299	IPP_FINISHINGS_PUNCH
300	IPP_FINISHINGS_SADDLE_STITCH
301	IPP_FINISHINGS_STAPLE
302	IPP_FINISHINGS_STAPLE_BOTTOM_LEFT
303	IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT
304	IPP_FINISHINGS_STAPLE_DUAL_BOTTOM
305	IPP_FINISHINGS_STAPLE_DUAL_LEFT
306	IPP_FINISHINGS_STAPLE_DUAL_RIGHT
307	IPP_FINISHINGS_STAPLE_DUAL_TOP
308	IPP_FINISHINGS_STAPLE_TOP_LEFT
309	IPP_FINISHINGS_STAPLE_TOP_RIGHT
310	IPP_FINISHINGS_TRIM
311	IPP_FORBIDDEN
312	IPP_GET_JOBS
313	IPP_GET_JOB_ATTRIBUTES
314	IPP_GET_NOTIFICATIONS
315	IPP_GET_PRINTER_ATTRIBUTES
316	IPP_GET_PRINTER_SUPPORTED_VALUES
317	IPP_GET_PRINT_SUPPORT_FILES
318	IPP_GET_SUBSCRIPTIONS
319	IPP_GET_SUBSCRIPTION_ATTRIBUTES
320	IPP_GONE
321	IPP_HEADER
322	IPP_HOLD_JOB
323	IPP_HOLD_NEW_JOBS
324	IPP_IDLE
325	IPP_IGNORED_ALL_NOTIFICATIONS
326	IPP_IGNORED_ALL_SUBSCRIPTIONS
327	IPP_INTERNAL_ERROR
328	IPP_JOB_ABORTED
329	IPP_JOB_CANCELED
330	IPP_JOB_CANCELLED
331	IPP_JOB_COMPLETED
332	IPP_JOB_HELD
333	IPP_JOB_PENDING
334	IPP_JOB_PROCESSING
335	IPP_JOB_STOPPED
336	IPP_LANDSCAPE
337	IPP_MAX_NAME
338	IPP_MAX_VALUES
339	IPP_MULTIPLE_JOBS_NOT_SUPPORTED
340	IPP_NOT_ACCEPTING
341	IPP_NOT_AUTHENTICATED
342	IPP_NOT_AUTHORIZED
343	IPP_NOT_FOUND
344	IPP_NOT_POSSIBLE
345	IPP_OK
346	IPP_OK_BUT_CANCEL_SUBSCRIPTION
347	IPP_OK_CONFLICT
348	IPP_OK_EVENTS_COMPLETE
349	IPP_OK_IGNORED_NOTIFICATIONS
350	IPP_OK_IGNORED_SUBSCRIPTIONS
351	IPP_OK_SUBST
352	IPP_OK_TOO_MANY_EVENTS
353	IPP_OPERATION_NOT_SUPPORTED
354	IPP_PAUSE_PRINTER
355	IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB
356	IPP_PORT
357	IPP_PORTRAIT
358	IPP_PRINTER_BUSY
359	IPP_PRINTER_IDLE
360	IPP_PRINTER_IS_DEACTIVATED
361	IPP_PRINTER_PROCESSING
362	IPP_PRINTER_STOPPED
363	IPP_PRINT_JOB
364	IPP_PRINT_SUPPORT_FILE_NOT_FOUND
365	IPP_PRINT_URI
366	IPP_PRIVATE
367	IPP_PROMOTE_JOB
368	IPP_PURGE_JOBS
369	IPP_QUALITY_DRAFT
370	IPP_QUALITY_HIGH
371	IPP_QUALITY_NORMAL
372	IPP_REDIRECTION_OTHER_SITE
373	IPP_RELEASE_HELD_NEW_JOBS
374	IPP_RELEASE_JOB
375	IPP_RENEW_SUBSCRIPTION
376	IPP_REPROCESS_JOB
377	IPP_REQUEST_ENTITY
378	IPP_REQUEST_VALUE
379	IPP_RESTART_JOB
380	IPP_RESTART_PRINTER
381	IPP_RESUME_JOB
382	IPP_RESUME_PRINTER
383	IPP_RES_PER_CM
384	IPP_RES_PER_INCH
385	IPP_REVERSE_LANDSCAPE
386	IPP_REVERSE_PORTRAIT
387	IPP_SCHEDULE_JOB_AFTER
388	IPP_SEND_DOCUMENT
389	IPP_SEND_NOTIFICATIONS
390	IPP_SEND_URI
391	IPP_SERVICE_UNAVAILABLE
392	IPP_SET_JOB_ATTRIBUTES
393	IPP_SET_PRINTER_ATTRIBUTES
394	IPP_SHUTDOWN_PRINTER
395	IPP_STARTUP_PRINTER
396	IPP_SUSPEND_CURRENT_JOB
397	IPP_TAG_ADMINDEFINE
398	IPP_TAG_BEGIN_COLLECTION
399	IPP_TAG_BOOLEAN
400	IPP_TAG_CHARSET
401	IPP_TAG_COPY
402	IPP_TAG_DATE
403	IPP_TAG_DEFAULT
404	IPP_TAG_DELETEATTR
405	IPP_TAG_END
406	IPP_TAG_END_COLLECTION
407	IPP_TAG_ENUM
408	IPP_TAG_EVENT_NOTIFICATION
409	IPP_TAG_INTEGER
410	IPP_TAG_JOB
411	IPP_TAG_KEYWORD
412	IPP_TAG_LANGUAGE
413	IPP_TAG_MASK
414	IPP_TAG_MEMBERNAME
415	IPP_TAG_MIMETYPE
416	IPP_TAG_NAME
417	IPP_TAG_NAMELANG
418	IPP_TAG_NOTSETTABLE
419	IPP_TAG_NOVALUE
420	IPP_TAG_OPERATION
421	IPP_TAG_PRINTER
422	IPP_TAG_RANGE
423	IPP_TAG_RESOLUTION
424	IPP_TAG_STRING
425	IPP_TAG_SUBSCRIPTION
426	IPP_TAG_TEXT
427	IPP_TAG_TEXTLANG
428	IPP_TAG_UNKNOWN
429	IPP_TAG_UNSUPPORTED_GROUP
430	IPP_TAG_UNSUPPORTED_VALUE
431	IPP_TAG_URI
432	IPP_TAG_URISCHEME
433	IPP_TAG_ZERO
434	IPP_TEMPORARY_ERROR
435	IPP_TIMEOUT
436	IPP_TOO_MANY_SUBSCRIPTIONS
437	IPP_URI_SCHEME
438	IPP_VALIDATE_JOB
439	IPP_VERSION_NOT_SUPPORTED
440	PPD_ALLOC_ERROR
441	PPD_BAD_CUSTOM_PARAM
442	PPD_BAD_OPEN_GROUP
443	PPD_BAD_OPEN_UI
444	PPD_BAD_ORDER_DEPENDENCY
445	PPD_BAD_UI_CONSTRAINTS
446	PPD_CONFORM_RELAXED
447	PPD_CONFORM_STRICT
448	PPD_CS_CMY
449	PPD_CS_CMYK
450	PPD_CS_GRAY
451	PPD_CS_N
452	PPD_CS_RGB
453	PPD_CS_RGBK
454	PPD_CUSTOM_CURVE
455	PPD_CUSTOM_INT
456	PPD_CUSTOM_INVCURVE
457	PPD_CUSTOM_PASSCODE
458	PPD_CUSTOM_PASSWORD
459	PPD_CUSTOM_POINTS
460	PPD_CUSTOM_REAL
461	PPD_CUSTOM_STRING
462	PPD_FILE_OPEN_ERROR
463	PPD_ILLEGAL_CHARACTER
464	PPD_ILLEGAL_MAIN_KEYWORD
465	PPD_ILLEGAL_OPTION_KEYWORD
466	PPD_ILLEGAL_TRANSLATION
467	PPD_ILLEGAL_WHITESPACE
468	PPD_INTERNAL_ERROR
469	PPD_LINE_TOO_LONG
470	PPD_MAX_LINE
471	PPD_MAX_NAME
472	PPD_MAX_TEXT
473	PPD_MISSING_ASTERISK
474	PPD_MISSING_PPDADOBE4
475	PPD_MISSING_VALUE
476	PPD_NESTED_OPEN_GROUP
477	PPD_NESTED_OPEN_UI
478	PPD_NULL_FILE
479	PPD_OK
480	PPD_ORDER_ANY
481	PPD_ORDER_DOCUMENT
482	PPD_ORDER_EXIT
483	PPD_ORDER_JCL
484	PPD_ORDER_PAGE
485	PPD_ORDER_PROLOG
486	PPD_UI_BOOLEAN
487	PPD_UI_PICKMANY
488	PPD_UI_PICKONE
489	PPD_VERSION
490) ] );
491
492our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
493
494our @EXPORT = qw(
495	AF_LOCAL
496	CUPS_ACCEPT_JOBS
497	CUPS_ADD_CLASS
498	CUPS_ADD_MODIFY_CLASS
499	CUPS_ADD_MODIFY_PRINTER
500	CUPS_ADD_PRINTER
501	CUPS_AUTHENTICATE_JOB
502	CUPS_AUTO_ENCODING
503	CUPS_BACKEND_AUTH_REQUIRED
504	CUPS_BACKEND_CANCEL
505	CUPS_BACKEND_FAILED
506	CUPS_BACKEND_HOLD
507	CUPS_BACKEND_OK
508	CUPS_BACKEND_STOP
509	CUPS_DATE_ANY
510	CUPS_DELETE_CLASS
511	CUPS_DELETE_PRINTER
512	CUPS_ENCODING_DBCS_END
513	CUPS_ENCODING_SBCS_END
514	CUPS_ENCODING_VBCS_END
515	CUPS_EUC_CN
516	CUPS_EUC_JP
517	CUPS_EUC_KR
518	CUPS_EUC_TW
519	CUPS_FILE_GZIP
520	CUPS_FILE_NONE
521	CUPS_GET_CLASSES
522	CUPS_GET_DEFAULT
523	CUPS_GET_DEVICES
524	CUPS_GET_PPDS
525	CUPS_GET_PRINTERS
526	CUPS_IMAGE_BLACK
527	CUPS_IMAGE_CMY
528	CUPS_IMAGE_CMYK
529	CUPS_IMAGE_RGB
530	CUPS_IMAGE_RGB_CMYK
531	CUPS_IMAGE_WHITE
532	CUPS_ISO8859_1
533	CUPS_ISO8859_10
534	CUPS_ISO8859_11
535	CUPS_ISO8859_13
536	CUPS_ISO8859_14
537	CUPS_ISO8859_15
538	CUPS_ISO8859_16
539	CUPS_ISO8859_2
540	CUPS_ISO8859_3
541	CUPS_ISO8859_4
542	CUPS_ISO8859_5
543	CUPS_ISO8859_6
544	CUPS_ISO8859_7
545	CUPS_ISO8859_8
546	CUPS_ISO8859_9
547	CUPS_KOI8_R
548	CUPS_KOI8_U
549	CUPS_MAC_ROMAN
550	CUPS_MAX_USTRING
551	CUPS_MOVE_JOB
552	CUPS_PRINTER_AUTHENTICATED
553	CUPS_PRINTER_BIND
554	CUPS_PRINTER_BW
555	CUPS_PRINTER_CLASS
556	CUPS_PRINTER_COLLATE
557	CUPS_PRINTER_COLOR
558	CUPS_PRINTER_COMMANDS
559	CUPS_PRINTER_COPIES
560	CUPS_PRINTER_COVER
561	CUPS_PRINTER_DEFAULT
562	CUPS_PRINTER_DELETE
563	CUPS_PRINTER_DUPLEX
564	CUPS_PRINTER_FAX
565	CUPS_PRINTER_IMPLICIT
566	CUPS_PRINTER_LARGE
567	CUPS_PRINTER_LOCAL
568	CUPS_PRINTER_MEDIUM
569	CUPS_PRINTER_NOT_SHARED
570	CUPS_PRINTER_OPTIONS
571	CUPS_PRINTER_PUNCH
572	CUPS_PRINTER_REJECTING
573	CUPS_PRINTER_REMOTE
574	CUPS_PRINTER_SMALL
575	CUPS_PRINTER_SORT
576	CUPS_PRINTER_STAPLE
577	CUPS_PRINTER_VARIABLE
578	CUPS_REJECT_JOBS
579	CUPS_SET_DEFAULT
580	CUPS_US_ASCII
581	CUPS_UTF8
582	CUPS_VERSION
583	CUPS_VERSION_MAJOR
584	CUPS_VERSION_MINOR
585	CUPS_VERSION_PATCH
586	CUPS_WINDOWS_1250
587	CUPS_WINDOWS_1251
588	CUPS_WINDOWS_1252
589	CUPS_WINDOWS_1253
590	CUPS_WINDOWS_1254
591	CUPS_WINDOWS_1255
592	CUPS_WINDOWS_1256
593	CUPS_WINDOWS_1257
594	CUPS_WINDOWS_1258
595	CUPS_WINDOWS_1361
596	CUPS_WINDOWS_874
597	CUPS_WINDOWS_932
598	CUPS_WINDOWS_936
599	CUPS_WINDOWS_949
600	CUPS_WINDOWS_950
601	HTTP_0_9
602	HTTP_1_0
603	HTTP_1_1
604	HTTP_ACCEPTED
605	HTTP_AUTH_BASIC
606	HTTP_AUTH_MD5
607	HTTP_AUTH_MD5_INT
608	HTTP_AUTH_MD5_SESS
609	HTTP_AUTH_MD5_SESS_INT
610	HTTP_AUTH_NONE
611	HTTP_BAD_GATEWAY
612	HTTP_BAD_REQUEST
613	HTTP_CLOSE
614	HTTP_CONFLICT
615	HTTP_CONTINUE
616	HTTP_CREATED
617	HTTP_DELETE
618	HTTP_ENCODE_CHUNKED
619	HTTP_ENCODE_FIELDS
620	HTTP_ENCODE_LENGTH
621	HTTP_ENCRYPT_ALWAYS
622	HTTP_ENCRYPT_IF_REQUESTED
623	HTTP_ENCRYPT_NEVER
624	HTTP_ENCRYPT_REQUIRED
625	HTTP_ERROR
626	HTTP_EXPECTATION_FAILED
627	HTTP_FIELD_ACCEPT_LANGUAGE
628	HTTP_FIELD_ACCEPT_RANGES
629	HTTP_FIELD_AUTHORIZATION
630	HTTP_FIELD_CONNECTION
631	HTTP_FIELD_CONTENT_ENCODING
632	HTTP_FIELD_CONTENT_LANGUAGE
633	HTTP_FIELD_CONTENT_LENGTH
634	HTTP_FIELD_CONTENT_LOCATION
635	HTTP_FIELD_CONTENT_MD5
636	HTTP_FIELD_CONTENT_RANGE
637	HTTP_FIELD_CONTENT_TYPE
638	HTTP_FIELD_CONTENT_VERSION
639	HTTP_FIELD_DATE
640	HTTP_FIELD_HOST
641	HTTP_FIELD_IF_MODIFIED_SINCE
642	HTTP_FIELD_IF_UNMODIFIED_SINCE
643	HTTP_FIELD_KEEP_ALIVE
644	HTTP_FIELD_LAST_MODIFIED
645	HTTP_FIELD_LINK
646	HTTP_FIELD_LOCATION
647	HTTP_FIELD_MAX
648	HTTP_FIELD_RANGE
649	HTTP_FIELD_REFERER
650	HTTP_FIELD_RETRY_AFTER
651	HTTP_FIELD_TRANSFER_ENCODING
652	HTTP_FIELD_UNKNOWN
653	HTTP_FIELD_UPGRADE
654	HTTP_FIELD_USER_AGENT
655	HTTP_FIELD_WWW_AUTHENTICATE
656	HTTP_FORBIDDEN
657	HTTP_GATEWAY_TIMEOUT
658	HTTP_GET
659	HTTP_GET_SEND
660	HTTP_GONE
661	HTTP_HEAD
662	HTTP_KEEPALIVE_OFF
663	HTTP_KEEPALIVE_ON
664	HTTP_LENGTH_REQUIRED
665	HTTP_MAX_BUFFER
666	HTTP_MAX_HOST
667	HTTP_MAX_URI
668	HTTP_MAX_VALUE
669	HTTP_METHOD_NOT_ALLOWED
670	HTTP_MOVED_PERMANENTLY
671	HTTP_MOVED_TEMPORARILY
672	HTTP_MULTIPLE_CHOICES
673	HTTP_NOT_ACCEPTABLE
674	HTTP_NOT_AUTHORITATIVE
675	HTTP_NOT_FOUND
676	HTTP_NOT_IMPLEMENTED
677	HTTP_NOT_MODIFIED
678	HTTP_NOT_SUPPORTED
679	HTTP_NO_CONTENT
680	HTTP_OK
681	HTTP_OPTIONS
682	HTTP_PARTIAL_CONTENT
683	HTTP_PAYMENT_REQUIRED
684	HTTP_POST
685	HTTP_POST_RECV
686	HTTP_POST_SEND
687	HTTP_PRECONDITION
688	HTTP_PROXY_AUTHENTICATION
689	HTTP_PUT
690	HTTP_PUT_RECV
691	HTTP_REQUESTED_RANGE
692	HTTP_REQUEST_TIMEOUT
693	HTTP_REQUEST_TOO_LARGE
694	HTTP_RESET_CONTENT
695	HTTP_SEE_OTHER
696	HTTP_SERVER_ERROR
697	HTTP_SERVICE_UNAVAILABLE
698	HTTP_STATUS
699	HTTP_SWITCHING_PROTOCOLS
700	HTTP_TRACE
701	HTTP_UNAUTHORIZED
702	HTTP_UNSUPPORTED_MEDIATYPE
703	HTTP_UPGRADE_REQUIRED
704	HTTP_URI_BAD_ARGUMENTS
705	HTTP_URI_BAD_HOSTNAME
706	HTTP_URI_BAD_PORT
707	HTTP_URI_BAD_RESOURCE
708	HTTP_URI_BAD_SCHEME
709	HTTP_URI_BAD_URI
710	HTTP_URI_BAD_USERNAME
711	HTTP_URI_CODING_ALL
712	HTTP_URI_CODING_HOSTNAME
713	HTTP_URI_CODING_MOST
714	HTTP_URI_CODING_NONE
715	HTTP_URI_CODING_QUERY
716	HTTP_URI_CODING_RESOURCE
717	HTTP_URI_CODING_USERNAME
718	HTTP_URI_MISSING_RESOURCE
719	HTTP_URI_MISSING_SCHEME
720	HTTP_URI_OK
721	HTTP_URI_OVERFLOW
722	HTTP_URI_TOO_LONG
723	HTTP_URI_UNKNOWN_SCHEME
724	HTTP_USE_PROXY
725	HTTP_WAITING
726	INET6
727	IPP_ACTIVATE_PRINTER
728	IPP_ATTRIBUTE
729	IPP_ATTRIBUTES
730	IPP_ATTRIBUTES_NOT_SETTABLE
731	IPP_BAD_REQUEST
732	IPP_CANCEL_CURRENT_JOB
733	IPP_CANCEL_JOB
734	IPP_CANCEL_SUBSCRIPTION
735	IPP_CHARSET
736	IPP_COMPRESSION_ERROR
737	IPP_COMPRESSION_NOT_SUPPORTED
738	IPP_CONFLICT
739	IPP_CREATE_JOB
740	IPP_CREATE_JOB_SUBSCRIPTION
741	IPP_CREATE_PRINTER_SUBSCRIPTION
742	IPP_DATA
743	IPP_DEACTIVATE_PRINTER
744	IPP_DEVICE_ERROR
745	IPP_DISABLE_PRINTER
746	IPP_DOCUMENT_ACCESS_ERROR
747	IPP_DOCUMENT_FORMAT
748	IPP_DOCUMENT_FORMAT_ERROR
749	IPP_ENABLE_PRINTER
750	IPP_ERROR
751	IPP_ERROR_JOB_CANCELED
752	IPP_ERROR_JOB_CANCELLED
753	IPP_FINISHINGS_BALE
754	IPP_FINISHINGS_BIND
755	IPP_FINISHINGS_BIND_BOTTOM
756	IPP_FINISHINGS_BIND_LEFT
757	IPP_FINISHINGS_BIND_RIGHT
758	IPP_FINISHINGS_BIND_TOP
759	IPP_FINISHINGS_BOOKLET_MAKER
760	IPP_FINISHINGS_COVER
761	IPP_FINISHINGS_EDGE_STITCH
762	IPP_FINISHINGS_EDGE_STITCH_BOTTOM
763	IPP_FINISHINGS_EDGE_STITCH_LEFT
764	IPP_FINISHINGS_EDGE_STITCH_RIGHT
765	IPP_FINISHINGS_EDGE_STITCH_TOP
766	IPP_FINISHINGS_FOLD
767	IPP_FINISHINGS_JOB_OFFSET
768	IPP_FINISHINGS_NONE
769	IPP_FINISHINGS_PUNCH
770	IPP_FINISHINGS_SADDLE_STITCH
771	IPP_FINISHINGS_STAPLE
772	IPP_FINISHINGS_STAPLE_BOTTOM_LEFT
773	IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT
774	IPP_FINISHINGS_STAPLE_DUAL_BOTTOM
775	IPP_FINISHINGS_STAPLE_DUAL_LEFT
776	IPP_FINISHINGS_STAPLE_DUAL_RIGHT
777	IPP_FINISHINGS_STAPLE_DUAL_TOP
778	IPP_FINISHINGS_STAPLE_TOP_LEFT
779	IPP_FINISHINGS_STAPLE_TOP_RIGHT
780	IPP_FINISHINGS_TRIM
781	IPP_FORBIDDEN
782	IPP_GET_JOBS
783	IPP_GET_JOB_ATTRIBUTES
784	IPP_GET_NOTIFICATIONS
785	IPP_GET_PRINTER_ATTRIBUTES
786	IPP_GET_PRINTER_SUPPORTED_VALUES
787	IPP_GET_PRINT_SUPPORT_FILES
788	IPP_GET_SUBSCRIPTIONS
789	IPP_GET_SUBSCRIPTION_ATTRIBUTES
790	IPP_GONE
791	IPP_HEADER
792	IPP_HOLD_JOB
793	IPP_HOLD_NEW_JOBS
794	IPP_IDLE
795	IPP_IGNORED_ALL_NOTIFICATIONS
796	IPP_IGNORED_ALL_SUBSCRIPTIONS
797	IPP_INTERNAL_ERROR
798	IPP_JOB_ABORTED
799	IPP_JOB_CANCELED
800	IPP_JOB_CANCELLED
801	IPP_JOB_COMPLETED
802	IPP_JOB_HELD
803	IPP_JOB_PENDING
804	IPP_JOB_PROCESSING
805	IPP_JOB_STOPPED
806	IPP_LANDSCAPE
807	IPP_MAX_NAME
808	IPP_MAX_VALUES
809	IPP_MULTIPLE_JOBS_NOT_SUPPORTED
810	IPP_NOT_ACCEPTING
811	IPP_NOT_AUTHENTICATED
812	IPP_NOT_AUTHORIZED
813	IPP_NOT_FOUND
814	IPP_NOT_POSSIBLE
815	IPP_OK
816	IPP_OK_BUT_CANCEL_SUBSCRIPTION
817	IPP_OK_CONFLICT
818	IPP_OK_EVENTS_COMPLETE
819	IPP_OK_IGNORED_NOTIFICATIONS
820	IPP_OK_IGNORED_SUBSCRIPTIONS
821	IPP_OK_SUBST
822	IPP_OK_TOO_MANY_EVENTS
823	IPP_OPERATION_NOT_SUPPORTED
824	IPP_PAUSE_PRINTER
825	IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB
826	IPP_PORT
827	IPP_PORTRAIT
828	IPP_PRINTER_BUSY
829	IPP_PRINTER_IDLE
830	IPP_PRINTER_IS_DEACTIVATED
831	IPP_PRINTER_PROCESSING
832	IPP_PRINTER_STOPPED
833	IPP_PRINT_JOB
834	IPP_PRINT_SUPPORT_FILE_NOT_FOUND
835	IPP_PRINT_URI
836	IPP_PRIVATE
837	IPP_PROMOTE_JOB
838	IPP_PURGE_JOBS
839	IPP_QUALITY_DRAFT
840	IPP_QUALITY_HIGH
841	IPP_QUALITY_NORMAL
842	IPP_REDIRECTION_OTHER_SITE
843	IPP_RELEASE_HELD_NEW_JOBS
844	IPP_RELEASE_JOB
845	IPP_RENEW_SUBSCRIPTION
846	IPP_REPROCESS_JOB
847	IPP_REQUEST_ENTITY
848	IPP_REQUEST_VALUE
849	IPP_RESTART_JOB
850	IPP_RESTART_PRINTER
851	IPP_RESUME_JOB
852	IPP_RESUME_PRINTER
853	IPP_RES_PER_CM
854	IPP_RES_PER_INCH
855	IPP_REVERSE_LANDSCAPE
856	IPP_REVERSE_PORTRAIT
857	IPP_SCHEDULE_JOB_AFTER
858	IPP_SEND_DOCUMENT
859	IPP_SEND_NOTIFICATIONS
860	IPP_SEND_URI
861	IPP_SERVICE_UNAVAILABLE
862	IPP_SET_JOB_ATTRIBUTES
863	IPP_SET_PRINTER_ATTRIBUTES
864	IPP_SHUTDOWN_PRINTER
865	IPP_STARTUP_PRINTER
866	IPP_SUSPEND_CURRENT_JOB
867	IPP_TAG_ADMINDEFINE
868	IPP_TAG_BEGIN_COLLECTION
869	IPP_TAG_BOOLEAN
870	IPP_TAG_CHARSET
871	IPP_TAG_COPY
872	IPP_TAG_DATE
873	IPP_TAG_DEFAULT
874	IPP_TAG_DELETEATTR
875	IPP_TAG_END
876	IPP_TAG_END_COLLECTION
877	IPP_TAG_ENUM
878	IPP_TAG_EVENT_NOTIFICATION
879	IPP_TAG_INTEGER
880	IPP_TAG_JOB
881	IPP_TAG_KEYWORD
882	IPP_TAG_LANGUAGE
883	IPP_TAG_MASK
884	IPP_TAG_MEMBERNAME
885	IPP_TAG_MIMETYPE
886	IPP_TAG_NAME
887	IPP_TAG_NAMELANG
888	IPP_TAG_NOTSETTABLE
889	IPP_TAG_NOVALUE
890	IPP_TAG_OPERATION
891	IPP_TAG_PRINTER
892	IPP_TAG_RANGE
893	IPP_TAG_RESOLUTION
894	IPP_TAG_STRING
895	IPP_TAG_SUBSCRIPTION
896	IPP_TAG_TEXT
897	IPP_TAG_TEXTLANG
898	IPP_TAG_UNKNOWN
899	IPP_TAG_UNSUPPORTED_GROUP
900	IPP_TAG_UNSUPPORTED_VALUE
901	IPP_TAG_URI
902	IPP_TAG_URISCHEME
903	IPP_TAG_ZERO
904	IPP_TEMPORARY_ERROR
905	IPP_TIMEOUT
906	IPP_TOO_MANY_SUBSCRIPTIONS
907	IPP_URI_SCHEME
908	IPP_VALIDATE_JOB
909	IPP_VERSION_NOT_SUPPORTED
910	PPD_ALLOC_ERROR
911	PPD_BAD_CUSTOM_PARAM
912	PPD_BAD_OPEN_GROUP
913	PPD_BAD_OPEN_UI
914	PPD_BAD_ORDER_DEPENDENCY
915	PPD_BAD_UI_CONSTRAINTS
916	PPD_CONFORM_RELAXED
917	PPD_CONFORM_STRICT
918	PPD_CS_CMY
919	PPD_CS_CMYK
920	PPD_CS_GRAY
921	PPD_CS_N
922	PPD_CS_RGB
923	PPD_CS_RGBK
924	PPD_CUSTOM_CURVE
925	PPD_CUSTOM_INT
926	PPD_CUSTOM_INVCURVE
927	PPD_CUSTOM_PASSCODE
928	PPD_CUSTOM_PASSWORD
929	PPD_CUSTOM_POINTS
930	PPD_CUSTOM_REAL
931	PPD_CUSTOM_STRING
932	PPD_FILE_OPEN_ERROR
933	PPD_ILLEGAL_CHARACTER
934	PPD_ILLEGAL_MAIN_KEYWORD
935	PPD_ILLEGAL_OPTION_KEYWORD
936	PPD_ILLEGAL_TRANSLATION
937	PPD_ILLEGAL_WHITESPACE
938	PPD_INTERNAL_ERROR
939	PPD_LINE_TOO_LONG
940	PPD_MAX_LINE
941	PPD_MAX_NAME
942	PPD_MAX_TEXT
943	PPD_MISSING_ASTERISK
944	PPD_MISSING_PPDADOBE4
945	PPD_MISSING_VALUE
946	PPD_NESTED_OPEN_GROUP
947	PPD_NESTED_OPEN_UI
948	PPD_NULL_FILE
949	PPD_OK
950	PPD_ORDER_ANY
951	PPD_ORDER_DOCUMENT
952	PPD_ORDER_EXIT
953	PPD_ORDER_JCL
954	PPD_ORDER_PAGE
955	PPD_ORDER_PROLOG
956	PPD_UI_BOOLEAN
957	PPD_UI_PICKMANY
958	PPD_UI_PICKONE
959	PPD_VERSION
960);
961
962our $VERSION = '0.64';
963
964sub AUTOLOAD {
965    # This AUTOLOAD is used to 'autoload' constants from the constant()
966    # XS function.
967
968    my $constname;
969    our $AUTOLOAD;
970    ($constname = $AUTOLOAD) =~ s/.*:://;
971    croak "&Net::CUPS::constant not defined" if $constname eq 'constant';
972    my ($error, $val) = constant($constname);
973    if ($error) { croak $error; }
974    {
975	no strict 'refs';
976	# Fixed between 5.005_53 and 5.005_61
977#XXX	if ($] >= 5.00561) {
978#XXX	    *$AUTOLOAD = sub () { $val };
979#XXX	}
980#XXX	else {
981	    *$AUTOLOAD = sub { $val };
982#XXX	}
983    }
984    goto &$AUTOLOAD;
985}
986
987require XSLoader;
988XSLoader::load('Net::CUPS', $VERSION);
989
990use Net::CUPS::PPD;
991use Net::CUPS::IPP;
992use Net::CUPS::Destination;
993
994##==================================================================##
995##  Constructors                                                    ##
996##==================================================================##
997
998##----------------------------------------------##
999##  new                                         ##
1000##----------------------------------------------##
1001sub new
1002{
1003	## Pull in what type of an object we will be
1004	my $type = shift;
1005	## Pull in our options if we have any ...
1006	my %options = @_;
1007	## XXX One of the options might be a server host ...
1008	## We will use a hash as our base class variable
1009	my $self = {};
1010	my $class = ref( $type ) || $type;
1011	## Bless the class for it is good [tm].
1012	bless( $self, $class );
1013	return( $self );
1014}
1015
1016##----------------------------------------------##
1017##  DESTROY                                     ##
1018##----------------------------------------------##
1019sub DESTROY
1020{
1021	return;
1022}
1023
1024##==================================================================##
1025##  Methods                                                         ##
1026##==================================================================##
1027
1028##----------------------------------------------##
1029##  getDestination                              ##
1030##----------------------------------------------##
1031sub getDestination
1032{
1033	my( $self, $name ) = @_;
1034
1035	$name = "" if( !defined( $name ) );
1036
1037	return( NETCUPS_getDestination( $name ) );
1038}
1039
1040##----------------------------------------------##
1041##  getDestinations                             ##
1042##----------------------------------------------##
1043sub getDestinations
1044{
1045	my $self = shift;
1046
1047	return( NETCUPS_getDestinations() );
1048}
1049
1050##----------------------------------------------##
1051##  getPassword                                 ##
1052##----------------------------------------------##
1053sub getPassword
1054{
1055	my( $self, $prompt ) = @_;
1056
1057	return( NETCUPS_getPassword( $prompt ) );
1058}
1059
1060##----------------------------------------------##
1061##  getPPD                                      ##
1062##----------------------------------------------##
1063sub getPPD
1064{
1065	my( $self, $name ) = @_;
1066
1067	my $ppd = NETCUPS_getPPD( $name );
1068
1069	bless( $ppd, "Net::CUPS::PPD" );
1070
1071	return( $ppd );
1072}
1073
1074##----------------------------------------------##
1075##  getServer                                   ##
1076##----------------------------------------------##
1077sub getServer
1078{
1079	my $self = shift;
1080
1081	return( NETCUPS_getServer() );
1082}
1083
1084##----------------------------------------------##
1085##  getUsername                                 ##
1086##----------------------------------------------##
1087sub getUsername
1088{
1089	my $self = shift;
1090
1091	return( NETCUPS_getUsername() );
1092}
1093
1094##----------------------------------------------##
1095##  requestData                                 ##
1096##----------------------------------------------##
1097sub requestData
1098{
1099	my( $self, $request, $resource, $file ) = @_;
1100
1101	$file = "" if !defined( $file );
1102
1103	return( NETCUPS_requestData( $request, $resource, $file ) );
1104}
1105
1106##----------------------------------------------##
1107##  setPasswordCB                               ##
1108##----------------------------------------------##
1109sub setPasswordCB
1110{
1111	my( $self, $callback ) = @_;
1112
1113	NETCUPS_setPasswordCB( $callback );
1114	return;
1115}
1116
1117##----------------------------------------------##
1118##  setServer                                   ##
1119##----------------------------------------------##
1120sub setServer
1121{
1122	my( $self, $name ) = @_;
1123
1124	return( NETCUPS_setServer( $name ) );
1125}
1126
1127##----------------------------------------------##
1128##  setUsername                                 ##
1129##----------------------------------------------##
1130sub setUsername
1131{
1132	my( $self, $username ) = @_;
1133
1134	NETCUPS_setUsername( $username );
1135	return;
1136}
1137
1138##----------------------------------------------##
1139##  getPPDMakes                                 ##
1140##----------------------------------------------##
1141sub getPPDMakes
1142{
1143	my $self = shift;
1144
1145	return( NETCUPS_getPPDMakes() );
1146}
1147
1148
1149##----------------------------------------------##
1150##  getAllPPs                                   ##
1151##----------------------------------------------##
1152sub getAllPPDs
1153{
1154	my $self = shift;
1155
1156	return( NETCUPS_getAllPPDs() );
1157}
1158
1159##----------------------------------------------##
1160##  deleteDestination                           ##
1161##----------------------------------------------##
1162sub deleteDestination
1163{
1164	my( $self, $destination )  = @_;
1165	NETCUPS_deleteDestination( $destination );
1166	return;
1167}
1168
1169##----------------------------------------------##
1170##  getPPDFileName                              ##
1171##----------------------------------------------##
1172sub getPPDFileName
1173{
1174	my( $self, $ppdname)  = @_;
1175	return( NETCUPS_getPPDFileName( $ppdname ) );
1176}
1177
1178##----------------------------------------------##
1179##  addDestination                              ##
1180##----------------------------------------------##
1181sub addDestination
1182{
1183	my( $self, $name, $location, $printer_info, $ppd_name, $device_uri)  = @_;
1184
1185	return( NETCUPS_addDestination( $name,
1186									$location,
1187									$printer_info,
1188									$ppd_name,
1189									$device_uri ) );
1190}
1191
1192##==================================================================##
1193##  End of Code                                                     ##
1194##==================================================================##
11951;
1196
1197##==================================================================##
1198##  Plain Old Documentation (POD)                                   ##
1199##==================================================================##
1200
1201__END__
1202
1203=head1 NAME
1204
1205Net::CUPS - Common Unix Printing System Interface
1206
1207=head1 SYNOPSIS
1208
1209  use Net::CUPS;
1210
1211  my $cups = Net::CUPS->new();
1212
1213  my $printer = $cups->getDestination( "lj4200dn" );
1214
1215=head1 DESCRIPTION
1216
1217Net::CUPS is an object oriented interface to the Common Unix Printing System.
1218
1219=head1 METHODS
1220
1221=over 4
1222
1223=item B<getDestination>
1224
1225my $printer = $cups->getDestination( $printer_name );
1226
1227This method takes the name of the printer to acquire.  If the printer
1228does not exist it will return nothing.
1229
1230=item B<getDestinations>
1231
1232my @printers = $cups->getDestinations();
1233
1234This method will return an array of destinations currently configured
1235on the cups server.
1236
1237=item B<getPassword>
1238
1239my $password = $cups->getPassword( $prompt );
1240
1241Method to retrieve the password from the user via the password
1242callback.
1243
1244=item B<getPPD>
1245
1246my $ppd = $cups->getPPD( $name );
1247
1248Returns a Net::CUPS::PPD object for the default printer or for the
1249specified printer or class.
1250
1251=item B<getPPDMakes>
1252
1253my $makes = $cups->getPPDMakes();
1254
1255Returns an arrary of scalers holding the names of all the makers (e.g. HP or Lexmark)
1256of PPD files installed on the CUPS server
1257
1258=item B<getAllPPDs>
1259
1260my $ppds = $cups->getAllPPDs();
1261
1262Returns an array of scalers with the maker and model of all the PPDs
1263installed on the CUPS server
1264
1265=item B<getPPDFileName>
1266
1267$cups->getPPDFileName($ppd_name_and_make);
1268
1269Returns the file name of the PPD specified by the name and make as found in the array
1270returned by getAllPPDs.  The file name is used by addDestination and is relative
1271to where the CUPS server is instructed to look (e.g /usr/share/ppd).
1272
1273=item B<getServer>
1274
1275my $server_name = $cups->getServer();
1276
1277A method to return either the hostname or the IP address of the
1278active print server.
1279
1280=item B<getUsername>
1281
1282my $username = $cups->getUsername();
1283
1284This method will return the current username associated with the
1285CUPS transaction.
1286
1287=item B<requestData>
1288
1289my $result = $cups->requestData( $request, $resource, $filename );
1290
1291Send an IPP request to the server.  This function is based off the
1292C CUPS function cupsDoRequest and cupsDoRequestFile.  The $filename
1293is optional.
1294
1295=item B<setPasswordCB>
1296
1297$cups->setPasswordCB( $function )
1298
1299Method to set the callback function to be used by getPassword.
1300
1301=item B<setServer>
1302
1303$cups->setServer( $server_ip );
1304
1305This method will change the current cups server to another hosts.
1306
1307=item B<setUsername>
1308
1309$cups->setUsername( $username );
1310
1311A method to change the username associated with CUPS interaction.
1312
1313=item B<deleteDestination>
1314
1315$cups->deleteDestination( $destination_name );
1316
1317A method to delete an existing destination
1318
1319=item B<addDestination>
1320
1321$cups->addDestination( $name, $location, $printer_info, $ppd_name, $device_uri)
1322A method to create a new destination.  The $ppd_name variable should be
1323the one returned for that printer by the getPPDFileName method.  It will
1324be relative to where the CUPS server is configured to look for PPD
1325files (e.g. /usr/share/ppd).
1326
1327=back
1328
1329=head1 SEE ALSO
1330
1331L<Net::CUPS::Destination>, L<Net::CUPS::PPD>, L<Net::CUPS::IPP>
1332
1333=head1 SUPPORT
1334
1335Net::CUPS is currently maintained by Stefan Seifert <NINE@cpan.org>.
1336The Github repository for this project is at
1337L<https://github.com/niner/perl-Net-CUPS>. Pull requests are welcome.
1338
1339=head1 AUTHOR
1340
1341Dracken Technology, Inc. (http://www.dracken.com/)
1342
1343=head1 ACKNOWLEDGEMENTS
1344
1345Aike Reyer <aike@users.sourceforge.net> supplied the password handling code.
1346
1347Mark Gannon <mark@truenorth.nu> supplied the code for PPD acquisition,
1348destination creation and destination deletion.
1349
1350=head1 COPYRIGHT AND LICENSE
1351
1352Copyright (c) 2003-2005 David Hageman
1353
1354Copyright (c) 2006-2009 Dracken Technology, Inc.
1355
1356All rights reserved.
1357
1358This library is free software; you can redistribute it and/or modify
1359it under the same terms as Perl itself, either Perl version 5.8.8 or,
1360at your option, any later version of Perl 5 you may have available.
1361
1362CUPS, the Common UNIX Printing System, the CUPS logo, and ESP Print Pro are the trademark property of Easy Software Products.
1363
1364=cut
1365