package Net::CUPS::Destination;
##==================================================================##
## Libraries and Variables ##
##==================================================================##
use 5.006;
use strict;
use warnings;
use Carp;
require Exporter;
use AutoLoader;
use Net::CUPS;
our @ISA = qw(Exporter);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.
# This allows declaration use Net::CUPS ':all';
# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
# will save memory.
our %EXPORT_TAGS = ( 'all' => [ qw(
AF_LOCAL
CUPS_ACCEPT_JOBS
CUPS_ADD_CLASS
CUPS_ADD_MODIFY_CLASS
CUPS_ADD_MODIFY_PRINTER
CUPS_ADD_PRINTER
CUPS_AUTHENTICATE_JOB
CUPS_AUTO_ENCODING
CUPS_BACKEND_AUTH_REQUIRED
CUPS_BACKEND_CANCEL
CUPS_BACKEND_FAILED
CUPS_BACKEND_HOLD
CUPS_BACKEND_OK
CUPS_BACKEND_STOP
CUPS_DATE_ANY
CUPS_DELETE_CLASS
CUPS_DELETE_PRINTER
CUPS_ENCODING_DBCS_END
CUPS_ENCODING_SBCS_END
CUPS_ENCODING_VBCS_END
CUPS_EUC_CN
CUPS_EUC_JP
CUPS_EUC_KR
CUPS_EUC_TW
CUPS_FILE_GZIP
CUPS_FILE_NONE
CUPS_GET_CLASSES
CUPS_GET_DEFAULT
CUPS_GET_DEVICES
CUPS_GET_PPDS
CUPS_GET_PRINTERS
CUPS_IMAGE_BLACK
CUPS_IMAGE_CMY
CUPS_IMAGE_CMYK
CUPS_IMAGE_RGB
CUPS_IMAGE_RGB_CMYK
CUPS_IMAGE_WHITE
CUPS_ISO8859_1
CUPS_ISO8859_10
CUPS_ISO8859_11
CUPS_ISO8859_13
CUPS_ISO8859_14
CUPS_ISO8859_15
CUPS_ISO8859_16
CUPS_ISO8859_2
CUPS_ISO8859_3
CUPS_ISO8859_4
CUPS_ISO8859_5
CUPS_ISO8859_6
CUPS_ISO8859_7
CUPS_ISO8859_8
CUPS_ISO8859_9
CUPS_KOI8_R
CUPS_KOI8_U
CUPS_MAC_ROMAN
CUPS_MAX_USTRING
CUPS_MOVE_JOB
CUPS_PRINTER_AUTHENTICATED
CUPS_PRINTER_BIND
CUPS_PRINTER_BW
CUPS_PRINTER_CLASS
CUPS_PRINTER_COLLATE
CUPS_PRINTER_COLOR
CUPS_PRINTER_COMMANDS
CUPS_PRINTER_COPIES
CUPS_PRINTER_COVER
CUPS_PRINTER_DEFAULT
CUPS_PRINTER_DELETE
CUPS_PRINTER_DUPLEX
CUPS_PRINTER_FAX
CUPS_PRINTER_IMPLICIT
CUPS_PRINTER_LARGE
CUPS_PRINTER_LOCAL
CUPS_PRINTER_MEDIUM
CUPS_PRINTER_NOT_SHARED
CUPS_PRINTER_OPTIONS
CUPS_PRINTER_PUNCH
CUPS_PRINTER_REJECTING
CUPS_PRINTER_REMOTE
CUPS_PRINTER_SMALL
CUPS_PRINTER_SORT
CUPS_PRINTER_STAPLE
CUPS_PRINTER_VARIABLE
CUPS_REJECT_JOBS
CUPS_SET_DEFAULT
CUPS_US_ASCII
CUPS_UTF8
CUPS_VERSION
CUPS_VERSION_MAJOR
CUPS_VERSION_MINOR
CUPS_VERSION_PATCH
CUPS_WINDOWS_1250
CUPS_WINDOWS_1251
CUPS_WINDOWS_1252
CUPS_WINDOWS_1253
CUPS_WINDOWS_1254
CUPS_WINDOWS_1255
CUPS_WINDOWS_1256
CUPS_WINDOWS_1257
CUPS_WINDOWS_1258
CUPS_WINDOWS_1361
CUPS_WINDOWS_874
CUPS_WINDOWS_932
CUPS_WINDOWS_936
CUPS_WINDOWS_949
CUPS_WINDOWS_950
HTTP_0_9
HTTP_1_0
HTTP_1_1
HTTP_ACCEPTED
HTTP_AUTH_BASIC
HTTP_AUTH_MD5
HTTP_AUTH_MD5_INT
HTTP_AUTH_MD5_SESS
HTTP_AUTH_MD5_SESS_INT
HTTP_AUTH_NONE
HTTP_BAD_GATEWAY
HTTP_BAD_REQUEST
HTTP_CLOSE
HTTP_CONFLICT
HTTP_CONTINUE
HTTP_CREATED
HTTP_DELETE
HTTP_ENCODE_CHUNKED
HTTP_ENCODE_FIELDS
HTTP_ENCODE_LENGTH
HTTP_ENCRYPT_ALWAYS
HTTP_ENCRYPT_IF_REQUESTED
HTTP_ENCRYPT_NEVER
HTTP_ENCRYPT_REQUIRED
HTTP_ERROR
HTTP_EXPECTATION_FAILED
HTTP_FIELD_ACCEPT_LANGUAGE
HTTP_FIELD_ACCEPT_RANGES
HTTP_FIELD_AUTHORIZATION
HTTP_FIELD_CONNECTION
HTTP_FIELD_CONTENT_ENCODING
HTTP_FIELD_CONTENT_LANGUAGE
HTTP_FIELD_CONTENT_LENGTH
HTTP_FIELD_CONTENT_LOCATION
HTTP_FIELD_CONTENT_MD5
HTTP_FIELD_CONTENT_RANGE
HTTP_FIELD_CONTENT_TYPE
HTTP_FIELD_CONTENT_VERSION
HTTP_FIELD_DATE
HTTP_FIELD_HOST
HTTP_FIELD_IF_MODIFIED_SINCE
HTTP_FIELD_IF_UNMODIFIED_SINCE
HTTP_FIELD_KEEP_ALIVE
HTTP_FIELD_LAST_MODIFIED
HTTP_FIELD_LINK
HTTP_FIELD_LOCATION
HTTP_FIELD_MAX
HTTP_FIELD_RANGE
HTTP_FIELD_REFERER
HTTP_FIELD_RETRY_AFTER
HTTP_FIELD_TRANSFER_ENCODING
HTTP_FIELD_UNKNOWN
HTTP_FIELD_UPGRADE
HTTP_FIELD_USER_AGENT
HTTP_FIELD_WWW_AUTHENTICATE
HTTP_FORBIDDEN
HTTP_GATEWAY_TIMEOUT
HTTP_GET
HTTP_GET_SEND
HTTP_GONE
HTTP_HEAD
HTTP_KEEPALIVE_OFF
HTTP_KEEPALIVE_ON
HTTP_LENGTH_REQUIRED
HTTP_MAX_BUFFER
HTTP_MAX_HOST
HTTP_MAX_URI
HTTP_MAX_VALUE
HTTP_METHOD_NOT_ALLOWED
HTTP_MOVED_PERMANENTLY
HTTP_MOVED_TEMPORARILY
HTTP_MULTIPLE_CHOICES
HTTP_NOT_ACCEPTABLE
HTTP_NOT_AUTHORITATIVE
HTTP_NOT_FOUND
HTTP_NOT_IMPLEMENTED
HTTP_NOT_MODIFIED
HTTP_NOT_SUPPORTED
HTTP_NO_CONTENT
HTTP_OK
HTTP_OPTIONS
HTTP_PARTIAL_CONTENT
HTTP_PAYMENT_REQUIRED
HTTP_POST
HTTP_POST_RECV
HTTP_POST_SEND
HTTP_PRECONDITION
HTTP_PROXY_AUTHENTICATION
HTTP_PUT
HTTP_PUT_RECV
HTTP_REQUESTED_RANGE
HTTP_REQUEST_TIMEOUT
HTTP_REQUEST_TOO_LARGE
HTTP_RESET_CONTENT
HTTP_SEE_OTHER
HTTP_SERVER_ERROR
HTTP_SERVICE_UNAVAILABLE
HTTP_STATUS
HTTP_SWITCHING_PROTOCOLS
HTTP_TRACE
HTTP_UNAUTHORIZED
HTTP_UNSUPPORTED_MEDIATYPE
HTTP_UPGRADE_REQUIRED
HTTP_URI_BAD_ARGUMENTS
HTTP_URI_BAD_HOSTNAME
HTTP_URI_BAD_PORT
HTTP_URI_BAD_RESOURCE
HTTP_URI_BAD_SCHEME
HTTP_URI_BAD_URI
HTTP_URI_BAD_USERNAME
HTTP_URI_CODING_ALL
HTTP_URI_CODING_HOSTNAME
HTTP_URI_CODING_MOST
HTTP_URI_CODING_NONE
HTTP_URI_CODING_QUERY
HTTP_URI_CODING_RESOURCE
HTTP_URI_CODING_USERNAME
HTTP_URI_MISSING_RESOURCE
HTTP_URI_MISSING_SCHEME
HTTP_URI_OK
HTTP_URI_OVERFLOW
HTTP_URI_TOO_LONG
HTTP_URI_UNKNOWN_SCHEME
HTTP_USE_PROXY
HTTP_WAITING
INET6
IPP_ACTIVATE_PRINTER
IPP_ATTRIBUTE
IPP_ATTRIBUTES
IPP_ATTRIBUTES_NOT_SETTABLE
IPP_BAD_REQUEST
IPP_CANCEL_CURRENT_JOB
IPP_CANCEL_JOB
IPP_CANCEL_SUBSCRIPTION
IPP_CHARSET
IPP_COMPRESSION_ERROR
IPP_COMPRESSION_NOT_SUPPORTED
IPP_CONFLICT
IPP_CREATE_JOB
IPP_CREATE_JOB_SUBSCRIPTION
IPP_CREATE_PRINTER_SUBSCRIPTION
IPP_DATA
IPP_DEACTIVATE_PRINTER
IPP_DEVICE_ERROR
IPP_DISABLE_PRINTER
IPP_DOCUMENT_ACCESS_ERROR
IPP_DOCUMENT_FORMAT
IPP_DOCUMENT_FORMAT_ERROR
IPP_ENABLE_PRINTER
IPP_ERROR
IPP_ERROR_JOB_CANCELED
IPP_ERROR_JOB_CANCELLED
IPP_FINISHINGS_BALE
IPP_FINISHINGS_BIND
IPP_FINISHINGS_BIND_BOTTOM
IPP_FINISHINGS_BIND_LEFT
IPP_FINISHINGS_BIND_RIGHT
IPP_FINISHINGS_BIND_TOP
IPP_FINISHINGS_BOOKLET_MAKER
IPP_FINISHINGS_COVER
IPP_FINISHINGS_EDGE_STITCH
IPP_FINISHINGS_EDGE_STITCH_BOTTOM
IPP_FINISHINGS_EDGE_STITCH_LEFT
IPP_FINISHINGS_EDGE_STITCH_RIGHT
IPP_FINISHINGS_EDGE_STITCH_TOP
IPP_FINISHINGS_FOLD
IPP_FINISHINGS_JOB_OFFSET
IPP_FINISHINGS_NONE
IPP_FINISHINGS_PUNCH
IPP_FINISHINGS_SADDLE_STITCH
IPP_FINISHINGS_STAPLE
IPP_FINISHINGS_STAPLE_BOTTOM_LEFT
IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT
IPP_FINISHINGS_STAPLE_DUAL_BOTTOM
IPP_FINISHINGS_STAPLE_DUAL_LEFT
IPP_FINISHINGS_STAPLE_DUAL_RIGHT
IPP_FINISHINGS_STAPLE_DUAL_TOP
IPP_FINISHINGS_STAPLE_TOP_LEFT
IPP_FINISHINGS_STAPLE_TOP_RIGHT
IPP_FINISHINGS_TRIM
IPP_FORBIDDEN
IPP_GET_JOBS
IPP_GET_JOB_ATTRIBUTES
IPP_GET_NOTIFICATIONS
IPP_GET_PRINTER_ATTRIBUTES
IPP_GET_PRINTER_SUPPORTED_VALUES
IPP_GET_PRINT_SUPPORT_FILES
IPP_GET_SUBSCRIPTIONS
IPP_GET_SUBSCRIPTION_ATTRIBUTES
IPP_GONE
IPP_HEADER
IPP_HOLD_JOB
IPP_HOLD_NEW_JOBS
IPP_IDLE
IPP_IGNORED_ALL_NOTIFICATIONS
IPP_IGNORED_ALL_SUBSCRIPTIONS
IPP_INTERNAL_ERROR
IPP_JOB_ABORTED
IPP_JOB_CANCELED
IPP_JOB_CANCELLED
IPP_JOB_COMPLETED
IPP_JOB_HELD
IPP_JOB_PENDING
IPP_JOB_PROCESSING
IPP_JOB_STOPPED
IPP_LANDSCAPE
IPP_MAX_NAME
IPP_MAX_VALUES
IPP_MULTIPLE_JOBS_NOT_SUPPORTED
IPP_NOT_ACCEPTING
IPP_NOT_AUTHENTICATED
IPP_NOT_AUTHORIZED
IPP_NOT_FOUND
IPP_NOT_POSSIBLE
IPP_OK
IPP_OK_BUT_CANCEL_SUBSCRIPTION
IPP_OK_CONFLICT
IPP_OK_EVENTS_COMPLETE
IPP_OK_IGNORED_NOTIFICATIONS
IPP_OK_IGNORED_SUBSCRIPTIONS
IPP_OK_SUBST
IPP_OK_TOO_MANY_EVENTS
IPP_OPERATION_NOT_SUPPORTED
IPP_PAUSE_PRINTER
IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB
IPP_PORT
IPP_PORTRAIT
IPP_PRINTER_BUSY
IPP_PRINTER_IDLE
IPP_PRINTER_IS_DEACTIVATED
IPP_PRINTER_PROCESSING
IPP_PRINTER_STOPPED
IPP_PRINT_JOB
IPP_PRINT_SUPPORT_FILE_NOT_FOUND
IPP_PRINT_URI
IPP_PRIVATE
IPP_PROMOTE_JOB
IPP_PURGE_JOBS
IPP_QUALITY_DRAFT
IPP_QUALITY_HIGH
IPP_QUALITY_NORMAL
IPP_REDIRECTION_OTHER_SITE
IPP_RELEASE_HELD_NEW_JOBS
IPP_RELEASE_JOB
IPP_RENEW_SUBSCRIPTION
IPP_REPROCESS_JOB
IPP_REQUEST_ENTITY
IPP_REQUEST_VALUE
IPP_RESTART_JOB
IPP_RESTART_PRINTER
IPP_RESUME_JOB
IPP_RESUME_PRINTER
IPP_RES_PER_CM
IPP_RES_PER_INCH
IPP_REVERSE_LANDSCAPE
IPP_REVERSE_PORTRAIT
IPP_SCHEDULE_JOB_AFTER
IPP_SEND_DOCUMENT
IPP_SEND_NOTIFICATIONS
IPP_SEND_URI
IPP_SERVICE_UNAVAILABLE
IPP_SET_JOB_ATTRIBUTES
IPP_SET_PRINTER_ATTRIBUTES
IPP_SHUTDOWN_PRINTER
IPP_STARTUP_PRINTER
IPP_SUSPEND_CURRENT_JOB
IPP_TAG_ADMINDEFINE
IPP_TAG_BEGIN_COLLECTION
IPP_TAG_BOOLEAN
IPP_TAG_CHARSET
IPP_TAG_COPY
IPP_TAG_DATE
IPP_TAG_DEFAULT
IPP_TAG_DELETEATTR
IPP_TAG_END
IPP_TAG_END_COLLECTION
IPP_TAG_ENUM
IPP_TAG_EVENT_NOTIFICATION
IPP_TAG_INTEGER
IPP_TAG_JOB
IPP_TAG_KEYWORD
IPP_TAG_LANGUAGE
IPP_TAG_MASK
IPP_TAG_MEMBERNAME
IPP_TAG_MIMETYPE
IPP_TAG_NAME
IPP_TAG_NAMELANG
IPP_TAG_NOTSETTABLE
IPP_TAG_NOVALUE
IPP_TAG_OPERATION
IPP_TAG_PRINTER
IPP_TAG_RANGE
IPP_TAG_RESOLUTION
IPP_TAG_STRING
IPP_TAG_SUBSCRIPTION
IPP_TAG_TEXT
IPP_TAG_TEXTLANG
IPP_TAG_UNKNOWN
IPP_TAG_UNSUPPORTED_GROUP
IPP_TAG_UNSUPPORTED_VALUE
IPP_TAG_URI
IPP_TAG_URISCHEME
IPP_TAG_ZERO
IPP_TEMPORARY_ERROR
IPP_TIMEOUT
IPP_TOO_MANY_SUBSCRIPTIONS
IPP_URI_SCHEME
IPP_VALIDATE_JOB
IPP_VERSION_NOT_SUPPORTED
PPD_ALLOC_ERROR
PPD_BAD_CUSTOM_PARAM
PPD_BAD_OPEN_GROUP
PPD_BAD_OPEN_UI
PPD_BAD_ORDER_DEPENDENCY
PPD_BAD_UI_CONSTRAINTS
PPD_CONFORM_RELAXED
PPD_CONFORM_STRICT
PPD_CS_CMY
PPD_CS_CMYK
PPD_CS_GRAY
PPD_CS_N
PPD_CS_RGB
PPD_CS_RGBK
PPD_CUSTOM_CURVE
PPD_CUSTOM_INT
PPD_CUSTOM_INVCURVE
PPD_CUSTOM_PASSCODE
PPD_CUSTOM_PASSWORD
PPD_CUSTOM_POINTS
PPD_CUSTOM_REAL
PPD_CUSTOM_STRING
PPD_FILE_OPEN_ERROR
PPD_ILLEGAL_CHARACTER
PPD_ILLEGAL_MAIN_KEYWORD
PPD_ILLEGAL_OPTION_KEYWORD
PPD_ILLEGAL_TRANSLATION
PPD_ILLEGAL_WHITESPACE
PPD_INTERNAL_ERROR
PPD_LINE_TOO_LONG
PPD_MAX_LINE
PPD_MAX_NAME
PPD_MAX_TEXT
PPD_MISSING_ASTERISK
PPD_MISSING_PPDADOBE4
PPD_MISSING_VALUE
PPD_NESTED_OPEN_GROUP
PPD_NESTED_OPEN_UI
PPD_NULL_FILE
PPD_OK
PPD_ORDER_ANY
PPD_ORDER_DOCUMENT
PPD_ORDER_EXIT
PPD_ORDER_JCL
PPD_ORDER_PAGE
PPD_ORDER_PROLOG
PPD_UI_BOOLEAN
PPD_UI_PICKMANY
PPD_UI_PICKONE
PPD_VERSION
) ] );
our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
our @EXPORT = qw(
AF_LOCAL
CUPS_ACCEPT_JOBS
CUPS_ADD_CLASS
CUPS_ADD_MODIFY_CLASS
CUPS_ADD_MODIFY_PRINTER
CUPS_ADD_PRINTER
CUPS_AUTHENTICATE_JOB
CUPS_AUTO_ENCODING
CUPS_BACKEND_AUTH_REQUIRED
CUPS_BACKEND_CANCEL
CUPS_BACKEND_FAILED
CUPS_BACKEND_HOLD
CUPS_BACKEND_OK
CUPS_BACKEND_STOP
CUPS_DATE_ANY
CUPS_DELETE_CLASS
CUPS_DELETE_PRINTER
CUPS_ENCODING_DBCS_END
CUPS_ENCODING_SBCS_END
CUPS_ENCODING_VBCS_END
CUPS_EUC_CN
CUPS_EUC_JP
CUPS_EUC_KR
CUPS_EUC_TW
CUPS_FILE_GZIP
CUPS_FILE_NONE
CUPS_GET_CLASSES
CUPS_GET_DEFAULT
CUPS_GET_DEVICES
CUPS_GET_PPDS
CUPS_GET_PRINTERS
CUPS_IMAGE_BLACK
CUPS_IMAGE_CMY
CUPS_IMAGE_CMYK
CUPS_IMAGE_RGB
CUPS_IMAGE_RGB_CMYK
CUPS_IMAGE_WHITE
CUPS_ISO8859_1
CUPS_ISO8859_10
CUPS_ISO8859_11
CUPS_ISO8859_13
CUPS_ISO8859_14
CUPS_ISO8859_15
CUPS_ISO8859_16
CUPS_ISO8859_2
CUPS_ISO8859_3
CUPS_ISO8859_4
CUPS_ISO8859_5
CUPS_ISO8859_6
CUPS_ISO8859_7
CUPS_ISO8859_8
CUPS_ISO8859_9
CUPS_KOI8_R
CUPS_KOI8_U
CUPS_MAC_ROMAN
CUPS_MAX_USTRING
CUPS_MOVE_JOB
CUPS_PRINTER_AUTHENTICATED
CUPS_PRINTER_BIND
CUPS_PRINTER_BW
CUPS_PRINTER_CLASS
CUPS_PRINTER_COLLATE
CUPS_PRINTER_COLOR
CUPS_PRINTER_COMMANDS
CUPS_PRINTER_COPIES
CUPS_PRINTER_COVER
CUPS_PRINTER_DEFAULT
CUPS_PRINTER_DELETE
CUPS_PRINTER_DUPLEX
CUPS_PRINTER_FAX
CUPS_PRINTER_IMPLICIT
CUPS_PRINTER_LARGE
CUPS_PRINTER_LOCAL
CUPS_PRINTER_MEDIUM
CUPS_PRINTER_NOT_SHARED
CUPS_PRINTER_OPTIONS
CUPS_PRINTER_PUNCH
CUPS_PRINTER_REJECTING
CUPS_PRINTER_REMOTE
CUPS_PRINTER_SMALL
CUPS_PRINTER_SORT
CUPS_PRINTER_STAPLE
CUPS_PRINTER_VARIABLE
CUPS_REJECT_JOBS
CUPS_SET_DEFAULT
CUPS_US_ASCII
CUPS_UTF8
CUPS_VERSION
CUPS_VERSION_MAJOR
CUPS_VERSION_MINOR
CUPS_VERSION_PATCH
CUPS_WINDOWS_1250
CUPS_WINDOWS_1251
CUPS_WINDOWS_1252
CUPS_WINDOWS_1253
CUPS_WINDOWS_1254
CUPS_WINDOWS_1255
CUPS_WINDOWS_1256
CUPS_WINDOWS_1257
CUPS_WINDOWS_1258
CUPS_WINDOWS_1361
CUPS_WINDOWS_874
CUPS_WINDOWS_932
CUPS_WINDOWS_936
CUPS_WINDOWS_949
CUPS_WINDOWS_950
HTTP_0_9
HTTP_1_0
HTTP_1_1
HTTP_ACCEPTED
HTTP_AUTH_BASIC
HTTP_AUTH_MD5
HTTP_AUTH_MD5_INT
HTTP_AUTH_MD5_SESS
HTTP_AUTH_MD5_SESS_INT
HTTP_AUTH_NONE
HTTP_BAD_GATEWAY
HTTP_BAD_REQUEST
HTTP_CLOSE
HTTP_CONFLICT
HTTP_CONTINUE
HTTP_CREATED
HTTP_DELETE
HTTP_ENCODE_CHUNKED
HTTP_ENCODE_FIELDS
HTTP_ENCODE_LENGTH
HTTP_ENCRYPT_ALWAYS
HTTP_ENCRYPT_IF_REQUESTED
HTTP_ENCRYPT_NEVER
HTTP_ENCRYPT_REQUIRED
HTTP_ERROR
HTTP_EXPECTATION_FAILED
HTTP_FIELD_ACCEPT_LANGUAGE
HTTP_FIELD_ACCEPT_RANGES
HTTP_FIELD_AUTHORIZATION
HTTP_FIELD_CONNECTION
HTTP_FIELD_CONTENT_ENCODING
HTTP_FIELD_CONTENT_LANGUAGE
HTTP_FIELD_CONTENT_LENGTH
HTTP_FIELD_CONTENT_LOCATION
HTTP_FIELD_CONTENT_MD5
HTTP_FIELD_CONTENT_RANGE
HTTP_FIELD_CONTENT_TYPE
HTTP_FIELD_CONTENT_VERSION
HTTP_FIELD_DATE
HTTP_FIELD_HOST
HTTP_FIELD_IF_MODIFIED_SINCE
HTTP_FIELD_IF_UNMODIFIED_SINCE
HTTP_FIELD_KEEP_ALIVE
HTTP_FIELD_LAST_MODIFIED
HTTP_FIELD_LINK
HTTP_FIELD_LOCATION
HTTP_FIELD_MAX
HTTP_FIELD_RANGE
HTTP_FIELD_REFERER
HTTP_FIELD_RETRY_AFTER
HTTP_FIELD_TRANSFER_ENCODING
HTTP_FIELD_UNKNOWN
HTTP_FIELD_UPGRADE
HTTP_FIELD_USER_AGENT
HTTP_FIELD_WWW_AUTHENTICATE
HTTP_FORBIDDEN
HTTP_GATEWAY_TIMEOUT
HTTP_GET
HTTP_GET_SEND
HTTP_GONE
HTTP_HEAD
HTTP_KEEPALIVE_OFF
HTTP_KEEPALIVE_ON
HTTP_LENGTH_REQUIRED
HTTP_MAX_BUFFER
HTTP_MAX_HOST
HTTP_MAX_URI
HTTP_MAX_VALUE
HTTP_METHOD_NOT_ALLOWED
HTTP_MOVED_PERMANENTLY
HTTP_MOVED_TEMPORARILY
HTTP_MULTIPLE_CHOICES
HTTP_NOT_ACCEPTABLE
HTTP_NOT_AUTHORITATIVE
HTTP_NOT_FOUND
HTTP_NOT_IMPLEMENTED
HTTP_NOT_MODIFIED
HTTP_NOT_SUPPORTED
HTTP_NO_CONTENT
HTTP_OK
HTTP_OPTIONS
HTTP_PARTIAL_CONTENT
HTTP_PAYMENT_REQUIRED
HTTP_POST
HTTP_POST_RECV
HTTP_POST_SEND
HTTP_PRECONDITION
HTTP_PROXY_AUTHENTICATION
HTTP_PUT
HTTP_PUT_RECV
HTTP_REQUESTED_RANGE
HTTP_REQUEST_TIMEOUT
HTTP_REQUEST_TOO_LARGE
HTTP_RESET_CONTENT
HTTP_SEE_OTHER
HTTP_SERVER_ERROR
HTTP_SERVICE_UNAVAILABLE
HTTP_STATUS
HTTP_SWITCHING_PROTOCOLS
HTTP_TRACE
HTTP_UNAUTHORIZED
HTTP_UNSUPPORTED_MEDIATYPE
HTTP_UPGRADE_REQUIRED
HTTP_URI_BAD_ARGUMENTS
HTTP_URI_BAD_HOSTNAME
HTTP_URI_BAD_PORT
HTTP_URI_BAD_RESOURCE
HTTP_URI_BAD_SCHEME
HTTP_URI_BAD_URI
HTTP_URI_BAD_USERNAME
HTTP_URI_CODING_ALL
HTTP_URI_CODING_HOSTNAME
HTTP_URI_CODING_MOST
HTTP_URI_CODING_NONE
HTTP_URI_CODING_QUERY
HTTP_URI_CODING_RESOURCE
HTTP_URI_CODING_USERNAME
HTTP_URI_MISSING_RESOURCE
HTTP_URI_MISSING_SCHEME
HTTP_URI_OK
HTTP_URI_OVERFLOW
HTTP_URI_TOO_LONG
HTTP_URI_UNKNOWN_SCHEME
HTTP_USE_PROXY
HTTP_WAITING
INET6
IPP_ACTIVATE_PRINTER
IPP_ATTRIBUTE
IPP_ATTRIBUTES
IPP_ATTRIBUTES_NOT_SETTABLE
IPP_BAD_REQUEST
IPP_CANCEL_CURRENT_JOB
IPP_CANCEL_JOB
IPP_CANCEL_SUBSCRIPTION
IPP_CHARSET
IPP_COMPRESSION_ERROR
IPP_COMPRESSION_NOT_SUPPORTED
IPP_CONFLICT
IPP_CREATE_JOB
IPP_CREATE_JOB_SUBSCRIPTION
IPP_CREATE_PRINTER_SUBSCRIPTION
IPP_DATA
IPP_DEACTIVATE_PRINTER
IPP_DEVICE_ERROR
IPP_DISABLE_PRINTER
IPP_DOCUMENT_ACCESS_ERROR
IPP_DOCUMENT_FORMAT
IPP_DOCUMENT_FORMAT_ERROR
IPP_ENABLE_PRINTER
IPP_ERROR
IPP_ERROR_JOB_CANCELED
IPP_ERROR_JOB_CANCELLED
IPP_FINISHINGS_BALE
IPP_FINISHINGS_BIND
IPP_FINISHINGS_BIND_BOTTOM
IPP_FINISHINGS_BIND_LEFT
IPP_FINISHINGS_BIND_RIGHT
IPP_FINISHINGS_BIND_TOP
IPP_FINISHINGS_BOOKLET_MAKER
IPP_FINISHINGS_COVER
IPP_FINISHINGS_EDGE_STITCH
IPP_FINISHINGS_EDGE_STITCH_BOTTOM
IPP_FINISHINGS_EDGE_STITCH_LEFT
IPP_FINISHINGS_EDGE_STITCH_RIGHT
IPP_FINISHINGS_EDGE_STITCH_TOP
IPP_FINISHINGS_FOLD
IPP_FINISHINGS_JOB_OFFSET
IPP_FINISHINGS_NONE
IPP_FINISHINGS_PUNCH
IPP_FINISHINGS_SADDLE_STITCH
IPP_FINISHINGS_STAPLE
IPP_FINISHINGS_STAPLE_BOTTOM_LEFT
IPP_FINISHINGS_STAPLE_BOTTOM_RIGHT
IPP_FINISHINGS_STAPLE_DUAL_BOTTOM
IPP_FINISHINGS_STAPLE_DUAL_LEFT
IPP_FINISHINGS_STAPLE_DUAL_RIGHT
IPP_FINISHINGS_STAPLE_DUAL_TOP
IPP_FINISHINGS_STAPLE_TOP_LEFT
IPP_FINISHINGS_STAPLE_TOP_RIGHT
IPP_FINISHINGS_TRIM
IPP_FORBIDDEN
IPP_GET_JOBS
IPP_GET_JOB_ATTRIBUTES
IPP_GET_NOTIFICATIONS
IPP_GET_PRINTER_ATTRIBUTES
IPP_GET_PRINTER_SUPPORTED_VALUES
IPP_GET_PRINT_SUPPORT_FILES
IPP_GET_SUBSCRIPTIONS
IPP_GET_SUBSCRIPTION_ATTRIBUTES
IPP_GONE
IPP_HEADER
IPP_HOLD_JOB
IPP_HOLD_NEW_JOBS
IPP_IDLE
IPP_IGNORED_ALL_NOTIFICATIONS
IPP_IGNORED_ALL_SUBSCRIPTIONS
IPP_INTERNAL_ERROR
IPP_JOB_ABORTED
IPP_JOB_CANCELED
IPP_JOB_CANCELLED
IPP_JOB_COMPLETED
IPP_JOB_HELD
IPP_JOB_PENDING
IPP_JOB_PROCESSING
IPP_JOB_STOPPED
IPP_LANDSCAPE
IPP_MAX_NAME
IPP_MAX_VALUES
IPP_MULTIPLE_JOBS_NOT_SUPPORTED
IPP_NOT_ACCEPTING
IPP_NOT_AUTHENTICATED
IPP_NOT_AUTHORIZED
IPP_NOT_FOUND
IPP_NOT_POSSIBLE
IPP_OK
IPP_OK_BUT_CANCEL_SUBSCRIPTION
IPP_OK_CONFLICT
IPP_OK_EVENTS_COMPLETE
IPP_OK_IGNORED_NOTIFICATIONS
IPP_OK_IGNORED_SUBSCRIPTIONS
IPP_OK_SUBST
IPP_OK_TOO_MANY_EVENTS
IPP_OPERATION_NOT_SUPPORTED
IPP_PAUSE_PRINTER
IPP_PAUSE_PRINTER_AFTER_CURRENT_JOB
IPP_PORT
IPP_PORTRAIT
IPP_PRINTER_BUSY
IPP_PRINTER_IDLE
IPP_PRINTER_IS_DEACTIVATED
IPP_PRINTER_PROCESSING
IPP_PRINTER_STOPPED
IPP_PRINT_JOB
IPP_PRINT_SUPPORT_FILE_NOT_FOUND
IPP_PRINT_URI
IPP_PRIVATE
IPP_PROMOTE_JOB
IPP_PURGE_JOBS
IPP_QUALITY_DRAFT
IPP_QUALITY_HIGH
IPP_QUALITY_NORMAL
IPP_REDIRECTION_OTHER_SITE
IPP_RELEASE_HELD_NEW_JOBS
IPP_RELEASE_JOB
IPP_RENEW_SUBSCRIPTION
IPP_REPROCESS_JOB
IPP_REQUEST_ENTITY
IPP_REQUEST_VALUE
IPP_RESTART_JOB
IPP_RESTART_PRINTER
IPP_RESUME_JOB
IPP_RESUME_PRINTER
IPP_RES_PER_CM
IPP_RES_PER_INCH
IPP_REVERSE_LANDSCAPE
IPP_REVERSE_PORTRAIT
IPP_SCHEDULE_JOB_AFTER
IPP_SEND_DOCUMENT
IPP_SEND_NOTIFICATIONS
IPP_SEND_URI
IPP_SERVICE_UNAVAILABLE
IPP_SET_JOB_ATTRIBUTES
IPP_SET_PRINTER_ATTRIBUTES
IPP_SHUTDOWN_PRINTER
IPP_STARTUP_PRINTER
IPP_SUSPEND_CURRENT_JOB
IPP_TAG_ADMINDEFINE
IPP_TAG_BEGIN_COLLECTION
IPP_TAG_BOOLEAN
IPP_TAG_CHARSET
IPP_TAG_COPY
IPP_TAG_DATE
IPP_TAG_DEFAULT
IPP_TAG_DELETEATTR
IPP_TAG_END
IPP_TAG_END_COLLECTION
IPP_TAG_ENUM
IPP_TAG_EVENT_NOTIFICATION
IPP_TAG_INTEGER
IPP_TAG_JOB
IPP_TAG_KEYWORD
IPP_TAG_LANGUAGE
IPP_TAG_MASK
IPP_TAG_MEMBERNAME
IPP_TAG_MIMETYPE
IPP_TAG_NAME
IPP_TAG_NAMELANG
IPP_TAG_NOTSETTABLE
IPP_TAG_NOVALUE
IPP_TAG_OPERATION
IPP_TAG_PRINTER
IPP_TAG_RANGE
IPP_TAG_RESOLUTION
IPP_TAG_STRING
IPP_TAG_SUBSCRIPTION
IPP_TAG_TEXT
IPP_TAG_TEXTLANG
IPP_TAG_UNKNOWN
IPP_TAG_UNSUPPORTED_GROUP
IPP_TAG_UNSUPPORTED_VALUE
IPP_TAG_URI
IPP_TAG_URISCHEME
IPP_TAG_ZERO
IPP_TEMPORARY_ERROR
IPP_TIMEOUT
IPP_TOO_MANY_SUBSCRIPTIONS
IPP_URI_SCHEME
IPP_VALIDATE_JOB
IPP_VERSION_NOT_SUPPORTED
PPD_ALLOC_ERROR
PPD_BAD_CUSTOM_PARAM
PPD_BAD_OPEN_GROUP
PPD_BAD_OPEN_UI
PPD_BAD_ORDER_DEPENDENCY
PPD_BAD_UI_CONSTRAINTS
PPD_CONFORM_RELAXED
PPD_CONFORM_STRICT
PPD_CS_CMY
PPD_CS_CMYK
PPD_CS_GRAY
PPD_CS_N
PPD_CS_RGB
PPD_CS_RGBK
PPD_CUSTOM_CURVE
PPD_CUSTOM_INT
PPD_CUSTOM_INVCURVE
PPD_CUSTOM_PASSCODE
PPD_CUSTOM_PASSWORD
PPD_CUSTOM_POINTS
PPD_CUSTOM_REAL
PPD_CUSTOM_STRING
PPD_FILE_OPEN_ERROR
PPD_ILLEGAL_CHARACTER
PPD_ILLEGAL_MAIN_KEYWORD
PPD_ILLEGAL_OPTION_KEYWORD
PPD_ILLEGAL_TRANSLATION
PPD_ILLEGAL_WHITESPACE
PPD_INTERNAL_ERROR
PPD_LINE_TOO_LONG
PPD_MAX_LINE
PPD_MAX_NAME
PPD_MAX_TEXT
PPD_MISSING_ASTERISK
PPD_MISSING_PPDADOBE4
PPD_MISSING_VALUE
PPD_NESTED_OPEN_GROUP
PPD_NESTED_OPEN_UI
PPD_NULL_FILE
PPD_OK
PPD_ORDER_ANY
PPD_ORDER_DOCUMENT
PPD_ORDER_EXIT
PPD_ORDER_JCL
PPD_ORDER_PAGE
PPD_ORDER_PROLOG
PPD_UI_BOOLEAN
PPD_UI_PICKMANY
PPD_UI_PICKONE
PPD_VERSION
);
our $VERSION = '0.61';
sub AUTOLOAD {
# This AUTOLOAD is used to 'autoload' constants from the constant()
# XS function.
my $constname;
our $AUTOLOAD;
($constname = $AUTOLOAD) =~ s/.*:://;
croak "&Net::CUPS::Destination::constant not defined" if $constname eq 'constant';
my ($error, $val) = constant($constname);
if ($error) { croak $error; }
{
no strict 'refs';
# Fixed between 5.005_53 and 5.005_61
#XXX if ($] >= 5.00561) {
#XXX *$AUTOLOAD = sub () { $val };
#XXX }
#XXX else {
*$AUTOLOAD = sub { $val };
#XXX }
}
goto &$AUTOLOAD;
}
#require XSLoader;
#XSLoader::load('Net::CUPS', $VERSION);
##==================================================================##
## Constructors ##
##==================================================================##
##----------------------------------------------##
## new ##
##----------------------------------------------##
sub new
{
## Pull in what type of an object we will be
my $type = shift;
## Pull in our options if we have any ...
my %options = @_;
## XXX One of the options might be a server host ...
## We will use a hash as our base class variable
my $self = {};
my $class = ref( $type ) || $type;
## Bless the class for it is good [tm].
bless( $self, $class );
return( $self );
}
##----------------------------------------------##
## DESTROY ##
##----------------------------------------------##
sub DESTROY
{
my $self = shift;
NETCUPS_freeDestination( $self );
return;
}
##==================================================================##
## Methods ##
##==================================================================##
##----------------------------------------------##
## addOption ##
##----------------------------------------------##
sub addOption
{
my( $self, $name, $value ) = @_;
return( NETCUPS_addOption( $self, $name, $value ) );
}
##----------------------------------------------##
## cancelJob ##
##----------------------------------------------##
sub cancelJob
{
my( $self, $jobid ) = @_;
my $name = $self->getName();
return( NETCUPS_cancelJob( $name, $jobid ) );
}
##----------------------------------------------##
## getDescription ##
##----------------------------------------------##
sub getDescription
{
my $self = shift;
return( NETCUPS_getDeviceAttribute( $self->getName(),
"printer-info",
IPP_TAG_TEXT() ) );
}
##----------------------------------------------##
## getError ##
##----------------------------------------------##
sub getError
{
my $self = shift;
return( NETCUPS_getError() );
}
##----------------------------------------------##
## getJob ##
##----------------------------------------------##
sub getJob
{
my( $self, $jobid ) = @_;
my $name = $self->getName();
return( NETCUPS_getJob( $name, $jobid ) );
}
##----------------------------------------------##
## getJobs ##
##----------------------------------------------##
sub getJobs
{
my( $self, $whose, $scope ) = @_;
my $name = $self->getName();
return( NETCUPS_getJobs( $name, $whose, $scope ) );
}
##----------------------------------------------##
## getLocation ##
##----------------------------------------------##
sub getLocation
{
my $self = shift;
return( NETCUPS_getDeviceAttribute( $self->getName(),
"printer-location",
IPP_TAG_TEXT() ) );
}
##----------------------------------------------##
## getName ##
##----------------------------------------------##
sub getName
{
my $self = shift;
return( NETCUPS_getDestinationName( $self ) );
}
##----------------------------------------------##
## getOptionValue ##
##----------------------------------------------##
sub getOptionValue
{
my( $self, $option ) = @_;
return( NETCUPS_getDestinationOptionValue( $self, $option ) );
}
##----------------------------------------------##
## getOptions ##
##----------------------------------------------##
sub getOptions
{
my $self = shift;
return( NETCUPS_getDestinationOptions( $self ) );
}
##----------------------------------------------##
## getUri ##
##----------------------------------------------##
sub getUri
{
my $self = shift;
return( NETCUPS_getDeviceAttribute( $self->getName(),
"device-uri",
IPP_TAG_URI() ) );
}
##----------------------------------------------##
## getState ##
##----------------------------------------------##
sub getState
{
my $self = shift;
return( NETCUPS_getDeviceAttribute( $self->getName(),
"printer-state",
IPP_TAG_ENUM() ) );
}
##----------------------------------------------##
## printFile ##
##----------------------------------------------##
sub printFile
{
my( $self, $filename, $title ) = @_;
return( NETCUPS_printFile( $self, $filename, $title ) );
}
##==================================================================##
## End of Code ##
##==================================================================##
1;
##==================================================================##
## Plain Old Documentation (POD) ##
##==================================================================##
__END__
=head1 NAME
Net::CUPS::Destination - CUPS Destination Object
=head1 SYNOPSIS
use Net::CUPS::Destination;
my $printer = $cups->getDestination( "lj4200dn" );
my $name = $printer->getName();
my @options = $printer->getOptions();
my $jobid = $printer->printFile( $filename, $title );
=head1 DESCRIPTION
Net::CUPS is an object oriented interface to the Common Unix Printing System.
Net::CUPS::Destination is an abstraction of the concept of a destination
in CUPS. Destinations will most likely be a printer, but it can be any
type of target in which a file is sent for processing.
=head1 METHODS
=over 4
=item B<addOption>
$dest->addOption( $name, $value );
Method to add another option name/value pair to the destination.
=item B<cancelJob>
my $dest->cancelJob( $jobid );
Method to chancel a job sent to this destination.
=item B<getDescription>
my $description = $dest->getDescription();
Provides the description string associated with this printer.
=item B<getError>
my $error = $dest->getError();
Utility method for returning the last error that occurred.
=item B<getName>
my $name = $dest->getName();
Method to return the name of the destination.
=item B<getJob>
my $job = $dest->getJob( $jobid )
Method to get a specific job as a hash of attributes.
=item B<getJobs>
my @jobs = $dest->getJobs( $whose, $scope );
This method will return an array of job identifiers. $whose is 0 for
all users and 1 is just for the selected user. $scope is -1 for all
jobs, 0 for active jobs and 1 for completed jobs.
=item B<getLocation>
Returns the location string for this destination.
=item B<getOptionValue>
my $value = $dest->getOptionValue( $name );
This utility method will return the value of the selected option.
=item B<getOptions>
my @options = $dest->getOptions();
This method will return an array of the options currently set on the
destination.
=item B<printFile>
my $jobid = $dest->printFile( $filename, $title );
I know this is the method that you have been looking for. This is
what you will use to send a file to handled by the destination. You
must provide the name of the file and a title for the job.
=item B<getUri>
my $uri = $dest->getUri();
This function returns the device URI of a destination.
For example, a network printer might appear as socket://192.168.1.1
=item B<getState>
my $state = $dest->getState();
This function returns the state of a destination.
The value is an enumeration type with 3 meaning 'idle', 4 'processing'
and 5 'stopped'.
=back
=head1 SEE ALSO
L<Net::CUPS>, L<Net::CUPS::PPD>, L<Net::CUPS::IPP>
=head1 SUPPORT
Net::CUPS is currently maintained by Stefan Seifert <NINE@cpan.org>.
The Github repository for this project is at
L<https://github.com/niner/perl-Net-CUPS>. Pull requests are welcome.
=head1 AUTHOR
Dracken Technology, Inc. (http://www.dracken.com/)
=head1 COPYRIGHT AND LICENSE
Copyright (c) 2003-2005 David Hageman
Copyright (c) 2006-2009 Dracken Technology, Inc.
All rights reserved.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8.8 or,
at your option, any later version of Perl 5 you may have available.
CUPS, the Common UNIX Printing System, the CUPS logo, and ESP Print Pro are the trademark property of Easy Software Products.
=cut