CHANGES-1.3.txt
---------------
+CHANGES IN CUPS V1.3.7
+
+ - The image filters did not work with some CMYK JPEG files
+ produced by Adobe applications (STR #2727)
+ - The Mac OS X USB backend did not work with printers that
+ did not report a make or model.
+ - The job-sheets option was not encoded properly (STR #2715)
+ - The scheduler incorrectly complained about missing LSB
+ PPD directories.
+
+
CHANGES IN CUPS V1.3.6
- Documentation updates (STR #2646, STR #2647, STR #2649)
-CHANGES.txt - 2008-01-30
+CHANGES.txt - 2008-02-26
------------------------
CHANGES IN CUPS V1.4b1
+ - The scheduler now manages ICC color profiles on Mac OS X.
+ - The network backends (ipp, lpd, socket) now support
+ SNMP-based supply and page count monitoring (STR #1655)
+ - The lppasswd program is no longer installed setuid to
+ root to make the default installation more secure.
- Added a new ppdLocalizeMarkerName() function to get
the localized version of a marker-names value.
- The scheduler now provides the printer-dns-sd-name
# DO NOT DELETE THIS LINE -- make depend depends on it.
-betest.o: ../cups/string.h ../config.h
ipp.o: ../cups/http-private.h ../config.h ../cups/http.h ../cups/versioning.h
ipp.o: ../cups/md5.h ../cups/ipp-private.h ../cups/ipp.h ../cups/backend.h
ipp.o: ../cups/cups.h ../cups/ppd.h ../cups/array.h ../cups/file.h
test1284.o: ../cups/cups.h ../cups/ipp.h ../cups/http.h ../cups/ppd.h
test1284.o: ../cups/array.h ../cups/file.h ../cups/language.h ../cups/debug.h
test1284.o: ../cups/i18n.h ../cups/transcode.h ../cups/snmp.h
+testbackend.o: ../cups/string.h ../config.h ../cups/cups.h ../cups/ipp.h
+testbackend.o: ../cups/http.h ../cups/versioning.h ../cups/ppd.h
+testbackend.o: ../cups/array.h ../cups/file.h ../cups/language.h
+testbackend.o: ../cups/sidechannel.h
+testsupplies.o: backend-private.h ../cups/backend.h ../cups/versioning.h
+testsupplies.o: ../cups/sidechannel.h ../cups/cups.h ../cups/ipp.h
+testsupplies.o: ../cups/http.h ../cups/ppd.h ../cups/array.h ../cups/file.h
+testsupplies.o: ../cups/language.h ../cups/debug.h ../cups/i18n.h
+testsupplies.o: ../cups/transcode.h ../cups/snmp.h ../cups/string.h
+testsupplies.o: ../config.h
usb.o: ../cups/backend.h ../cups/versioning.h ../cups/cups.h ../cups/ipp.h
usb.o: ../cups/http.h ../cups/ppd.h ../cups/array.h ../cups/file.h
usb.o: ../cups/language.h ../cups/string.h ../config.h ../cups/i18n.h
RBACKENDS = ipp lpd
UBACKENDS = $(PAP) $(LEGACY_BACKENDS) serial snmp socket usb
-TARGETS = betest test1284 libbackend.a $(RBACKENDS) $(UBACKENDS)
-LIBOBJS = ieee1284.o runloop.o
-OBJS = betest.o ipp.o lpd.o pap.o parallel.o scsi.o \
- serial.o snmp.o socket.o test1284.o usb.o
+TARGETS = test1284 testbackend testsupplies \
+ libbackend.a $(RBACKENDS) $(UBACKENDS)
+LIBOBJS = ieee1284.o runloop.o snmp-supplies.o
+OBJS = ipp.o lpd.o pap.o parallel.o scsi.o serial.o snmp.o socket.o \
+ test1284.o testbackend.o testsupplies.o usb.o
#
#
-# betest
+# test1284
#
-betest: betest.o ../cups/$(LIBCUPS)
+test1284: test1284.o ../cups/libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o betest betest.o $(LIBS)
+ $(CC) $(LDFLAGS) -o test1284 test1284.o ../cups/libcups.a \
+ $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
#
-# test1284
+# testbackend
#
-test1284: test1284.o ../cups/libcups.a
+testbackend: testbackend.o ../cups/libcups.a
echo Linking $@...
- $(CC) $(LDFLAGS) -o test1284 test1284.o ../cups/libcups.a \
+ $(CC) $(LDFLAGS) -o testbackend testbackend.o ../cups/libcups.a \
$(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+#
+# testsupplies
+#
+
+testsupplies: testsupplies.o libbackend.a ../cups/libcups.a
+ echo Linking $@...
+ $(CC) $(LDFLAGS) -o testsupplies testsupplies.o libbackend.a \
+ ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(COMMONLIBS) $(LIBZ)
+
+
#
# libbackend.a
#
#define CUPS_OID_prtMarkerSuppliesType CUPS_OID_prtMarkerSuppliesEntry,5
#define CUPS_OID_prtMarkerSuppliesDescription CUPS_OID_prtMarkerSuppliesEntry,6
#define CUPS_OID_prtMarkerSuppliesSupplyUnit CUPS_OID_prtMarkerSuppliesEntry,7
-#define CUPS_OID_prtMarkerSuppliesMaxCapacity CUPS_OID_prtMarkerSupliesEntry,8
-#define CUPS_OID_prtMarkerSuppliesLevel CUPS_OID_prtMarkerSupliesEntry,9
+#define CUPS_OID_prtMarkerSuppliesMaxCapacity CUPS_OID_prtMarkerSuppliesEntry,8
+#define CUPS_OID_prtMarkerSuppliesLevel CUPS_OID_prtMarkerSuppliesEntry,9
#define CUPS_OID_prtMarkerColorant CUPS_OID_printmib,12
#define CUPS_OID_prtMarkerColorantTable CUPS_OID_prtMarkerColorant,1
const char *scheme, char *uri, int uri_size);
extern int backendGetMakeModel(const char *device_id, char *make_model,
int make_model_size);
-extern ssize_t backendRunLoop(int print_fd, int device_fd, int use_bc,
- void (*side_cb)(int print_fd, int device_fd,
- int use_bc));
-
+extern void backendNetworkSideCB(int print_fd, int device_fd, int snmp_fd,
+ http_addr_t *addr, int use_bc);
+extern ssize_t backendRunLoop(int print_fd, int device_fd, int snmp_fd,
+ http_addr_t *addr, int use_bc,
+ void (*side_cb)(int print_fd, int device_fd,
+ int snmp_fd, http_addr_t *addr,
+ int use_bc));
+extern int backendSNMPSupplies(int snmp_fd, http_addr_t *addr,
+ int *page_count, int *printer_state);
# ifdef __cplusplus
}
+++ /dev/null
-/*
- * "$Id: betest.c 6649 2007-07-11 21:46:42Z mike $"
- *
- * Backend test program for the Common UNIX Printing System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2005 by Easy Software Products, all rights reserved.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * "LICENSE" which should have been included with this file. If this
- * file is missing or damaged, see the license at "http://www.cups.org/".
- *
- * This file is subject to the Apple OS-Developed Software exception.
- *
- * Contents:
- *
- * main() - Run the named backend.
- */
-
-/*
- * Include necessary headers.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <cups/string.h>
-#include <unistd.h>
-
-
-/*
- * 'main()' - Run the named backend.
- *
- * Usage:
- *
- * betest device-uri job-id user title copies options [file]
- */
-
-int /* O - Exit status */
-main(int argc, /* I - Number of command-line arguments (7 or 8) */
- char *argv[]) /* I - Command-line arguments */
-{
- char backend[255]; /* Method in URI */
-
-
- if (argc < 7 || argc > 8)
- {
- fputs("Usage: betest device-uri job-id user title copies options [file]\n",
- stderr);
- return (1);
- }
-
- /*
- * Extract the method from the device-uri - that's the program we want to
- * execute.
- */
-
- if (sscanf(argv[1], "%254[^:]", backend) != 1)
- {
- fputs("betest: Bad device-uri - no colon!\n", stderr);
- return (1);
- }
-
- /*
- * Execute and return
- */
-
- execl(backend, argv[1], argv[2], argv[3], argv[4], argv[5], argv[6], argv[7],
- NULL);
-
- return (1);
-}
-
-
-/*
- * End of "$Id: betest.c 6649 2007-07-11 21:46:42Z mike $".
- */
*/
static void list_devices(void);
-static void side_cb(int print_fd, int device_fd, int use_bc);
+static void side_cb(int print_fd, int device_fd, int snmp_fd,
+ http_addr_t *addr, int use_bc);
/*
lseek(print_fd, 0, SEEK_SET);
}
- tbytes = backendRunLoop(print_fd, device_fd, use_bc, side_cb);
+ tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, side_cb);
if (print_fd != 0 && tbytes >= 0)
_cupsLangPrintf(stderr,
*/
static void
-side_cb(int print_fd, /* I - Print file */
- int device_fd, /* I - Device file */
- int use_bc) /* I - Using back-channel? */
+side_cb(int print_fd, /* I - Print file */
+ int device_fd, /* I - Device file */
+ int snmp_fd, /* I - SNMP socket (unused) */
+ http_addr_t *addr, /* I - Device address (unused) */
+ int use_bc) /* I - Using back-channel? */
{
cups_sc_command_t command; /* Request command */
cups_sc_status_t status; /* Request/response status */
int datalen; /* Request/response data size */
+ (void)snmp_fd;
+ (void)addr;
+
datalen = sizeof(data);
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
*/
#include "backend-private.h"
+#include <limits.h>
#ifdef __hpux
# include <sys/time.h>
#else
}
+/*
+ * 'backendNetworkSideCB()' - Handle common network side-channel commands.
+ */
+
+void
+backendNetworkSideCB(
+ int print_fd, /* I - Print file or -1 */
+ int device_fd, /* I - Device file or -1 */
+ int snmp_fd, /* I - SNMP socket */
+ http_addr_t *addr, /* I - Address of device */
+ int use_bc) /* I - Use back-channel data? */
+{
+ cups_sc_command_t command; /* Request command */
+ cups_sc_status_t status; /* Request/response status */
+ char data[2048]; /* Request/response data */
+ int datalen; /* Request/response data size */
+ const char *device_id; /* 1284DEVICEID env var */
+
+
+ datalen = sizeof(data);
+
+ if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
+ {
+ _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
+ return;
+ }
+
+ switch (command)
+ {
+ case CUPS_SC_CMD_DRAIN_OUTPUT :
+ /*
+ * Our sockets disable the Nagle algorithm and data is sent immediately.
+ */
+
+ if (backendDrainOutput(print_fd, device_fd))
+ status = CUPS_SC_STATUS_IO_ERROR;
+ else
+ status = CUPS_SC_STATUS_OK;
+
+ datalen = 0;
+ break;
+
+ case CUPS_SC_CMD_GET_BIDI :
+ data[0] = use_bc;
+ datalen = 1;
+ break;
+
+ case CUPS_SC_CMD_GET_DEVICE_ID :
+ if ((device_id = getenv("1284DEVICEID")) != NULL)
+ {
+ strlcpy(data, device_id, sizeof(data));
+ datalen = (int)strlen(data);
+ break;
+ }
+
+ default :
+ status = CUPS_SC_STATUS_NOT_IMPLEMENTED;
+ datalen = 0;
+ break;
+ }
+
+ cupsSideChannelWrite(command, status, data, datalen, 1.0);
+}
+
+
/*
* 'backendRunLoop()' - Read and write print and back-channel data.
*/
ssize_t /* O - Total bytes on success, -1 on error */
backendRunLoop(
- int print_fd, /* I - Print file descriptor */
- int device_fd, /* I - Device file descriptor */
- int use_bc, /* I - Use back-channel? */
- void (*side_cb)(int, int, int)) /* I - Side-channel callback */
+ int print_fd, /* I - Print file descriptor */
+ int device_fd, /* I - Device file descriptor */
+ int snmp_fd, /* I - SNMP socket or -1 if none */
+ http_addr_t *addr, /* I - Address of device */
+ int use_bc, /* I - Use back-channel? */
+ void (*side_cb)(int, int, int, http_addr_t *, int))
+ /* I - Side-channel callback */
{
int nfds; /* Maximum file descriptor value + 1 */
fd_set input, /* Input set for reading */
char print_buffer[8192], /* Print data buffer */
*print_ptr, /* Pointer into print data buffer */
bc_buffer[1024]; /* Back-channel data buffer */
+ struct timeval timeout; /* Timeout for select() */
+ time_t curtime, /* Current time */
+ snmp_update = 0;
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
#endif /* HAVE_SIGACTION && !HAVE_SIGSET */
fprintf(stderr,
- "DEBUG: backendRunLoop(print_fd=%d, device_fd=%d, use_bc=%d, "
- "side_cb=%p)\n",
- print_fd, device_fd, use_bc, side_cb);
+ "DEBUG: backendRunLoop(print_fd=%d, device_fd=%d, snmp_fd=%d, "
+ "addr=%p, use_bc=%d, side_cb=%p)\n",
+ print_fd, device_fd, snmp_fd, addr, use_bc, side_cb);
/*
* If we are printing data from a print driver on stdin, ignore SIGTERM
if (use_bc || side_cb)
{
- if (select(nfds, &input, &output, NULL, NULL) < 0)
+ timeout.tv_sec = 5;
+ timeout.tv_usec = 0;
+
+ if (select(nfds, &input, &output, NULL, &timeout) < 0)
{
/*
* Pause printing to clear any pending errors...
*/
if (side_cb && FD_ISSET(CUPS_SC_FD, &input))
- (*side_cb)(print_fd, device_fd, use_bc);
+ (*side_cb)(print_fd, device_fd, snmp_fd, addr, use_bc);
/*
* Check if we have back-channel data ready...
total_bytes += bytes;
}
}
+
+ /*
+ * Do SNMP updates periodically...
+ */
+
+ if (snmp_fd >= 0 && time(&curtime) >= snmp_update)
+ {
+ if (backendSNMPSupplies(snmp_fd, addr, NULL, NULL))
+ snmp_update = INT_MAX;
+ else
+ snmp_update = curtime + 5;
+ }
}
/*
--- /dev/null
+/*
+ * "$Id$"
+ *
+ * SNMP supplies functions for the Common UNIX Printing System (CUPS).
+ *
+ * Copyright 2008 by Apple Inc.
+ *
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law. Distribution and use rights are outlined in the file "LICENSE.txt"
+ * "LICENSE" which should have been included with this file. If this
+ * file is missing or damaged, see the license at "http://www.cups.org/".
+ *
+ * This file is subject to the Apple OS-Developed Software exception.
+ *
+ * Contents:
+ *
+ * backendSNMPSupplies() - Get the current supplies for a device.
+ * backend_init_supplies() - Initialize the supplies list.
+ * backend_walk_cb() - Interpret the supply value responses...
+ */
+
+/*
+ * Include necessary headers.
+ */
+
+#include "backend-private.h"
+#include <cups/array.h>
+
+
+/*
+ * Local constants...
+ */
+
+#define CUPS_MAX_SUPPLIES 32 /* Maximum number of supplies for a printer */
+
+
+/*
+ * Local structures...
+ */
+
+typedef struct
+{
+ char name[CUPS_SNMP_MAX_STRING], /* Name of supply */
+ color[8]; /* Color: "#RRGGBB" or "none" */
+ int colorant, /* Colorant index */
+ type, /* Supply type */
+ max_capacity, /* Maximum capacity */
+ level; /* Current level value */
+} backend_supplies_t;
+
+
+/*
+ * Local globals...
+ */
+
+static http_addr_t current_addr; /* Current address */
+static int num_supplies = 0;
+ /* Number of supplies found */
+static backend_supplies_t supplies[CUPS_MAX_SUPPLIES];
+ /* Supply information */
+
+static const int hrDeviceDescr[] =
+ { CUPS_OID_hrDeviceDescr, 1, -1 };
+ /* Device description OID */
+static const int hrPrinterStatus[] =
+ { CUPS_OID_hrPrinterStatus, 1, -1 };
+ /* Current state OID */
+static const int hrPrinterDetectedErrorState[] =
+ { CUPS_OID_hrPrinterDetectedErrorState, 1, -1 };
+ /* Current printer state bits OID */
+static const int prtMarkerColorantValue[] =
+ { CUPS_OID_prtMarkerColorantValue, -1 },
+ /* Colorant OID */
+ prtMarkerColorantValueOffset =
+ (sizeof(prtMarkerColorantValue) /
+ sizeof(prtMarkerColorantValue[0]));
+ /* Offset to colorant index */
+static const int prtMarkerLifeCount[] =
+ { CUPS_OID_prtMarkerLifeCount, 1, 1, -1 };
+ /* Page counter OID */
+static const int prtMarkerSuppliesEntry[] =
+ { CUPS_OID_prtMarkerSuppliesEntry, -1 };
+ /* Supplies OID */
+static const int prtMarkerSuppliesColorantIndex[] =
+ { CUPS_OID_prtMarkerSuppliesColorantIndex, -1 },
+ /* Colorant index OID */
+ prtMarkerSuppliesColorantIndexOffset =
+ (sizeof(prtMarkerSuppliesColorantIndex) /
+ sizeof(prtMarkerSuppliesColorantIndex[0]));
+ /* Offset to supply index */
+static const int prtMarkerSuppliesDescription[] =
+ { CUPS_OID_prtMarkerSuppliesDescription, -1 },
+ /* Description OID */
+ prtMarkerSuppliesDescriptionOffset =
+ (sizeof(prtMarkerSuppliesDescription) /
+ sizeof(prtMarkerSuppliesDescription[0]));
+ /* Offset to supply index */
+static const int prtMarkerSuppliesLevel[] =
+ { CUPS_OID_prtMarkerSuppliesLevel, -1 },
+ /* Level OID */
+ prtMarkerSuppliesLevelOffset =
+ (sizeof(prtMarkerSuppliesLevel) /
+ sizeof(prtMarkerSuppliesLevel[0]));
+ /* Offset to supply index */
+static const int prtMarkerSuppliesMaxCapacity[] =
+ { CUPS_OID_prtMarkerSuppliesMaxCapacity, -1 },
+ /* Max capacity OID */
+ prtMarkerSuppliesMaxCapacityOffset =
+ (sizeof(prtMarkerSuppliesMaxCapacity) /
+ sizeof(prtMarkerSuppliesMaxCapacity[0]));
+ /* Offset to supply index */
+static const int prtMarkerSuppliesType[] =
+ { CUPS_OID_prtMarkerSuppliesType, -1 },
+ /* Type OID */
+ prtMarkerSuppliesTypeOffset =
+ (sizeof(prtMarkerSuppliesType) /
+ sizeof(prtMarkerSuppliesType[0]));
+ /* Offset to supply index */
+
+
+/*
+ * Local functions...
+ */
+
+static void backend_init_supplies(int snmp_fd, http_addr_t *addr);
+static void backend_walk_cb(cups_snmp_t *packet, void *data);
+
+
+/*
+ * 'backendSNMPSupplies()' - Get the current supplies for a device.
+ */
+
+int /* O - 0 on success, -1 on error */
+backendSNMPSupplies(
+ int snmp_fd, /* I - SNMP socket */
+ http_addr_t *addr, /* I - Printer address */
+ int *page_count, /* O - Page count */
+ int *printer_state) /* O - Printer state */
+{
+ if (!httpAddrEqual(addr, ¤t_addr))
+ backend_init_supplies(snmp_fd, addr);
+ else if (num_supplies > 0)
+ cupsSNMPWalk(snmp_fd, ¤t_addr, CUPS_SNMP_VERSION_1,
+ cupsSNMPDefaultCommunity(), prtMarkerSuppliesLevel, 500,
+ backend_walk_cb, NULL);
+
+ if (page_count)
+ *page_count = -1;
+
+ if (printer_state)
+ *printer_state = -1;
+
+ if (num_supplies > 0)
+ {
+ int i; /* Looping var */
+ char value[CUPS_MAX_SUPPLIES * 4],
+ /* marker-levels value string */
+ *ptr; /* Pointer into value string */
+ cups_snmp_t packet; /* SNMP response packet */
+
+
+ /*
+ * Generate the marker-levels value string...
+ */
+
+ for (i = 0, ptr = value; i < num_supplies; i ++, ptr += strlen(ptr))
+ {
+ if (i)
+ *ptr++ = ',';
+
+ sprintf(ptr, "%d", 100 * supplies[i].level / supplies[i].max_capacity);
+ }
+
+ fprintf(stderr, "ATTR: marker-levels=%s\n", value);
+
+ /*
+ * Get the current printer status bits...
+ */
+
+ if (!cupsSNMPWrite(snmp_fd, addr, CUPS_SNMP_VERSION_1,
+ cupsSNMPDefaultCommunity(), CUPS_ASN1_GET_REQUEST, 1,
+ hrPrinterDetectedErrorState))
+ return (-1);
+
+ if (!cupsSNMPRead(snmp_fd, &packet, 500) ||
+ packet.object_type != CUPS_ASN1_OCTET_STRING)
+ return (-1);
+
+ i = ((packet.object_value.string[0] & 255) << 8) |
+ (packet.object_value.string[1] & 255);
+
+ if (i & CUPS_TC_lowPaper)
+ fputs("STATE: +media-low-warning\n", stderr);
+ else
+ fputs("STATE: -media-low-warning\n", stderr);
+
+ if (i & (CUPS_TC_noPaper | CUPS_TC_inputTrayEmpty))
+ fputs("STATE: +media-empty-error\n", stderr);
+ else
+ fputs("STATE: -media-empty-error\n", stderr);
+
+ if (i & CUPS_TC_lowToner)
+ fputs("STATE: +toner-low-warning\n", stderr);
+ else
+ fputs("STATE: -toner-low-warning\n", stderr);
+
+ if (i & CUPS_TC_noToner)
+ fputs("STATE: +toner-empty-error\n", stderr);
+ else
+ fputs("STATE: -toner-empty-error\n", stderr);
+
+ if (i & CUPS_TC_doorOpen)
+ fputs("STATE: +door-open-report\n", stderr);
+ else
+ fputs("STATE: -door-open-report\n", stderr);
+
+ if (i & CUPS_TC_jammed)
+ fputs("STATE: +media-jam-error\n", stderr);
+ else
+ fputs("STATE: -media-jam-error\n", stderr);
+
+ if (i & CUPS_TC_offline)
+ fputs("STATE: +offline-report\n", stderr);
+ else
+ fputs("STATE: -offline-report\n", stderr);
+
+ if (i & (CUPS_TC_serviceRequested | CUPS_TC_overduePreventMaint))
+ fputs("STATE: +service-needed-error\n", stderr);
+ else
+ fputs("STATE: -service-needed-error\n", stderr);
+
+ if (i & CUPS_TC_inputTrayMissing)
+ fputs("STATE: +input-tray-missing-error\n", stderr);
+ else
+ fputs("STATE: -input-tray-missing-error\n", stderr);
+
+ if (i & CUPS_TC_outputTrayMissing)
+ fputs("STATE: +output-tray-missing-error\n", stderr);
+ else
+ fputs("STATE: -output-tray-missing-error\n", stderr);
+
+ if (i & CUPS_TC_markerSupplyMissing)
+ fputs("STATE: +marker-supply-missing-error\n", stderr);
+ else
+ fputs("STATE: -marker-supply-missing-error\n", stderr);
+
+ if (i & CUPS_TC_outputNearFull)
+ fputs("STATE: +output-area-almost-full-warning\n", stderr);
+ else
+ fputs("STATE: -output-area-almost-full-warning\n", stderr);
+
+ if (i & CUPS_TC_outputFull)
+ fputs("STATE: +output-area-full-error\n", stderr);
+ else
+ fputs("STATE: -output-area-full-error\n", stderr);
+
+ /*
+ * Get the current printer state...
+ */
+
+ if (printer_state)
+ {
+ if (!cupsSNMPWrite(snmp_fd, addr, CUPS_SNMP_VERSION_1,
+ cupsSNMPDefaultCommunity(), CUPS_ASN1_GET_REQUEST, 1,
+ hrPrinterStatus))
+ return (-1);
+
+ if (!cupsSNMPRead(snmp_fd, &packet, 500) ||
+ packet.object_type != CUPS_ASN1_INTEGER)
+ return (-1);
+
+ *printer_state = packet.object_value.integer;
+ }
+
+ /*
+ * Get the current page count...
+ */
+
+ if (page_count)
+ {
+ if (!cupsSNMPWrite(snmp_fd, addr, CUPS_SNMP_VERSION_1,
+ cupsSNMPDefaultCommunity(), CUPS_ASN1_GET_REQUEST, 1,
+ prtMarkerLifeCount))
+ return (-1);
+
+ if (!cupsSNMPRead(snmp_fd, &packet, 500) ||
+ packet.object_type != CUPS_ASN1_COUNTER)
+ return (-1);
+
+ *page_count = packet.object_value.counter;
+ }
+
+ return (0);
+ }
+ else
+ return (-1);
+}
+
+
+/*
+ * 'backend_init_supplies()' - Initialize the supplies list.
+ */
+
+static void
+backend_init_supplies(
+ int snmp_fd, /* I - SNMP socket */
+ http_addr_t *addr) /* I - Printer address */
+{
+ int i, /* Looping var */
+ type; /* Current marker type */
+ cups_file_t *cachefile; /* Cache file */
+ const char *cachedir; /* CUPS_CACHEDIR value */
+ char addrstr[1024], /* Address string */
+ cachefilename[1024], /* Cache filename */
+ description[CUPS_SNMP_MAX_STRING],
+ /* Device description string */
+ value[CUPS_MAX_SUPPLIES * (CUPS_SNMP_MAX_STRING * 2 + 3)],
+ /* Value string */
+ *ptr, /* Pointer into value string */
+ *name_ptr; /* Pointer into name string */
+ cups_snmp_t packet; /* SNMP response packet */
+ static const char * const types[] = /* Supply types */
+ {
+ "other",
+ "unknown",
+ "toner",
+ "wasteToner",
+ "ink",
+ "inkCartridge",
+ "inkRibbon",
+ "wasteInk",
+ "opc",
+ "developer",
+ "fuserOil",
+ "solidWax",
+ "ribbonWax",
+ "wasteWax",
+ "fuser",
+ "coronaWire",
+ "fuserOilWick",
+ "cleanerUnit",
+ "fuserCleaningPad",
+ "transferUnit",
+ "tonerCartridge",
+ "fuserOiler",
+ "water",
+ "wasteWater",
+ "glueWaterAdditive",
+ "wastePaper",
+ "bindingSupply",
+ "bandingSupply",
+ "stitchingWire",
+ "shrinkWrap",
+ "paperWrap",
+ "staples",
+ "inserts",
+ "covers"
+ };
+
+
+ /*
+ * Reset state information...
+ */
+
+ current_addr = *addr;
+ num_supplies = -1;
+
+ memset(supplies, 0, sizeof(supplies));
+
+ /*
+ * Get the device description...
+ */
+
+ if (!cupsSNMPWrite(snmp_fd, addr, CUPS_SNMP_VERSION_1,
+ cupsSNMPDefaultCommunity(), CUPS_ASN1_GET_REQUEST, 1,
+ hrDeviceDescr))
+ return;
+
+ if (!cupsSNMPRead(snmp_fd, &packet, 500) ||
+ packet.object_type != CUPS_ASN1_OCTET_STRING)
+ {
+ strlcpy(description, "Unknown", sizeof(description));
+ num_supplies = 0;
+ }
+ else
+ strlcpy(description, packet.object_value.string, sizeof(description));
+
+ /*
+ * See if we have already queried this device...
+ */
+
+ httpAddrString(addr, addrstr, sizeof(addrstr));
+
+ if ((cachedir = getenv("CUPS_CACHEDIR")) == NULL)
+ cachedir = CUPS_CACHEDIR;
+
+ snprintf(cachefilename, sizeof(cachefilename), "%s/%s.snmp", cachedir,
+ addrstr);
+
+ if ((cachefile = cupsFileOpen(cachefilename, "r")) != NULL)
+ {
+ /*
+ * Yes, read the cache file:
+ *
+ * 1 num_supplies
+ * device description
+ * supply structures...
+ */
+
+ if (cupsFileGets(cachefile, value, sizeof(value)))
+ {
+ if (sscanf(value, "1 %d", &num_supplies) == 1 &&
+ num_supplies <= CUPS_MAX_SUPPLIES &&
+ cupsFileGets(cachefile, value, sizeof(value)))
+ {
+ if ((ptr = value + strlen(value) - 1) >= value && *ptr == '\n')
+ *ptr = '\n';
+
+ if (!strcmp(description, value))
+ cupsFileRead(cachefile, (char *)supplies,
+ num_supplies * sizeof(backend_supplies_t));
+ else
+ num_supplies = -1;
+ }
+ else
+ num_supplies = -1;
+ }
+
+ cupsFileClose(cachefile);
+ }
+
+ /*
+ * If the cache information isn't correct, scan for supplies...
+ */
+
+ if (num_supplies < 0)
+ {
+ /*
+ * Walk the printer configuration information...
+ */
+
+ cupsSNMPWalk(snmp_fd, ¤t_addr, CUPS_SNMP_VERSION_1,
+ cupsSNMPDefaultCommunity(), prtMarkerSuppliesEntry, 500,
+ backend_walk_cb, NULL);
+ }
+
+ /*
+ * Save the cached information...
+ */
+
+ if (num_supplies < 0)
+ num_supplies = 0;
+
+ if ((cachefile = cupsFileOpen(cachefilename, "w")) != NULL)
+ {
+ cupsFilePrintf(cachefile, "1 %d\n", num_supplies);
+ cupsFilePrintf(cachefile, "%s\n", description);
+
+ if (num_supplies > 0)
+ cupsFileWrite(cachefile, (char *)supplies,
+ num_supplies * sizeof(backend_supplies_t));
+
+ cupsFileClose(cachefile);
+ }
+
+ if (num_supplies <= 0)
+ return;
+
+ /*
+ * Get the colors...
+ */
+
+ for (i = 0; i < num_supplies; i ++)
+ strcpy(supplies[i].color, "none");
+
+ cupsSNMPWalk(snmp_fd, ¤t_addr, CUPS_SNMP_VERSION_1,
+ cupsSNMPDefaultCommunity(), prtMarkerColorantValue, 500,
+ backend_walk_cb, NULL);
+
+ /*
+ * Output the marker-colors attribute...
+ */
+
+ for (i = 0, ptr = value; i < num_supplies; i ++, ptr += strlen(ptr))
+ {
+ if (i)
+ *ptr++ = ',';
+
+ strcpy(ptr, supplies[i].color);
+ }
+
+ fprintf(stderr, "ATTR: marker-colors=%s\n", value);
+
+ /*
+ * Output the marker-names attribute...
+ */
+
+ for (i = 0, ptr = value; i < num_supplies; i ++)
+ {
+ if (i)
+ *ptr++ = ',';
+
+ *ptr++ = '\"';
+ for (name_ptr = supplies[i].name; *name_ptr;)
+ {
+ if (*name_ptr == '\\' || *name_ptr == '\"')
+ *ptr++ = '\\';
+
+ *ptr++ = *name_ptr++;
+ }
+ *ptr++ = '\"';
+ }
+
+ *ptr = '\0';
+
+ fprintf(stderr, "ATTR: marker-names=%s\n", value);
+
+ /*
+ * Output the marker-types attribute...
+ */
+
+ for (i = 0, ptr = value; i < num_supplies; i ++, ptr += strlen(ptr))
+ {
+ if (i)
+ *ptr++ = ',';
+
+ type = supplies[i].type;
+
+ if (type < CUPS_TC_other || type > CUPS_TC_covers)
+ strcpy(ptr, "unknown");
+ else
+ strcpy(ptr, types[type - CUPS_TC_other]);
+ }
+
+ fprintf(stderr, "ATTR: marker-types=%s\n", value);
+}
+
+
+/*
+ * 'backend_walk_cb()' - Interpret the supply value responses...
+ */
+
+static void
+backend_walk_cb(cups_snmp_t *packet, /* I - SNMP packet */
+ void *data) /* I - User data (unused) */
+{
+ int i, j, k; /* Looping vars */
+ static const char * const colors[8][2] =
+ { /* Standard color names */
+ { "black", "#000000" },
+ { "blue", "#0000FF" },
+ { "cyan", "#00FFFF" },
+ { "green", "#00FF00" },
+ { "magenta", "#FF00FF" },
+ { "red", "#FF0000" },
+ { "white", "#FFFFFF" },
+ { "yellow", "#FFFF00" }
+ };
+
+
+ (void)data;
+
+ if (cupsSNMPIsOIDPrefixed(packet, prtMarkerColorantValue) &&
+ packet->object_type == CUPS_ASN1_OCTET_STRING)
+ {
+ /*
+ * Get colorant...
+ */
+
+ i = packet->object_name[prtMarkerColorantValueOffset];
+
+ fprintf(stderr, "DEBUG2: prtMarkerColorantValue.1.%d = \"%s\"\n", i,
+ packet->object_value.string);
+
+ for (j = 0; j < num_supplies; j ++)
+ if (supplies[j].colorant == i)
+ {
+ for (k = 0; k < (int)(sizeof(colors) / sizeof(colors[0])); k ++)
+ if (!strcmp(colors[k][0], packet->object_value.string))
+ {
+ strcpy(supplies[j].color, colors[k][1]);
+ break;
+ }
+ }
+ }
+ else if (cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesColorantIndex))
+ {
+ /*
+ * Get colorant index...
+ */
+
+ i = packet->object_name[prtMarkerSuppliesColorantIndexOffset];
+ if (i < 1 || i > CUPS_MAX_SUPPLIES ||
+ packet->object_type != CUPS_ASN1_INTEGER)
+ return;
+
+ fprintf(stderr, "DEBUG2: prtMarkerSuppliesColorantIndex.1.%d = %d\n", i,
+ packet->object_value.integer);
+
+ if (i > num_supplies)
+ num_supplies = i;
+
+ supplies[i - 1].colorant = packet->object_value.integer;
+ }
+ else if (cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesDescription))
+ {
+ /*
+ * Get supply name/description...
+ */
+
+ i = packet->object_name[prtMarkerSuppliesDescriptionOffset];
+ if (i < 1 || i > CUPS_MAX_SUPPLIES ||
+ packet->object_type != CUPS_ASN1_OCTET_STRING)
+ return;
+
+ fprintf(stderr, "DEBUG2: prtMarkerSuppliesDescription.1.%d = \"%s\"\n", i,
+ packet->object_value.string);
+
+ if (i > num_supplies)
+ num_supplies = i;
+
+ strlcpy(supplies[i - 1].name, packet->object_value.string,
+ sizeof(supplies[0].name));
+ }
+ else if (cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesLevel))
+ {
+ /*
+ * Get level...
+ */
+
+ i = packet->object_name[prtMarkerSuppliesLevelOffset];
+ if (i < 1 || i > CUPS_MAX_SUPPLIES ||
+ packet->object_type != CUPS_ASN1_INTEGER)
+ return;
+
+ fprintf(stderr, "DEBUG2: prtMarkerSuppliesLevel.1.%d = %d\n", i,
+ packet->object_value.integer);
+
+ if (i > num_supplies)
+ num_supplies = i;
+
+ supplies[i - 1].level = packet->object_value.integer;
+ }
+ else if (cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesMaxCapacity))
+ {
+ /*
+ * Get max capacity...
+ */
+
+ i = packet->object_name[prtMarkerSuppliesMaxCapacityOffset];
+ if (i < 1 || i > CUPS_MAX_SUPPLIES ||
+ packet->object_type != CUPS_ASN1_INTEGER)
+ return;
+
+ fprintf(stderr, "DEBUG2: prtMarkerSuppliesMaxCapacity.1.%d = %d\n", i,
+ packet->object_value.integer);
+
+ if (i > num_supplies)
+ num_supplies = i;
+
+ supplies[i - 1].max_capacity = packet->object_value.integer;
+ }
+ else if (cupsSNMPIsOIDPrefixed(packet, prtMarkerSuppliesType))
+ {
+ /*
+ * Get marker type...
+ */
+
+ i = packet->object_name[prtMarkerSuppliesTypeOffset];
+ if (i < 1 || i > CUPS_MAX_SUPPLIES ||
+ packet->object_type != CUPS_ASN1_INTEGER)
+ return;
+
+ fprintf(stderr, "DEBUG2: prtMarkerSuppliesType.1.%d = %d\n", i,
+ packet->object_value.integer);
+
+ if (i > num_supplies)
+ num_supplies = i;
+
+ supplies[i - 1].type = packet->object_value.integer;
+ }
+}
+
+
+/*
+ * End of "$Id$".
+ */
* Read the response data...
*/
- if (!cupsSNMPRead(fd, &packet, -1))
+ if (!cupsSNMPRead(fd, &packet, -1.0))
{
fprintf(stderr, "ERROR: Unable to read data from socket: %s\n",
strerror(errno));
* Contents:
*
* main() - Send a file to the printer or server.
- * side_cb() - Handle side-channel requests...
* wait_bc() - Wait for back-channel data...
*/
* Local functions...
*/
-static void side_cb(int print_fd, int device_fd, int use_bc);
static int wait_bc(int device_fd, int secs);
http_addrlist_t *addrlist, /* Address list */
*addr; /* Connected address */
char addrname[256]; /* Address name */
+ int snmp_fd, /* SNMP socket */
+ start_count, /* Page count via SNMP at start */
+ page_count; /* Page count via SNMP */
ssize_t tbytes; /* Total number of bytes written */
#if defined(HAVE_SIGACTION) && !defined(HAVE_SIGSET)
struct sigaction action; /* Actions for POSIX signals */
httpAddrString(&addr->addr, addrname, sizeof(addrname)),
ntohs(addr->addr.ipv4.sin_port));
+ /*
+ * See if the printer supports SNMP...
+ */
+
+ if ((snmp_fd = cupsSNMPOpen(addr->addr.addr.sa_family)) >= 0)
+ if (backendSNMPSupplies(snmp_fd, &(addr->addr), &start_count, NULL))
+ {
+ /*
+ * No, close it...
+ */
+
+ cupsSNMPClose(snmp_fd);
+ snmp_fd = -1;
+ }
+
/*
* Print everything...
*/
lseek(print_fd, 0, SEEK_SET);
}
- tbytes = backendRunLoop(print_fd, device_fd, 1, side_cb);
+ tbytes = backendRunLoop(print_fd, device_fd, snmp_fd, &(addr->addr), 1,
+ backendNetworkSideCB);
if (print_fd != 0 && tbytes >= 0)
_cupsLangPrintf(stderr,
while (wait_bc(device_fd, 90) > 0);
}
+ /*
+ * Collect the final page count as needed...
+ */
+
+ if (snmp_fd >= 0 &&
+ !backendSNMPSupplies(snmp_fd, &(addr->addr), &page_count, NULL) &&
+ page_count > start_count)
+ fprintf(stderr, "PAGE: total %d\n", page_count - start_count);
+
/*
* Close the socket connection...
*/
}
-/*
- * 'side_cb()' - Handle side-channel requests...
- */
-
-static void
-side_cb(int print_fd, /* I - Print file */
- int device_fd, /* I - Device file */
- int use_bc) /* I - Using back-channel? */
-{
- cups_sc_command_t command; /* Request command */
- cups_sc_status_t status; /* Request/response status */
- char data[2048]; /* Request/response data */
- int datalen; /* Request/response data size */
- const char *device_id; /* 1284DEVICEID env var */
-
-
- datalen = sizeof(data);
-
- if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
- {
- _cupsLangPuts(stderr, _("WARNING: Failed to read side-channel request!\n"));
- return;
- }
-
- switch (command)
- {
- case CUPS_SC_CMD_DRAIN_OUTPUT :
- /*
- * Our sockets disable the Nagle algorithm and data is sent immediately.
- */
-
- if (backendDrainOutput(print_fd, device_fd))
- status = CUPS_SC_STATUS_IO_ERROR;
- else
- status = CUPS_SC_STATUS_OK;
-
- datalen = 0;
- break;
-
- case CUPS_SC_CMD_GET_BIDI :
- data[0] = use_bc;
- datalen = 1;
- break;
-
- case CUPS_SC_CMD_GET_DEVICE_ID :
- if ((device_id = getenv("1284DEVICEID")) != NULL)
- {
- strlcpy(data, device_id, sizeof(data));
- datalen = (int)strlen(data);
- break;
- }
-
- default :
- status = CUPS_SC_STATUS_NOT_IMPLEMENTED;
- datalen = 0;
- break;
- }
-
- cupsSideChannelWrite(command, status, data, datalen, 1.0);
-}
-
-
/*
* 'wait_bc()' - Wait for back-channel data...
*/
--- /dev/null
+/*
+ * "$Id$"
+ *
+ * Backend test program for the Common UNIX Printing System (CUPS).
+ *
+ * Copyright 2007-2008 by Apple Inc.
+ * Copyright 1997-2005 by Easy Software Products, all rights reserved.
+ *
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law. Distribution and use rights are outlined in the file "LICENSE.txt"
+ * "LICENSE" which should have been included with this file. If this
+ * file is missing or damaged, see the license at "http://www.cups.org/".
+ *
+ * This file is subject to the Apple OS-Developed Software exception.
+ *
+ * Contents:
+ *
+ * main() - Run the named backend.
+ * usage() - Show usage information.
+ */
+
+/*
+ * Include necessary headers.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <cups/string.h>
+#include <cups/cups.h>
+#include <cups/sidechannel.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <sys/wait.h>
+
+
+/*
+ * Local functions...
+ */
+
+static void usage(void);
+
+
+/*
+ * 'main()' - Run the named backend.
+ *
+ * Usage:
+ *
+ * betest [-s] [-t] device-uri job-id user title copies options [file]
+ */
+
+int /* O - Exit status */
+main(int argc, /* I - Number of command-line args */
+ char *argv[]) /* I - Command-line arguments */
+{
+ int first_arg, /* First argument for backend */
+ do_side_tests = 0, /* Test side-channel ops? */
+ do_trickle = 0; /* Trickle data to backend */
+ char scheme[255], /* Scheme in URI == backend */
+ backend[1024]; /* Backend path */
+ const char *serverbin; /* CUPS_SERVERBIN environment variable */
+ int back_fds[2], /* Back-channel pipe */
+ side_fds[2], /* Side-channel socket */
+ data_fds[2], /* Data pipe */
+ pid, /* Process ID */
+ status; /* Exit status */
+
+
+ /*
+ * See if we have side-channel tests to do...
+ */
+
+ for (first_arg = 1;
+ argv[first_arg] && argv[first_arg][0] == '-';
+ first_arg ++)
+ if (!strcmp(argv[first_arg], "-s"))
+ do_side_tests = 1;
+ else if (!strcmp(argv[first_arg], "-t"))
+ do_trickle = 1;
+ else
+ usage();
+
+ argc -= first_arg;
+ if (argc < 6 || argc > 7 || (argc == 7 && do_trickle))
+ usage();
+
+ /*
+ * Extract the scheme from the device-uri - that's the program we want to
+ * execute.
+ */
+
+ if (sscanf(argv[first_arg], "%254[^:]", scheme) != 1)
+ {
+ fputs("testbackend: Bad device-uri - no colon!\n", stderr);
+ return (1);
+ }
+
+ if (!access(scheme, X_OK))
+ strlcpy(backend, scheme, sizeof(backend));
+ else
+ {
+ if ((serverbin = getenv("CUPS_SERVERBIN")) == NULL)
+ serverbin = CUPS_SERVERBIN;
+
+ snprintf(backend, sizeof(backend), "%s/backend/%s", serverbin, scheme);
+ if (access(backend, X_OK))
+ {
+ fprintf(stderr, "testbackend: Unknown device scheme \"%s\"!\n", scheme);
+ return (1);
+ }
+ }
+
+ /*
+ * Create the back-channel pipe and side-channel socket...
+ */
+
+ open("/dev/null", O_WRONLY); /* Make sure fd 3 and 4 are used */
+ open("/dev/null", O_WRONLY);
+
+ pipe(back_fds);
+ fcntl(back_fds[0], F_SETFL, fcntl(back_fds[0], F_GETFL) | O_NONBLOCK);
+ fcntl(back_fds[1], F_SETFL, fcntl(back_fds[1], F_GETFL) | O_NONBLOCK);
+
+ socketpair(AF_LOCAL, SOCK_STREAM, 0, side_fds);
+ fcntl(side_fds[0], F_SETFL, fcntl(side_fds[0], F_GETFL) | O_NONBLOCK);
+ fcntl(side_fds[1], F_SETFL, fcntl(side_fds[1], F_GETFL) | O_NONBLOCK);
+
+ /*
+ * Execute the trickle process as needed...
+ */
+
+ if (do_trickle)
+ {
+ pipe(data_fds);
+
+ if ((pid = fork()) == 0)
+ {
+ /*
+ * Trickle child comes here...
+ */
+
+ int i; /* Looping var */
+
+ close(data_fds[0]);
+ for (i = 0; i < 10; i ++)
+ {
+ /*
+ * Write 10 spaces, 1 per second...
+ */
+
+ write(data_fds[1], " ", 1);
+ sleep(1);
+ }
+
+ exit(0);
+ }
+ else if (pid < 0)
+ {
+ perror("testbackend: Unable to fork");
+ return (1);
+ }
+ }
+ else
+ data_fds[0] = data_fds[1] = -1;
+
+ /*
+ * Execute the backend...
+ */
+
+ if ((pid = fork()) == 0)
+ {
+ /*
+ * Child comes here...
+ */
+
+ if (do_trickle)
+ {
+ close(0);
+ dup(data_fds[0]);
+ close(data_fds[0]);
+ close(data_fds[1]);
+ }
+
+ close(3);
+ dup(back_fds[1]);
+ close(back_fds[0]);
+ close(back_fds[1]);
+
+ close(4);
+ dup(side_fds[1]);
+ close(side_fds[0]);
+ close(side_fds[1]);
+
+ execv(backend, argv + first_arg);
+ fprintf(stderr, "textbackend: Unable to execute \"%s\": %s\n", backend,
+ strerror(errno));
+ return (errno);
+ }
+ else if (pid < 0)
+ {
+ perror("testbackend: Unable to fork");
+ return (1);
+ }
+
+ /*
+ * Parent comes here, setup back and side channel file descriptors...
+ */
+
+ if (do_trickle)
+ {
+ close(data_fds[0]);
+ close(data_fds[1]);
+ }
+
+ close(3);
+ dup(back_fds[0]);
+ close(back_fds[0]);
+ close(back_fds[1]);
+
+ close(4);
+ dup(side_fds[0]);
+ close(side_fds[0]);
+ close(side_fds[1]);
+
+ /*
+ * Do side-channel tests as needed, then wait for the backend...
+ */
+
+ if (do_side_tests)
+ {
+ int length; /* Length of buffer */
+ char buffer[2049]; /* Buffer for reponse */
+ cups_sc_status_t scstatus; /* Status of side-channel command */
+ static const char * const statuses[] =
+ {
+ "CUPS_SC_STATUS_NONE", /* No status */
+ "CUPS_SC_STATUS_OK", /* Operation succeeded */
+ "CUPS_SC_STATUS_IO_ERROR", /* An I/O error occurred */
+ "CUPS_SC_STATUS_TIMEOUT", /* The backend did not respond */
+ "CUPS_SC_STATUS_NO_RESPONSE", /* The device did not respond */
+ "CUPS_SC_STATUS_BAD_MESSAGE", /* The command/response message was invalid */
+ "CUPS_SC_STATUS_TOO_BIG", /* Response too big */
+ "CUPS_SC_STATUS_NOT_IMPLEMENTED" /* Command not implemented */
+ };
+
+
+ length = 0;
+ scstatus = cupsSideChannelDoRequest(CUPS_SC_CMD_DRAIN_OUTPUT, buffer,
+ &length, 5.0);
+ printf("CUPS_SC_CMD_DRAIN_OUTPUT returned %s\n", statuses[scstatus]);
+
+ length = 1;
+ scstatus = cupsSideChannelDoRequest(CUPS_SC_CMD_GET_BIDI, buffer,
+ &length, 5.0);
+ printf("CUPS_SC_CMD_GET_BIDI returned %s, %d\n", statuses[scstatus], buffer[0]);
+
+ length = sizeof(buffer) - 1;
+ scstatus = cupsSideChannelDoRequest(CUPS_SC_CMD_GET_DEVICE_ID, buffer,
+ &length, 5.0);
+ buffer[length] = '\0';
+ printf("CUPS_SC_CMD_GET_DEVICE_ID returned %s, \"%s\"\n",
+ statuses[scstatus], buffer);
+
+ length = 1;
+ scstatus = cupsSideChannelDoRequest(CUPS_SC_CMD_GET_STATE, buffer,
+ &length, 5.0);
+ printf("CUPS_SC_CMD_GET_STATE returned %s, %02X\n", statuses[scstatus],
+ buffer[0] & 255);
+
+ length = 0;
+ scstatus = cupsSideChannelDoRequest(CUPS_SC_CMD_SOFT_RESET, buffer,
+ &length, 5.0);
+ printf("CUPS_SC_CMD_SOFT_RESET returned %s\n", statuses[scstatus]);
+ }
+
+ while (wait(&status) != pid);
+
+ if (status)
+ {
+ if (WIFEXITED(status))
+ printf("%s exited with status %d!\n", backend, WEXITSTATUS(status));
+ else
+ printf("%s crashed with signal %d!\n", backend, WTERMSIG(status));
+ }
+
+ /*
+ * Exit accordingly...
+ */
+
+ return (status != 0);
+}
+
+
+/*
+ * 'usage()' - Show usage information.
+ */
+
+static void
+usage(void)
+{
+ fputs("Usage: betest [-s] [-t] device-uri job-id user title copies options "
+ "[file]\n", stderr);
+ exit(1);
+}
+
+
+/*
+ * End of "$Id$".
+ */
--- /dev/null
+/*
+ * "$Id$"
+ *
+ * SNMP supplies test program for the Common UNIX Printing System (CUPS).
+ *
+ * Copyright 2008 by Apple Inc.
+ *
+ * These coded instructions, statements, and computer programs are the
+ * property of Apple Inc. and are protected by Federal copyright
+ * law. Distribution and use rights are outlined in the file "LICENSE.txt"
+ * "LICENSE" which should have been included with this file. If this
+ * file is missing or damaged, see the license at "http://www.cups.org/".
+ *
+ * This file is subject to the Apple OS-Developed Software exception.
+ *
+ * Contents:
+ *
+ * main() - Show the supplies state of a printer.
+ */
+
+/*
+ * Include necessary headers.
+ */
+
+#include "backend-private.h"
+
+
+/*
+ * 'main()' - Show the supplies state of a printer.
+ */
+
+int /* O - Exit status */
+main(int argc, /* I - Number of command-line args */
+ char *argv[]) /* I - Command-line arguments */
+{
+ http_addrlist_t *host; /* Host addresses */
+ int snmp_fd; /* SNMP socket */
+ int page_count, /* Current page count */
+ printer_state; /* Current printer state */
+
+
+ if (argc != 2)
+ {
+ puts("Usage: testsupplies ip-or-hostname");
+ return (1);
+ }
+
+ if ((host = httpAddrGetList(argv[1], AF_UNSPEC, "9100")) == NULL)
+ {
+ perror(argv[1]);
+ return (1);
+ }
+
+ if ((snmp_fd = cupsSNMPOpen(host->addr.addr.sa_family)) < 0)
+ {
+ perror(argv[1]);
+ return (1);
+ }
+
+ for (;;)
+ {
+ fputs("backendSNMPSupplies: ", stdout);
+
+ if (backendSNMPSupplies(snmp_fd, &(host->addr), &page_count,
+ &printer_state))
+ {
+ puts("FAIL");
+ return (1);
+ }
+
+ printf("backendSNMPSupplies: %s (page_count=%d, printer_state=%d)\n",
+ page_count < 0 || printer_state < CUPS_TC_other ||
+ printer_state > CUPS_TC_warmup ? "FAIL" : "PASS",
+ page_count, printer_state);
+
+ sleep(5);
+ }
+}
+
+
+/*
+ * End of "$Id$".
+ */
CFStringGetCString(deviceIDString, idstr, sizeof(idstr),
kCFStringEncodingUTF8);
- if (make)
- CFStringGetCString(make, makestr, sizeof(makestr),
- kCFStringEncodingUTF8);
- else
+ if (!CFStringGetCString(make, makestr, sizeof(makestr),
+ kCFStringEncodingUTF8))
strcpy(makestr, "Unknown");
- if (model)
- CFStringGetCString(model, &modelstr[1], sizeof(modelstr)-1,
- kCFStringEncodingUTF8);
- else
+ if (!CFStringGetCString(model, &modelstr[1], sizeof(modelstr)-1,
+ kCFStringEncodingUTF8))
strcpy(modelstr + 1, "Printer");
optionsstr[0] = '\0';
httpAssembleURI(HTTP_URI_CODING_ALL, uristr, sizeof(uristr), "usb", NULL, makestr, 0, modelstr);
strncat(uristr, optionsstr, sizeof(uristr));
- /*
- * Fix common HP 1284 bug...
- */
-
- if (!strcasecmp(makestr, "Hewlett-Packard"))
- strcpy(makestr, "HP");
-
- if (!strncasecmp(modelstr + 1, "hp ", 3))
- _cups_strcpy(modelstr + 1, modelstr + 4);
-
printf("direct %s \"%s %s\" \"%s %s USB\" \"%s\"\n", uristr, makestr,
&modelstr[1], makestr, &modelstr[1], idstr);
CFStringRef modelKeys[] = { CFSTR("MDL:"), CFSTR("MODEL:"), NULL };
CFStringRef makeKeys[] = { CFSTR("MFG:"), CFSTR("MANUFACTURER:"), NULL };
CFStringRef serialKeys[] = { CFSTR("SN:"), CFSTR("SERN:"), NULL };
+ CFRange hpRange = { 0, 3 };
if (make != NULL)
- *make = copy_value_for_key(deviceIDString, makeKeys);
+ {
+ if ((*make = copy_value_for_key(deviceIDString, makeKeys)) == NULL)
+ *make = CFStringCreateWithCString(kCFAllocatorDefault, "Unknown",
+ kCFStringEncodingUTF8);
+ else if (!CFStringCompare(*make, CFSTR("Hewlett-Packard"),
+ kCFCompareCaseInsensitive))
+ {
+ /*
+ * Fix a common HP 1284 bug...
+ */
+
+ CFRelease(*make);
+ *make = CFStringCreateWithCString(kCFAllocatorDefault, "HP",
+ kCFStringEncodingUTF8);
+ }
+ }
+
if (model != NULL)
- *model = copy_value_for_key(deviceIDString, modelKeys);
+ {
+ if ((*model = copy_value_for_key(deviceIDString, modelKeys)) == NULL)
+ *model = CFStringCreateWithCString(kCFAllocatorDefault, "Printer",
+ kCFStringEncodingUTF8);
+ else if (!CFStringCompareWithOptions(*model, CFSTR("hp "), hpRange,
+ kCFCompareCaseInsensitive |
+ kCFCompareAnchored))
+ {
+ /*
+ * Fix a common HP 1284 bug...
+ */
+
+ CFRange subRange = { 3, CFStringGetLength(*model) - 3 };
+ CFStringRef sub = CFStringCreateWithSubstring(kCFAllocatorDefault,
+ *model, subRange);
+
+ CFRelease(*model);
+ *model = sub;
+ }
+ }
+
if (serial != NULL)
*serial = copy_value_for_key(deviceIDString, serialKeys);
}
*/
static int open_device(const char *uri, int *use_bc);
-static void side_cb(int print_fd, int device_fd, int use_bc);
+static void side_cb(int print_fd, int device_fd, int snmp_fd,
+ http_addr_t *addr, int use_bc);
/*
lseek(print_fd, 0, SEEK_SET);
}
- tbytes = backendRunLoop(print_fd, device_fd, use_bc, side_cb);
+ tbytes = backendRunLoop(print_fd, device_fd, -1, NULL, use_bc, side_cb);
if (print_fd != 0 && tbytes >= 0)
_cupsLangPrintf(stderr,
*/
static void
-side_cb(int print_fd, /* I - Print file */
- int device_fd, /* I - Device file */
- int use_bc) /* I - Using back-channel? */
+side_cb(int print_fd, /* I - Print file */
+ int device_fd, /* I - Device file */
+ int snmp_fd, /* I - SNMP socket (unused) */
+ http_addr_t *addr, /* I - Device address (unused) */
+ int use_bc) /* I - Using back-channel? */
{
cups_sc_command_t command; /* Request command */
cups_sc_status_t status; /* Request/response status */
int datalen; /* Request/response data size */
+ (void)snmp_fd;
+ (void)addr;
+
datalen = sizeof(data);
if (cupsSideChannelRead(&command, &status, data, &datalen, 1.0))
CUPSDLIBS="$CUPSDLIBS `$PKGCONFIG --libs dbus-1`"
AC_CHECK_LIB(dbus-1,
dbus_message_iter_init_append,
- AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND))
+ AC_DEFINE(HAVE_DBUS_MESSAGE_ITER_INIT_APPEND),,
+ `$PKGCONFIG --libs dbus-1`)
else
AC_MSG_RESULT(no)
fi
FONTS=""
LEGACY_BACKENDS=""
BACKLIBS="$BACKLIBS -framework IOKit"
- CUPSDLIBS="$CUPSDLIBS -sectorder __TEXT __text cupsd.order -e start -framework IOKit -framework SystemConfiguration"
+ CUPSDLIBS="$CUPSDLIBS -sectorder __TEXT __text cupsd.order -e start -framework IOKit -framework SystemConfiguration -framework ApplicationServices"
LIBS="-framework SystemConfiguration -framework CoreFoundation $LIBS"
dnl Check for framework headers...
# CUPS since we already use buffer-limited calls, but
# this will catch any additions that are broken.
CFLAGS="$CFLAGS -D_FORTIFY_SOURCE=2"
+
+ if test x$enable_pie = xyes; then
+ # GCC 4 on Mac OS X needs -Wl,-pie as well
+ LDFLAGS="$LDFLAGS -Wl,-pie"
+ fi
;;
HP-UX*)
AC_DEFINE_UNQUOTED(CUPS_DEFAULT_PRINTCAP, "$CUPS_DEFAULT_PRINTCAP")
+dnl Default LPD config file...
+AC_ARG_WITH(lpdconfigfile, [ --with-lpdconfigfile set default LPDConfigFile URI],
+ default_lpdconfigfile="$withval",
+ default_lpdconfigfile="default")
+
+if test x$default_lpdconfigfile != xno; then
+ if test "x$default_lpdconfigfile" = "xdefault"; then
+ case $uname in
+ Darwin*)
+ CUPS_DEFAULT_LPD_CONFIG_FILE="launchd:///System/Library/LaunchDaemons/org.cups.cups-lpd.plist"
+ ;;
+ *)
+ if test -d /etc/xinetd.d; then
+ CUPS_DEFAULT_LPD_CONFIG_FILE="xinetd:///etc/xinetd.d/cups-lpd"
+ else
+ CUPS_DEFAULT_LPD_CONFIG_FILE=""
+ fi
+ ;;
+ esac
+ else
+ CUPS_DEFAULT_LPD_CONFIG_FILE="$default_lpdconfigfile"
+ fi
+else
+ CUPS_DEFAULT_LPD_CONFIG_FILE=""
+fi
+
+AC_DEFINE_UNQUOTED(CUPS_DEFAULT_LPD_CONFIG_FILE, "$CUPS_DEFAULT_LPD_CONFIG_FILE")
+
+dnl Default SMB config file...
+AC_ARG_WITH(smbconfigfile, [ --with-smbconfigfile set default SMBConfigFile URI],
+ default_smbconfigfile="$withval",
+ default_smbconfigfile="default")
+
+if test x$default_smbconfigfile != xno; then
+ if test "x$default_smbconfigfile" = "xdefault"; then
+ if test -f /etc/smb.conf; then
+ CUPS_DEFAULT_SMB_CONFIG_FILE="samba:///etc/smb.conf"
+ else
+ CUPS_DEFAULT_SMB_CONFIG_FILE=""
+ fi
+ else
+ CUPS_DEFAULT_SMB_CONFIG_FILE="$default_smbconfigfile"
+ fi
+else
+ CUPS_DEFAULT_SMB_CONFIG_FILE=""
+fi
+
+AC_DEFINE_UNQUOTED(CUPS_DEFAULT_SMB_CONFIG_FILE, "$CUPS_DEFAULT_SMB_CONFIG_FILE")
+
dnl Default MaxCopies value...
AC_ARG_WITH(max-copies, [ --with-max-copies set max copies value, default=100 ],
CUPS_MAX_COPIES="$withval",
dir.h \
file.h \
http.h \
- i18n.h \
ipp.h \
language.h \
ppd.h \
applications, filters, printer drivers, and backends that need to interface
with the CUPS scheduler.</p>
+<h3><a name='CLIENTS_AND_SERVERS'>Clients and Servers</a></h3>
+
+<p>CUPS is based on the Internet Printing Protocol ("IPP"), which allows
+clients (applications) to communicate with a server (the scheduler) to get a
+list of printers, 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>. All of the examples in this document use the
+<code>CUPS_HTTP_DEFAULT</code> constant, referring to the default connection
+to the scheduler. The <a href='api-httpipp.html' target='_top'>HTTP and IPP
+APIs</a> document provides more information on server connections.</p>
+
<h3><a name='PRINTERS_AND_CLASSES'>Printers and Classes</a></h3>
<p>Printers and classes (collections of printers) are accessed through
the <a href="#cups_dest_t"><code>cups_dest_t</code></a> structure which
includes the name (<code>name</code>), instance (<code>instance</code> -
-a way of selected certain saved options), and the options and attributes
-associated with that destination (<code>num_options</code> and
+a way of selecting certain saved options/settings), and the options and
+attributes associated with that destination (<code>num_options</code> and
<code>options</code>). Destinations are created using the
<a href="#cupsGetDests"><code>cupsGetDests</code></a> function and freed
using the <a href='#cupsFreeDests'><code>cupsFreeDests</code></a> function.
<a href='#cups_dest_t'>cups_dest_t</a> *dest;
for (i = 0; i < dest->num_options; i ++)
- num_options = <a href='#cupsAddOption'>cupsAddOption</a>(dest->options[i].name, dest->options[i].value, num_options, &options);
+ num_options = <a href='#cupsAddOption'>cupsAddOption</a>(dest->options[i].name, dest->options[i].value,
+ num_options, &options);
</pre>
<p>Use the <a href='#cupsFreeOptions'><code>cupsFreeOptions</code></a>
int job_id;
/* Print a single file */
-job_id = <a href='#cupsPrintFile'>cupsPrintFile</a>(dest->name, "/usr/share/cups/data/testprint.ps", "Test Print", num_options, options);
+job_id = <a href='#cupsPrintFile'>cupsPrintFile</a>(dest->name, "/usr/share/cups/data/testprint.ps",
+ "Test Print", num_options, options);
</pre>
<p>The <a href='#cupsPrintFiles'><code>cupsPrintFiles</code></a> function
char buffer[1024];
/* Create the job */
-job_id = <a href='#cupsCreateJob'>cupsCreateJob</a>(CUPS_HTTP_DEFAULT, dest->name, "10 Text Files", num_options, options);
+job_id = <a href='#cupsCreateJob'>cupsCreateJob</a>(CUPS_HTTP_DEFAULT, dest->name, "10 Text Files",
+ num_options, options);
/* If the job is created, add 10 files */
if (job_id > 0)
{
snprintf(buffer, sizeof(buffer), "file%d.txt", i);
- <a href='#cupsStartDocument'>cupsStartDocument</a>(CUPS_HTTP_DEFAULT, dest->name, job_id, buffer, CUPS_FORMAT_TEXT, i == 10);
+ <a href='#cupsStartDocument'>cupsStartDocument</a>(CUPS_HTTP_DEFAULT, dest->name, job_id, buffer,
+ CUPS_FORMAT_TEXT, i == 10);
snprintf(buffer, sizeof(buffer),
"File %d\n"
<a href='#cupsCancelJob'><code>cupsCancelJob</code></a> function with the
job ID:</p>
-<pre class='exmaple'>
+<pre class='example'>
#include <cups/cups.h>
<a href='#cups_dest_t'>cups_dest_t</a> *dest;
*/
int /* O - 0 on success, -1 on error */
-cupsDoAuthentication(http_t *http, /* I - HTTP connection to server */
+cupsDoAuthentication(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
const char *method,/* I - Request method ("GET", "POST", "PUT") */
const char *resource)
/* I - Resource path */
*/
int /* O - Number of destinations */
-cupsGetDests2(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
+cupsGetDests2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
cups_dest_t **dests) /* O - Destinations */
{
int i; /* Looping var */
*/
cups_dest_t * /* O - Destination or @code NULL@ */
-cupsGetNamedDest(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
- const char *name, /* I - Destination name or @code NULL@ */
+cupsGetNamedDest(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
+ const char *name, /* I - Destination name or @code NULL@ for the default destination */
const char *instance) /* I - Instance name or @code NULL@ */
{
cups_dest_t *dest; /* Destination */
*/
int /* O - 0 on success, -1 on error */
-cupsSetDests2(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
+cupsSetDests2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
int num_dests, /* I - Number of destinations */
cups_dest_t *dests) /* I - Destinations */
{
*/
static int /* O - Number of destinations */
-cups_get_sdests(http_t *http, /* I - HTTP connection or CUPS_HTTP_DEFAULT */
+cups_get_sdests(http_t *http, /* I - Connection to server or CUPS_HTTP_DEFAULT */
ipp_op_t op, /* I - IPP operation */
const char *name, /* I - Name of destination */
int num_dests, /* I - Number of destinations */
*
* Option encoding routines for the Common UNIX Printing System (CUPS).
*
- * Copyright 2007 by Apple Inc.
+ * Copyright 2007-2008 by Apple Inc.
* Copyright 1997-2007 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
{ 0, "job-page-limit", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "job-priority", IPP_TAG_INTEGER, IPP_TAG_JOB },
{ 0, "job-quota-period", IPP_TAG_INTEGER, IPP_TAG_JOB },
+ { 1, "job-sheets", IPP_TAG_NAME, IPP_TAG_JOB },
+ { 1, "job-sheets-default", IPP_TAG_NAME, IPP_TAG_PRINTER },
{ 0, "job-uuid", IPP_TAG_URI, IPP_TAG_JOB },
{ 0, "landscape", IPP_TAG_BOOLEAN, IPP_TAG_JOB },
{ 1, "media", IPP_TAG_KEYWORD, IPP_TAG_JOB },
*/
http_status_t /* O - HTTP status */
-cupsGetFd(http_t *http, /* I - HTTP connection to server or @code CUPS_HTTP_DEFAULT@ */
+cupsGetFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
const char *resource, /* I - Resource name */
int fd) /* I - File descriptor */
{
*/
http_status_t /* O - HTTP status */
-cupsGetFile(http_t *http, /* I - HTTP connection to server or @code CUPS_HTTP_DEFAULT@ */
+cupsGetFile(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
const char *resource, /* I - Resource name */
const char *filename) /* I - Filename */
{
*/
http_status_t /* O - HTTP status */
-cupsPutFd(http_t *http, /* I - HTTP connection to server or @code CUPS_HTTP_DEFAULT@ */
+cupsPutFd(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
const char *resource, /* I - Resource name */
int fd) /* I - File descriptor */
{
*/
http_status_t /* O - HTTP status */
-cupsPutFile(http_t *http, /* I - HTTP connection to server or @code CUPS_HTTP_DEFAULT@ */
+cupsPutFile(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
const char *resource, /* I - Resource name */
const char *filename) /* I - Filename */
{
*/
void
-httpBlocking(http_t *http, /* I - HTTP connection */
+httpBlocking(http_t *http, /* I - Connection to server */
int b) /* I - 1 = blocking, 0 = non-blocking */
{
if (http)
*/
int /* O - 0 = no data, 1 = data available */
-httpCheck(http_t *http) /* I - HTTP connection */
+httpCheck(http_t *http) /* I - Connection to server */
{
return (httpWait(http, 0));
}
*/
void
-httpClearCookie(http_t *http) /* I - HTTP connection */
+httpClearCookie(http_t *http) /* I - Connection to server */
{
if (!http)
return;
*/
void
-httpClearFields(http_t *http) /* I - HTTP connection */
+httpClearFields(http_t *http) /* I - Connection to server */
{
if (http)
{
*/
void
-httpClose(http_t *http) /* I - HTTP connection */
+httpClose(http_t *http) /* I - Connection to server */
{
#ifdef HAVE_GSSAPI
OM_uint32 minor_status, /* Minor status code */
*/
int /* O - Status of call (0 = success) */
-httpDelete(http_t *http, /* I - HTTP connection */
+httpDelete(http_t *http, /* I - Connection to server */
const char *uri) /* I - URI to delete */
{
return (http_send(http, HTTP_DELETE, uri));
*/
int /* O - -1 on error, 0 on success */
-httpEncryption(http_t *http, /* I - HTTP connection */
+httpEncryption(http_t *http, /* I - Connection to server */
http_encryption_t e) /* I - New encryption preference */
{
DEBUG_printf(("httpEncryption(http=%p, e=%d)\n", http, e));
*/
int /* O - Error code (errno) value */
-httpError(http_t *http) /* I - HTTP connection */
+httpError(http_t *http) /* I - Connection to server */
{
if (http)
return (http->error);
*/
void
-httpFlush(http_t *http) /* I - HTTP connection */
+httpFlush(http_t *http) /* I - Connection to server */
{
char buffer[8192]; /* Junk buffer */
int blocking; /* To block or not to block */
*/
int /* O - Bytes written or -1 on error */
-httpFlushWrite(http_t *http) /* I - HTTP connection */
+httpFlushWrite(http_t *http) /* I - Connection to server */
{
int bytes; /* Bytes written */
*/
int /* O - Status of call (0 = success) */
-httpGet(http_t *http, /* I - HTTP connection */
+httpGet(http_t *http, /* I - Connection to server */
const char *uri) /* I - URI to get */
{
return (http_send(http, HTTP_GET, uri));
*/
char * /* O - Authorization string */
-httpGetAuthString(http_t *http) /* I - HTTP connection */
+httpGetAuthString(http_t *http) /* I - Connection to server */
{
if (http)
return (http->authstring);
*/
int /* O - 1 if blocking, 0 if non-blocking */
-httpGetBlocking(http_t *http) /* I - HTTP connection */
+httpGetBlocking(http_t *http) /* I - Connection to server */
{
return (http ? http->blocking : 0);
}
*/
int /* O - File descriptor or -1 if none */
-httpGetFd(http_t *http) /* I - HTTP connection */
+httpGetFd(http_t *http) /* I - Connection to server */
{
return (http ? http->fd : -1);
}
*/
const char * /* O - Field value */
-httpGetField(http_t *http, /* I - HTTP connection */
+httpGetField(http_t *http, /* I - Connection to server */
http_field_t field) /* I - Field to get */
{
if (!http || field <= HTTP_FIELD_UNKNOWN || field >= HTTP_FIELD_MAX)
*/
int /* O - Content length */
-httpGetLength(http_t *http) /* I - HTTP connection */
+httpGetLength(http_t *http) /* I - Connection to server */
{
/*
* Get the read content length and return the 32-bit value.
*/
off_t /* O - Content length */
-httpGetLength2(http_t *http) /* I - HTTP connection */
+httpGetLength2(http_t *http) /* I - Connection to server */
{
DEBUG_printf(("httpGetLength2(http=%p), state=%d\n", http, http->state));
*/
http_status_t /* O - HTTP status */
-httpGetStatus(http_t *http) /* I - HTTP connection */
+httpGetStatus(http_t *http) /* I - Connection to server */
{
return (http ? http->status : HTTP_ERROR);
}
*/
char * /* O - Value or NULL */
-httpGetSubField(http_t *http, /* I - HTTP connection */
+httpGetSubField(http_t *http, /* I - Connection to server */
http_field_t field, /* I - Field index */
const char *name, /* I - Name of sub-field */
char *value) /* O - Value string */
*/
char * /* O - Value or NULL */
-httpGetSubField2(http_t *http, /* I - HTTP connection */
+httpGetSubField2(http_t *http, /* I - Connection to server */
http_field_t field, /* I - Field index */
const char *name, /* I - Name of sub-field */
char *value, /* O - Value string */
char * /* O - Line or NULL */
httpGets(char *line, /* I - Line to read into */
int length, /* I - Max length of buffer */
- http_t *http) /* I - HTTP connection */
+ http_t *http) /* I - Connection to server */
{
char *lineptr, /* Pointer into line */
*lineend, /* End of line */
*/
int /* O - Status of call (0 = success) */
-httpHead(http_t *http, /* I - HTTP connection */
+httpHead(http_t *http, /* I - Connection to server */
const char *uri) /* I - URI for head */
{
return (http_send(http, HTTP_HEAD, uri));
*/
int /* O - Status of call (0 = success) */
-httpOptions(http_t *http, /* I - HTTP connection */
+httpOptions(http_t *http, /* I - Connection to server */
const char *uri) /* I - URI for options */
{
return (http_send(http, HTTP_OPTIONS, uri));
*/
int /* O - Status of call (0 = success) */
-httpPost(http_t *http, /* I - HTTP connection */
+httpPost(http_t *http, /* I - Connection to server */
const char *uri) /* I - URI for post */
{
return (http_send(http, HTTP_POST, uri));
*/
int /* O - Number of bytes written */
-httpPrintf(http_t *http, /* I - HTTP connection */
+httpPrintf(http_t *http, /* I - Connection to server */
const char *format, /* I - printf-style format string */
...) /* I - Additional args as needed */
{
*/
int /* O - Status of call (0 = success) */
-httpPut(http_t *http, /* I - HTTP connection */
+httpPut(http_t *http, /* I - Connection to server */
const char *uri) /* I - URI to put */
{
return (http_send(http, HTTP_PUT, uri));
*/
int /* O - Number of bytes read */
-httpRead(http_t *http, /* I - HTTP connection */
+httpRead(http_t *http, /* I - Connection to server */
char *buffer, /* I - Buffer for data */
int length) /* I - Maximum number of bytes */
{
*/
ssize_t /* O - Number of bytes read */
-httpRead2(http_t *http, /* I - HTTP connection */
+httpRead2(http_t *http, /* I - Connection to server */
char *buffer, /* I - Buffer for data */
size_t length) /* I - Maximum number of bytes */
{
ssize_t /* O - Number of bytes read or -1 on error */
_httpReadGNUTLS(
- gnutls_transport_ptr ptr, /* I - HTTP connection */
+ gnutls_transport_ptr ptr, /* I - Connection to server */
void *data, /* I - Buffer */
size_t length) /* I - Number of bytes to read */
{
*/
int /* O - 0 on success, non-zero on failure */
-httpReconnect(http_t *http) /* I - HTTP connection */
+httpReconnect(http_t *http) /* I - Connection to server */
{
http_addrlist_t *addr; /* Connected address */
*/
void
-httpSetAuthString(http_t *http, /* I - HTTP connection */
+httpSetAuthString(http_t *http, /* I - Connection to server */
const char *scheme, /* I - Auth scheme (NULL to clear it) */
const char *data) /* I - Auth data (NULL for none) */
{
*/
void
-httpSetExpect(http_t *http, /* I - HTTP connection */
+httpSetExpect(http_t *http, /* I - Connection to server */
http_status_t expect) /* I - HTTP status to expect (HTTP_CONTINUE) */
{
if (http)
*/
void
-httpSetField(http_t *http, /* I - HTTP connection */
+httpSetField(http_t *http, /* I - Connection to server */
http_field_t field, /* I - Field index */
const char *value) /* I - Value */
{
*/
void
-httpSetLength(http_t *http, /* I - HTTP connection */
+httpSetLength(http_t *http, /* I - Connection to server */
size_t length) /* I - Length (0 for chunked) */
{
if (!http)
*/
int /* O - Status of call (0 = success) */
-httpTrace(http_t *http, /* I - HTTP connection */
+httpTrace(http_t *http, /* I - Connection to server */
const char *uri) /* I - URI for trace */
{
return (http_send(http, HTTP_TRACE, uri));
*/
http_status_t /* O - HTTP status */
-httpUpdate(http_t *http) /* I - HTTP connection */
+httpUpdate(http_t *http) /* I - Connection to server */
{
char line[32768], /* Line from connection... */
*value; /* Pointer to value on line */
*/
int /* O - 1 if data is available, 0 otherwise */
-httpWait(http_t *http, /* I - HTTP connection */
+httpWait(http_t *http, /* I - Connection to server */
int msec) /* I - Milliseconds to wait */
{
/*
*/
int /* O - Number of bytes written */
-httpWrite(http_t *http, /* I - HTTP connection */
+httpWrite(http_t *http, /* I - Connection to server */
const char *buffer, /* I - Buffer for data */
int length) /* I - Number of bytes to write */
{
*/
ssize_t /* O - Number of bytes written */
-httpWrite2(http_t *http, /* I - HTTP connection */
+httpWrite2(http_t *http, /* I - Connection to server */
const char *buffer, /* I - Buffer for data */
size_t length) /* I - Number of bytes to write */
{
ssize_t /* O - Number of bytes written or -1 on error */
_httpWriteGNUTLS(
- gnutls_transport_ptr ptr, /* I - HTTP connection */
+ gnutls_transport_ptr ptr, /* I - Connection to server */
const void *data, /* I - Data buffer */
size_t length) /* I - Number of bytes to write */
{
*/
static int /* O - Bytes read */
-http_read_ssl(http_t *http, /* I - HTTP connection */
+http_read_ssl(http_t *http, /* I - Connection to server */
char *buf, /* I - Buffer to store data */
int len) /* I - Length of buffer */
{
*/
static int /* O - 0 on success, non-zero on error */
-http_send(http_t *http, /* I - HTTP connection */
+http_send(http_t *http, /* I - Connection to server */
http_state_t request, /* I - Request code */
const char *uri) /* I - URI */
{
*/
static int /* O - Status of connection */
-http_setup_ssl(http_t *http) /* I - HTTP connection */
+http_setup_ssl(http_t *http) /* I - Connection to server */
{
# ifdef HAVE_LIBSSL
SSL_CTX *context; /* Context for encryption */
*/
static void
-http_shutdown_ssl(http_t *http) /* I - HTTP connection */
+http_shutdown_ssl(http_t *http) /* I - Connection to server */
{
# ifdef HAVE_LIBSSL
SSL_CTX *context; /* Context for encryption */
*/
static int /* O - Status of connection */
-http_upgrade(http_t *http) /* I - HTTP connection */
+http_upgrade(http_t *http) /* I - Connection to server */
{
int ret; /* Return value */
http_t myhttp; /* Local copy of HTTP data */
*/
static int /* O - 1 if data is available, 0 otherwise */
-http_wait(http_t *http, /* I - HTTP connection */
+http_wait(http_t *http, /* I - Connection to server */
int msec, /* I - Milliseconds to wait */
int usessl) /* I - Use SSL context? */
{
*/
static int /* O - Number of bytes written */
-http_write(http_t *http, /* I - HTTP connection */
+http_write(http_t *http, /* I - Connection to server */
const char *buffer, /* I - Buffer for data */
int length) /* I - Number of bytes to write */
{
*/
static int /* O - Number bytes written */
-http_write_chunk(http_t *http, /* I - HTTP connection */
+http_write_chunk(http_t *http, /* I - Connection to server */
const char *buffer, /* I - Buffer to write */
int length) /* I - Length of buffer */
{
*/
static int /* O - Bytes written */
-http_write_ssl(http_t *http, /* I - HTTP connection */
+http_write_ssl(http_t *http, /* I - Connection to server */
const char *buf, /* I - Buffer holding data */
int len) /* I - Length of buffer */
{
ipp_t *ipp) /* I - IPP data */
{
int n; /* Length of data */
- unsigned char buffer[IPP_MAX_LENGTH],
+ unsigned char buffer[IPP_MAX_LENGTH + 1],
/* Data buffer */
string[IPP_MAX_NAME],
/* Small string buffer */
return (IPP_ERROR);
}
- DEBUG_printf(("ippWriteIO: wrote %d bytes\n", bufptr - buffer));
+ DEBUG_printf(("ippWriteIO: wrote %d bytes\n",
+ (int)(bufptr - buffer)));
/*
* If blocking is disabled, stop here...
DEBUG_printf(("ipp_read_http(http=%p, buffer=%p, length=%d)\n",
- http, buffer, length));
+ http, buffer, (int)length));
/*
* Loop until all bytes are read...
/*
* 'cupsNotifySubject()' - Return the subject for the given notification message.
*
- * The returned string must be freed by the caller using free().
+ * The returned string must be freed by the caller using @code free@.
*
* @since CUPS 1.2@
*/
* 'cupsDoFileRequest()' - Do an IPP request with a file.
*
* This function sends the IPP request to the specified server, retrying
- * and authenticating as necessary. The request is freed with ippDelete()
+ * and authenticating as necessary. The request is freed with @link ippDelete@
* after receiving a valid IPP response.
*/
ipp_t * /* O - Response data */
-cupsDoFileRequest(http_t *http, /* I - HTTP connection or CUPS_HTTP_DEFAULT */
+cupsDoFileRequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
ipp_t *request, /* I - IPP request */
const char *resource, /* I - HTTP resource for POST */
- const char *filename) /* I - File to send or NULL for none */
+ const char *filename) /* I - File to send or @code NULL@ for none */
{
ipp_t *response; /* IPP response data */
int infile; /* Input file */
*/
ipp_t * /* O - Response data */
-cupsDoIORequest(http_t *http, /* I - HTTP connection or CUPS_HTTP_DEFAULT */
+cupsDoIORequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
ipp_t *request, /* I - IPP request */
const char *resource, /* I - HTTP resource for POST */
int infile, /* I - File to read from or -1 for none */
status = http->status;
}
+ if (status == HTTP_FORBIDDEN)
+ break;
+
if (response)
{
if (outfile >= 0)
*/
ipp_t * /* O - Response data */
-cupsDoRequest(http_t *http, /* I - HTTP connection or CUPS_HTTP_DEFAULT */
+cupsDoRequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
ipp_t *request, /* I - IPP request */
const char *resource) /* I - HTTP resource for POST */
{
* @since CUPS 1.4@
*/
-ipp_t * /* O - Response or NULL on HTTP error */
-cupsGetResponse(http_t *http, /* I - HTTP connection or CUPS_HTTP_DEFAULT */
+ipp_t * /* O - Response or @code NULL@ on HTTP error */
+cupsGetResponse(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
const char *resource) /* I - HTTP resource for POST */
{
http_status_t status; /* HTTP status */
* See if we can do authentication...
*/
+ int auth_result;
+
DEBUG_puts("cupsGetResponse: Need authorization...");
- if (!cupsDoAuthentication(http, "POST", resource))
+ if ((auth_result =cupsDoAuthentication(http, "POST", resource)) == 0)
httpReconnect(http);
+ else if (auth_result < 0)
+ http->status = status = HTTP_FORBIDDEN;
}
#ifdef HAVE_SSL
ssize_t /* O - Bytes read, 0 on EOF, -1 on error */
cupsReadResponseData(
- http_t *http, /* I - HTTP connection or CUPS_HTTP_DEFAULT */
+ http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
char *buffer, /* I - Buffer to use */
size_t length) /* I - Number of bytes to read */
{
*/
http_status_t /* O - Initial HTTP status */
-cupsSendRequest(http_t *http, /* I - HTTP connection or CUPS_HTTP_DEFAULT */
+cupsSendRequest(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
ipp_t *request, /* I - IPP request */
const char *resource, /* I - Resource path */
size_t length) /* I - Length of data to follow or CUPS_LENGTH_VARIABLE */
/*
* 'cupsWriteRequestData()' - Write additional data after an IPP request.
*
- * This function is used after cupsSendRequest() or cupsStartDocument()
- * to provide a PPD or document file as needed.
+ * This function is used after @link cupsSendRequest@ to provide a PPD and
+ * after @link cupsStartDocument@ to provide a document file.
*
* @since CUPS 1.4@
*/
-http_status_t /* O - HTTP_CONTINUE if OK or HTTP status on error */
+http_status_t /* O - @code HTTP_CONTINUE@ if OK or HTTP status on error */
cupsWriteRequestData(
- http_t *http, /* I - HTTP connection or CUPS_HTTP_DEFAULT */
+ http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
const char *buffer, /* I - Bytes to write */
size_t length) /* I - Number of bytes to write */
{
cups_snmp_t * /* O - SNMP packet or @code NULL@ if none */
cupsSNMPRead(int fd, /* I - SNMP socket file descriptor */
cups_snmp_t *packet, /* I - SNMP packet buffer */
- int msec) /* I - Timeout in milliseconds */
+ double timeout) /* I - Timeout in seconds */
{
unsigned char buffer[CUPS_SNMP_MAX_PACKET];
/* Data packet */
* Optionally wait for a response...
*/
- if (msec >= 0)
+ if (timeout >= 0.0)
{
int ready; /* Data ready on socket? */
#ifdef HAVE_POLL
pfd.fd = fd;
pfd.events = POLLIN;
- while ((ready = poll(&pfd, 1, msec)) < 0 && errno == EINTR);
+ while ((ready = poll(&pfd, 1, (int)(timeout * 1000.0))) < 0 &&
+ errno == EINTR);
#else
fd_set input_set; /* select() input set */
- struct timeval timeout; /* select() timeout */
+ struct timeval stimeout; /* select() timeout */
do
{
FD_ZERO(&input_set);
FD_SET(fd, &input_set);
- timeout.tv_sec = msec / 1000;
- timeout.tv_usec = (msec % 1000) * 1000;
+ stimeout.tv_sec = (int)timeout;
+ stimeout.tv_usec = (int)((timeout - stimeout.tv_usec) * 1000000);
- ready = select(fd + 1, &input_set, NULL, NULL, &timeout);
+ ready = select(fd + 1, &input_set, NULL, NULL, &stimeout);
}
# ifdef WIN32
while (ready < 0 && WSAGetLastError() == WSAEINTR);
*
* The array pointed to by "prefix" is terminated by the value -1.
*
+ * If "timeout" is negative, @code cupsSNMPWalk@ will wait for a response
+ * indefinitely.
+ *
* @since CUPS 1.4@
*/
int version, /* I - SNMP version */
const char *community, /* I - Community name */
const int *prefix, /* I - OID prefix */
- int msec, /* I - Timeout for each response in milliseconds */
+ double timeout, /* I - Timeout for each response in seconds */
cups_snmp_cb_t cb, /* I - Function to call for each response */
void *data) /* I - User data pointer that is passed to the callback function */
{
packet.object_name))
return (-1);
- if (!cupsSNMPRead(fd, &packet, msec))
+ if (!cupsSNMPRead(fd, &packet, timeout))
return (-1);
if (!cupsSNMPIsOIDPrefixed(&packet, prefix))
extern int cupsSNMPIsOIDPrefixed(cups_snmp_t *packet,
const int *prefix) _CUPS_API_1_4;
extern int cupsSNMPOpen(int family) _CUPS_API_1_4;
-extern cups_snmp_t *cupsSNMPRead(int fd, cups_snmp_t *packet, int msec)
- _CUPS_API_1_4;
+extern cups_snmp_t *cupsSNMPRead(int fd, cups_snmp_t *packet,
+ double timeout) _CUPS_API_1_4;
extern void cupsSNMPSetDebug(int level) _CUPS_API_1_4;
extern int cupsSNMPWalk(int fd, http_addr_t *address, int version,
const char *community, const int *prefix,
- int msec, cups_snmp_cb_t cb, void *data)
- _CUPS_API_1_4;
+ double timeout, cups_snmp_cb_t cb,
+ void *data) _CUPS_API_1_4;
extern int cupsSNMPWrite(int fd, http_addr_t *address, int version,
const char *community,
cups_asn1_t request_type,
* @deprecated@
*/
-char * /* O - Filename or NULL on error */
+char * /* O - Filename or @code NULL@ on error */
cupsTempFile(char *filename, /* I - Pointer to buffer */
int len) /* I - Size of buffer */
{
* @since CUPS 1.2@
*/
-cups_file_t * /* O - CUPS file or NULL on error */
+cups_file_t * /* O - CUPS file or @code NULL@ on error */
cupsTempFile2(char *filename, /* I - Pointer to buffer */
int len) /* I - Size of buffer */
{
printf(".%d", oid[i]);
puts("):");
- if (cupsSNMPWalk(fd, addr, CUPS_SNMP_VERSION_1, community, oid, 5000,
+ if (cupsSNMPWalk(fd, addr, CUPS_SNMP_VERSION_1, community, oid, 5.0,
print_packet, NULL) < 0)
{
printf("FAIL (%s)\n", strerror(errno));
puts("PASS");
- fputs("cupsSNMPRead(5000): ", stdout);
+ fputs("cupsSNMPRead(5.0): ", stdout);
- if (!cupsSNMPRead(fd, &packet, 5000))
+ if (!cupsSNMPRead(fd, &packet, 5.0))
{
puts("FAIL (timeout)");
return (0);
* 'cupsEncryption()' - Get the default encryption settings.
*
* The default encryption setting comes from the CUPS_ENCRYPTION
- * environment variable, then the ~/.cupsrc file, and finally the
+ * environment variable, then the ~/.cups/client.conf file, and finally the
* /etc/cups/client.conf file. If not set, the default is
* @code HTTP_ENCRYPT_IF_REQUESTED@.
*/
int /* O - 1 on success, 0 on failure */
cupsCancelJob(const char *name, /* I - Name of printer or class */
- int job_id) /* I - Job ID */
+ int job_id) /* I - Job ID, @code CUPS_JOBID_CURRENT@ for the current job, or @code CUPS_JOBID_ALL@ for all jobs */
{
return (cupsCancelJob2(CUPS_HTTP_DEFAULT, name, job_id, 0)
< IPP_REDIRECTION_OTHER_SITE);
*/
ipp_status_t /* O - IPP status */
-cupsCancelJob2(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
+cupsCancelJob2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
const char *name, /* I - Name of printer or class */
- int job_id, /* I - Job ID or 0 for the current job, -1 for all jobs */
+ int job_id, /* I - Job ID, @code CUPS_JOBID_CURRENT@ for the current job, or @code CUPS_JOBID_ALL@ for all jobs */
int purge) /* I - 1 to purge, 0 to cancel */
{
char uri[HTTP_MAX_URI]; /* Job/printer URI */
/*
- * 'cupsCreateJob()' - Create an empty job.
+ * 'cupsCreateJob()' - Create an empty job for streaming.
*
- * Submit files for printing to the job using the @link cupsStartDocument@,
- * @link cupsWriteRequestData@, and @link cupsFinishDocument@ functions.
+ * Use this function when you want to stream print data using the
+ * @link cupsStartDocument@, @link cupsWriteRequestData@, and
+ * @link cupsFinishDocument@ functions. If you have one or more files to
+ * print, use the @link cupsPrintFile2@ or @link cupsPrintFiles2@ function
+ * instead.
*
* @since CUPS 1.4@
*/
int /* O - Job ID or 0 on error */
cupsCreateJob(
- http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
- const char *name, /* I - Printer or class name */
+ http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
+ const char *name, /* I - Destination name */
const char *title, /* I - Title of job */
int num_options, /* I - Number of options */
cups_option_t *options) /* I - Options */
*/
ipp_status_t /* O - Status of document submission */
-cupsFinishDocument(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
- const char *name) /* I - Printer or class name */
+cupsFinishDocument(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
+ const char *name) /* I - Destination name */
{
char resource[1024]; /* Printer resource */
*/
const char * /* O - Default printer or @code NULL@ */
-cupsGetDefault2(http_t *http) /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
+cupsGetDefault2(http_t *http) /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
{
ipp_t *request, /* IPP Request */
*response; /* IPP Response */
int /* O - Number of jobs */
cupsGetJobs(cups_job_t **jobs, /* O - Job data */
- const char *name, /* I - @code NULL@ = all destinations, otherwise show jobs for mydest */
+ const char *name, /* I - @code NULL@ = all destinations, otherwise show jobs for named destination */
int myjobs, /* I - 0 = all users, 1 = mine */
int whichjobs) /* I - @code CUPS_WHICHJOBS_ALL@, @code CUPS_WHICHJOBS_ACTIVE@, or @code CUPS_WHICHJOBS_COMPLETED@ */
{
*/
int /* O - Number of jobs */
-cupsGetJobs2(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
+cupsGetJobs2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
cups_job_t **jobs, /* O - Job data */
- const char *name, /* I - @code NULL@ = all destinations, otherwise show jobs for mydest */
+ const char *name, /* I - @code NULL@ = all destinations, otherwise show jobs for named destination */
int myjobs, /* I - 0 = all users, 1 = mine */
int whichjobs) /* I - @code CUPS_WHICHJOBS_ALL@, @code CUPS_WHICHJOBS_ACTIVE@, or @code CUPS_WHICHJOBS_COMPLETED@ */
{
*
* For classes, @code cupsGetPPD@ returns the PPD file for the first printer
* in the class.
+ *
+ * The returned filename is stored in a static buffer and is overwritten with
+ * each call to @code cupsGetPPD@ or @link cupsGetPPD2@.
*/
const char * /* O - Filename for PPD file */
-cupsGetPPD(const char *name) /* I - Printer name */
+cupsGetPPD(const char *name) /* I - Destination name */
{
_cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals */
time_t modtime = 0; /* Modification time */
* For classes, @code cupsGetPPD2@ returns the PPD file for the first printer
* in the class.
*
+ * The returned filename is stored in a static buffer and is overwritten with
+ * each call to @link cupsGetPPD@ or @code cupsGetPPD2@.
+ *
* @since CUPS 1.1.21@
*/
const char * /* O - Filename for PPD file */
-cupsGetPPD2(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
- const char *name) /* I - Printer name */
+cupsGetPPD2(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
+ const char *name) /* I - Destination name */
{
_cups_globals_t *cg = _cupsGlobals(); /* Pointer to library globals */
time_t modtime = 0; /* Modification time */
*
* For classes, @code cupsGetPPD3@ returns the PPD file for the first printer
* in the class.
+ *
+ * @since CUPS 1.4@
*/
http_status_t /* O - HTTP status */
cupsGetPPD3(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
- const char *name, /* I - Printer name */
+ const char *name, /* I - Destination name */
time_t *modtime, /* IO - Modification time */
char *buffer, /* I - Filename buffer */
size_t bufsize) /* I - Size of filename buffer */
*/
char * /* O - Name of PPD file or @code NULL@ on error */
-cupsGetServerPPD(http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
+cupsGetServerPPD(http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
const char *name) /* I - Name of PPD file ("ppd-name") */
{
int fd; /* PPD file descriptor */
*/
int /* O - Job ID or 0 on error */
-cupsPrintFile(const char *name, /* I - Printer or class name */
+cupsPrintFile(const char *name, /* I - Destination name */
const char *filename, /* I - File to print */
const char *title, /* I - Title of job */
int num_options,/* I - Number of options */
int /* O - Job ID or 0 on error */
cupsPrintFile2(
- http_t *http, /* I - HTTP connection */
- const char *name, /* I - Printer or class name */
+ http_t *http, /* I - Connection to server */
+ const char *name, /* I - Destination name */
const char *filename, /* I - File to print */
const char *title, /* I - Title of job */
int num_options, /* I - Number of options */
int /* O - Job ID or 0 on error */
cupsPrintFiles(
- const char *name, /* I - Printer or class name */
+ const char *name, /* I - Destination name */
int num_files, /* I - Number of files */
const char **files, /* I - File(s) to print */
const char *title, /* I - Title of job */
int /* O - Job ID or 0 on error */
cupsPrintFiles2(
- http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
- const char *name, /* I - Printer or class name */
+ http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
+ const char *name, /* I - Destination name */
int num_files, /* I - Number of files */
const char **files, /* I - File(s) to print */
const char *title, /* I - Title of job */
http_status_t /* O - HTTP status of request */
cupsStartDocument(
- http_t *http, /* I - HTTP connection or @code CUPS_HTTP_DEFAULT@ */
- const char *name, /* I - Printer or class name */
+ http_t *http, /* I - Connection to server or @code CUPS_HTTP_DEFAULT@ */
+ const char *name, /* I - Destination name */
int job_id, /* I - Job ID from @link cupsCreateJob@ */
const char *docname, /* I - Name of document */
const char *format, /* I - MIME type or @code CUPS_FORMAT_foo@ */
static int /* O - 1 on success, 0 on failure */
cups_get_printer_uri(
- http_t *http, /* I - HTTP connection */
+ http_t *http, /* I - Connection to server */
const char *name, /* I - Name of printer or class */
char *host, /* I - Hostname buffer */
int hostsize, /* I - Size of hostname buffer */
install-languages:
for lang in $(LANGUAGES); do \
- $(INSTALL_DIR) -m 755 $(DOCDIR)/$$lang/images; \
- if test -f $$lang/index.html; then \
- $(INSTALL_MAN) $$lang/index.html $(DOCDIR)/$$lang; \
- fi; \
- if test -f $$lang/cups.css; then \
- $(INSTALL_MAN) $$lang/cups.css $(DOCDIR)/$$lang; \
+ if test -d $$lang; then \
+ $(INSTALL_DIR) -m 755 $(DOCDIR)/$$lang/images; \
+ $(INSTALL_MAN) $$lang/index.html $(DOCDIR)/$$lang 2>/dev/null || true; \
+ $(INSTALL_MAN) $$lang/cups.css $(DOCDIR)/$$lang 2>/dev/null || true; \
fi; \
done
}
A:link, A:visited {
+ font-weight: normal;
text-decoration: none;
- font-weight: bold;
}
A:link:hover, A:visited:hover, A:active {
text-decoration: underline;
- font-weight: bold;
}
SUB, SUP {
}
A:link, A:visited {
+ font-weight: normal;
text-decoration: none;
color: #000099;
}
}
A:link, A:visited {
+ font-weight: normal;
text-decoration: none;
- font-weight: bold;
}
A:link:hover, A:visited:hover, A:active {
text-decoration: underline;
- font-weight: bold;
}
SUB, SUP {
}
A:link, A:visited {
+ font-weight: normal;
text-decoration: none;
- font-weight: bold;
}
A:link:hover, A:visited:hover, A:active {
text-decoration: underline;
- font-weight: bold;
}
SUB, SUP {
<ul class="contents">
</li>
<li><a href="#OVERVIEW">Overview</a><ul class="subcontents">
+<li><a href="#CLIENTS_AND_SERVERS">Clients and Servers</a></li>
<li><a href="#PRINTERS_AND_CLASSES">Printers and Classes</a></li>
<li><a href="#OPTIONS">Options</a></li>
<li><a href="#PRINT_JOBS">Print Jobs</a></li>
<li><a href="#cupsAddOption" title="Add an option to an option array.">cupsAddOption</a></li>
<li><a href="#cupsCancelJob" title="Cancel a print job on the default server.">cupsCancelJob</a></li>
<li><a href="#cupsCancelJob2" title="Cancel or purge a print job.">cupsCancelJob2</a></li>
-<li><a href="#cupsCreateJob" title="Create an empty job.">cupsCreateJob</a></li>
+<li><a href="#cupsCreateJob" title="Create an empty job for streaming.">cupsCreateJob</a></li>
<li><a href="#cupsEncryption" title="Get the default encryption settings.">cupsEncryption</a></li>
<li><a href="#cupsFinishDocument" title="Finish sending a document.">cupsFinishDocument</a></li>
<li><a href="#cupsFreeDests" title="Free the memory used by the list of destinations.">cupsFreeDests</a></li>
</ul></li>
</ul>
<!--
- "$Id: api-cups.shtml 7258 2008-01-28 00:15:05Z mike $"
+ "$Id: api-cups.shtml 7337 2008-02-22 04:44:04Z mike $"
CUPS API introduction for the Common UNIX Printing System (CUPS).
applications, filters, printer drivers, and backends that need to interface
with the CUPS scheduler.</p>
+<h3><a name='CLIENTS_AND_SERVERS'>Clients and Servers</a></h3>
+
+<p>CUPS is based on the Internet Printing Protocol ("IPP"), which allows
+clients (applications) to communicate with a server (the scheduler) to get a
+list of printers, 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>. All of the examples in this document use the
+<code>CUPS_HTTP_DEFAULT</code> constant, referring to the default connection
+to the scheduler. The <a href='api-httpipp.html' target='_top'>HTTP and IPP
+APIs</a> document provides more information on server connections.</p>
+
<h3><a name='PRINTERS_AND_CLASSES'>Printers and Classes</a></h3>
<p>Printers and classes (collections of printers) are accessed through
the <a href="#cups_dest_t"><code>cups_dest_t</code></a> structure which
includes the name (<code>name</code>), instance (<code>instance</code> -
-a way of selected certain saved options), and the options and attributes
-associated with that destination (<code>num_options</code> and
+a way of selecting certain saved options/settings), and the options and
+attributes associated with that destination (<code>num_options</code> and
<code>options</code>). Destinations are created using the
<a href="#cupsGetDests"><code>cupsGetDests</code></a> function and freed
using the <a href='#cupsFreeDests'><code>cupsFreeDests</code></a> function.
<a href='#cups_dest_t'>cups_dest_t</a> *dest;
for (i = 0; i < dest->num_options; i ++)
- num_options = <a href='#cupsAddOption'>cupsAddOption</a>(dest->options[i].name, dest->options[i].value, num_options, &options);
+ num_options = <a href='#cupsAddOption'>cupsAddOption</a>(dest->options[i].name, dest->options[i].value,
+ num_options, &options);
</pre>
<p>Use the <a href='#cupsFreeOptions'><code>cupsFreeOptions</code></a>
int job_id;
/* Print a single file */
-job_id = <a href='#cupsPrintFile'>cupsPrintFile</a>(dest->name, "/usr/share/cups/data/testprint.ps", "Test Print", num_options, options);
+job_id = <a href='#cupsPrintFile'>cupsPrintFile</a>(dest->name, "/usr/share/cups/data/testprint.ps",
+ "Test Print", num_options, options);
</pre>
<p>The <a href='#cupsPrintFiles'><code>cupsPrintFiles</code></a> function
char buffer[1024];
/* Create the job */
-job_id = <a href='#cupsCreateJob'>cupsCreateJob</a>(CUPS_HTTP_DEFAULT, dest->name, "10 Text Files", num_options, options);
+job_id = <a href='#cupsCreateJob'>cupsCreateJob</a>(CUPS_HTTP_DEFAULT, dest->name, "10 Text Files",
+ num_options, options);
/* If the job is created, add 10 files */
if (job_id > 0)
{
snprintf(buffer, sizeof(buffer), "file%d.txt", i);
- <a href='#cupsStartDocument'>cupsStartDocument</a>(CUPS_HTTP_DEFAULT, dest->name, job_id, buffer, CUPS_FORMAT_TEXT, i == 10);
+ <a href='#cupsStartDocument'>cupsStartDocument</a>(CUPS_HTTP_DEFAULT, dest->name, job_id, buffer,
+ CUPS_FORMAT_TEXT, i == 10);
snprintf(buffer, sizeof(buffer),
"File %d\n"
<a href='#cupsCancelJob'><code>cupsCancelJob</code></a> function with the
job ID:</p>
-<pre class='exmaple'>
+<pre class='example'>
#include <cups/cups.h>
<a href='#cups_dest_t'>cups_dest_t</a> *dest;
<dt>name</dt>
<dd class="description">Name of printer or class</dd>
<dt>job_id</dt>
-<dd class="description">Job ID</dd>
+<dd class="description">Job ID, <code>CUPS_JOBID_CURRENT</code> for the current job, or <code>CUPS_JOBID_ALL</code> for all jobs</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 on success, 0 on failure</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>name</dt>
<dd class="description">Name of printer or class</dd>
<dt>job_id</dt>
-<dd class="description">Job ID or 0 for the current job, -1 for all jobs</dd>
+<dd class="description">Job ID, <code>CUPS_JOBID_CURRENT</code> for the current job, or <code>CUPS_JOBID_ALL</code> for all jobs</dd>
<dt>purge</dt>
<dd class="description">1 to purge, 0 to cancel</dd>
</dl>
</p>
<h3 class="function"><span class="info"> CUPS 1.4 </span><a name="cupsCreateJob">cupsCreateJob</a></h3>
-<p class="description">Create an empty job.</p>
+<p class="description">Create an empty job for streaming.</p>
<p class="code">
int cupsCreateJob (<br>
http_t *http,<br>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>name</dt>
-<dd class="description">Printer or class name</dd>
+<dd class="description">Destination name</dd>
<dt>title</dt>
<dd class="description">Title of job</dd>
<dt>num_options</dt>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Job ID or 0 on error</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">Submit files for printing to the job using the <a href="#cupsStartDocument"><code>cupsStartDocument</code></a>,
-<a href="#cupsWriteRequestData"><code>cupsWriteRequestData</code></a>, and <a href="#cupsFinishDocument"><code>cupsFinishDocument</code></a> functions.
+<p class="discussion">Use this function when you want to stream print data using the
+<a href="#cupsStartDocument"><code>cupsStartDocument</code></a>, <a href="#cupsWriteRequestData"><code>cupsWriteRequestData</code></a>, and
+<a href="#cupsFinishDocument"><code>cupsFinishDocument</code></a> functions. If you have one or more files to
+print, use the <a href="#cupsPrintFile2"><code>cupsPrintFile2</code></a> or <a href="#cupsPrintFiles2"><code>cupsPrintFiles2</code></a> function
+instead.
</p>
<h3 class="function"><a name="cupsEncryption">cupsEncryption</a></h3>
<p class="description">Encryption settings</p>
<h4 class="discussion">Discussion</h4>
<p class="discussion">The default encryption setting comes from the CUPS_ENCRYPTION
-environment variable, then the ~/.cupsrc file, and finally the
+environment variable, then the ~/.cups/client.conf file, and finally the
/etc/cups/client.conf file. If not set, the default is
<code>HTTP_ENCRYPT_IF_REQUESTED</code>.</p>
<h3 class="function"><span class="info"> CUPS 1.4 </span><a name="cupsFinishDocument">cupsFinishDocument</a></h3>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>name</dt>
-<dd class="description">Printer or class name</dd>
+<dd class="description">Destination name</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Status of document submission</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Default printer or <code>NULL</code></p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>dests</dt>
<dd class="description">Destinations</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>resource</dt>
<dd class="description">Resource name</dd>
<dt>fd</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>resource</dt>
<dd class="description">Resource name</dd>
<dt>filename</dt>
<dt>jobs</dt>
<dd class="description">Job data</dd>
<dt>name</dt>
-<dd class="description"><code>NULL</code> = all destinations, otherwise show jobs for mydest</dd>
+<dd class="description"><code>NULL</code> = all destinations, otherwise show jobs for named destination</dd>
<dt>myjobs</dt>
<dd class="description">0 = all users, 1 = mine</dd>
<dt>whichjobs</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>jobs</dt>
<dd class="description">Job data</dd>
<dt>name</dt>
-<dd class="description"><code>NULL</code> = all destinations, otherwise show jobs for mydest</dd>
+<dd class="description"><code>NULL</code> = all destinations, otherwise show jobs for named destination</dd>
<dt>myjobs</dt>
<dd class="description">0 = all users, 1 = mine</dd>
<dt>whichjobs</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>name</dt>
-<dd class="description">Destination name or <code>NULL</code></dd>
+<dd class="description">Destination name or <code>NULL</code> for the default destination</dd>
<dt>instance</dt>
<dd class="description">Instance name or <code>NULL</code></dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>name</dt>
-<dd class="description">Printer name</dd>
+<dd class="description">Destination name</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Filename for PPD file</p>
<h4 class="discussion">Discussion</h4>
<p class="discussion">For classes, <code>cupsGetPPD</code> returns the PPD file for the first printer
-in the class.</p>
+in the class.<br>
+<br>
+The returned filename is stored in a static buffer and is overwritten with
+each call to <code>cupsGetPPD</code> or <a href="#cupsGetPPD2"><code>cupsGetPPD2</code></a>.</p>
<h3 class="function"><span class="info"> CUPS 1.1.21 </span><a name="cupsGetPPD2">cupsGetPPD2</a></h3>
<p class="description">Get the PPD file for a printer from the specified server.</p>
<p class="code">
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>name</dt>
-<dd class="description">Printer name</dd>
+<dd class="description">Destination name</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Filename for PPD file</p>
<h4 class="discussion">Discussion</h4>
<p class="discussion">For classes, <code>cupsGetPPD2</code> returns the PPD file for the first printer
-in the class.
+in the class.<br>
+<br>
+The returned filename is stored in a static buffer and is overwritten with
+each call to <a href="#cupsGetPPD"><code>cupsGetPPD</code></a> or <code>cupsGetPPD2</code>.
</p>
-<h3 class="function"><a name="cupsGetPPD3">cupsGetPPD3</a></h3>
+<h3 class="function"><span class="info"> CUPS 1.4 </span><a name="cupsGetPPD3">cupsGetPPD3</a></h3>
<p class="description">Get the PPD file for a printer on the specified
server if it has changed.</p>
<p class="code">
<dt>http</dt>
<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>name</dt>
-<dd class="description">Printer name</dd>
+<dd class="description">Destination name</dd>
<dt>modtime</dt>
<dd class="description">Modification time</dd>
<dt>buffer</dt>
status is an error.<br>
<br>
For classes, <code>cupsGetPPD3</code> returns the PPD file for the first printer
-in the class.</p>
+in the class.
+
+</p>
<h3 class="function"><a name="cupsGetPassword">cupsGetPassword</a></h3>
<p class="description">Get a password from the user.</p>
<p class="code">
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>name</dt>
<dd class="description">Name of PPD file ("ppd-name")</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Subject string or <code>NULL</code></p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">The returned string must be freed by the caller using free().
+<p class="discussion">The returned string must be freed by the caller using <code>free</code>.
</p>
<h3 class="function"><span class="info"> CUPS 1.2 </span><a name="cupsNotifyText">cupsNotifyText</a></h3>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>name</dt>
-<dd class="description">Printer or class name</dd>
+<dd class="description">Destination name</dd>
<dt>filename</dt>
<dd class="description">File to print</dd>
<dt>title</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>name</dt>
-<dd class="description">Printer or class name</dd>
+<dd class="description">Destination name</dd>
<dt>filename</dt>
<dd class="description">File to print</dd>
<dt>title</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>name</dt>
-<dd class="description">Printer or class name</dd>
+<dd class="description">Destination name</dd>
<dt>num_files</dt>
<dd class="description">Number of files</dd>
<dt>files</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>name</dt>
-<dd class="description">Printer or class name</dd>
+<dd class="description">Destination name</dd>
<dt>num_files</dt>
<dd class="description">Number of files</dd>
<dt>files</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>resource</dt>
<dd class="description">Resource name</dd>
<dt>fd</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>resource</dt>
<dd class="description">Resource name</dd>
<dt>filename</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>num_dests</dt>
<dd class="description">Number of destinations</dd>
<dt>dests</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or <code>CUPS_HTTP_DEFAULT</code></dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>name</dt>
-<dd class="description">Printer or class name</dd>
+<dd class="description">Destination name</dd>
<dt>job_id</dt>
<dd class="description">Job ID from <a href="#cupsCreateJob"><code>cupsCreateJob</code></a></dd>
<dt>docname</dt>
<dd class="description">Size of buffer</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
-<p class="description">Filename or NULL on error</p>
+<p class="description">Filename or <code>NULL</code> on error</p>
<h4 class="discussion">Discussion</h4>
<p class="discussion">The temporary filename is returned in the filename buffer.
This function is deprecated - use <a href="#cupsTempFd"><code>cupsTempFd</code></a> or
<dd class="description">Size of buffer</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
-<p class="description">CUPS file or NULL on error</p>
+<p class="description">CUPS file or <code>NULL</code> on error</p>
<h4 class="discussion">Discussion</h4>
<p class="discussion">The temporary filename is returned in the filename buffer.
The temporary file is opened for writing.
}
A:link, A:visited {
+ font-weight: normal;
text-decoration: none;
- font-weight: bold;
}
A:link:hover, A:visited:hover, A:active {
text-decoration: underline;
- font-weight: bold;
}
SUB, SUP {
}
A:link, A:visited {
+ font-weight: normal;
text-decoration: none;
- font-weight: bold;
}
A:link:hover, A:visited:hover, A:active {
text-decoration: underline;
- font-weight: bold;
}
SUB, SUP {
<a href="#cups_snmp_t">cups_snmp_t</a> *cupsSNMPRead (<br>
int fd,<br>
<a href="#cups_snmp_t">cups_snmp_t</a> *packet,<br>
- int msec<br>
+ double timeout<br>
);</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dd class="description">SNMP socket file descriptor</dd>
<dt>packet</dt>
<dd class="description">SNMP packet buffer</dd>
-<dt>msec</dt>
-<dd class="description">Timeout in milliseconds</dd>
+<dt>timeout</dt>
+<dd class="description">Timeout in seconds</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">SNMP packet or <code>NULL</code> if none</p>
int version,<br>
const char *community,<br>
const int *prefix,<br>
- int msec,<br>
+ double timeout,<br>
<a href="#cups_snmp_cb_t">cups_snmp_cb_t</a> cb,<br>
void *data<br>
);</p>
<dd class="description">Community name</dd>
<dt>prefix</dt>
<dd class="description">OID prefix</dd>
-<dt>msec</dt>
-<dd class="description">Timeout for each response in milliseconds</dd>
+<dt>timeout</dt>
+<dd class="description">Timeout for each response in seconds</dd>
<dt>cb</dt>
<dd class="description">Function to call for each response</dd>
<dt>data</dt>
<p class="discussion">This function queries all of the OIDs with the specified OID prefix,
calling the "cb" function for every response that is received.<br>
<br>
-The array pointed to by "prefix" is terminated by the value -1.
+The array pointed to by "prefix" is terminated by the value -1.<br>
+<br>
+If "timeout" is negative, <code>cupsSNMPWalk</code> will wait for a response
+indefinitely.
</p>
<h3 class="function"><span class="info"> CUPS 1.4 </span><a name="cupsSNMPWrite">cupsSNMPWrite</a></h3>
}
A:link, A:visited {
+ font-weight: normal;
text-decoration: none;
- font-weight: bold;
}
A:link:hover, A:visited:hover, A:active {
text-decoration: underline;
- font-weight: bold;
}
SUB, SUP {
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection to server</dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>method</dt>
<dd class="description">Request method ("GET", "POST", "PUT")</dd>
<dt>resource</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or CUPS_HTTP_DEFAULT</dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>request</dt>
<dd class="description">IPP request</dd>
<dt>resource</dt>
<dd class="description">HTTP resource for POST</dd>
<dt>filename</dt>
-<dd class="description">File to send or NULL for none</dd>
+<dd class="description">File to send or <code>NULL</code> for none</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Response data</p>
<h4 class="discussion">Discussion</h4>
<p class="discussion">This function sends the IPP request to the specified server, retrying
-and authenticating as necessary. The request is freed with ippDelete()
+and authenticating as necessary. The request is freed with <a href="#ippDelete"><code>ippDelete</code></a>
after receiving a valid IPP response.</p>
<h3 class="function"><span class="info"> CUPS 1.3 </span><a name="cupsDoIORequest">cupsDoIORequest</a></h3>
<p class="description">Do an IPP request with file descriptors.</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or CUPS_HTTP_DEFAULT</dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>request</dt>
<dd class="description">IPP request</dd>
<dt>resource</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or CUPS_HTTP_DEFAULT</dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>request</dt>
<dd class="description">IPP request</dd>
<dt>resource</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or CUPS_HTTP_DEFAULT</dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>resource</dt>
<dd class="description">HTTP resource for POST</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
-<p class="description">Response or NULL on HTTP error</p>
+<p class="description">Response or <code>NULL</code> on HTTP error</p>
<h4 class="discussion">Discussion</h4>
<p class="discussion">Use this function to get the response for an IPP request sent using
cupsSendDocument() or cupsSendRequest(). For requests that return
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or CUPS_HTTP_DEFAULT</dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>buffer</dt>
<dd class="description">Buffer to use</dd>
<dt>length</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or CUPS_HTTP_DEFAULT</dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>request</dt>
<dd class="description">IPP request</dd>
<dt>resource</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection or CUPS_HTTP_DEFAULT</dd>
+<dd class="description">Connection to server or <code>CUPS_HTTP_DEFAULT</code></dd>
<dt>buffer</dt>
<dd class="description">Bytes to write</dd>
<dt>length</dt>
<dd class="description">Number of bytes to write</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
-<p class="description">HTTP_CONTINUE if OK or HTTP status on error</p>
+<p class="description"><code>HTTP_CONTINUE</code> if OK or HTTP status on error</p>
<h4 class="discussion">Discussion</h4>
-<p class="discussion">This function is used after cupsSendRequest() or cupsStartDocument()
-to provide a PPD or document file as needed.
+<p class="discussion">This function is used after <a href="#cupsSendRequest"><code>cupsSendRequest</code></a> to provide a PPD and
+after <a href="#cupsStartDocument"><code>cupsStartDocument</code></a> to provide a document file.
</p>
<h3 class="function"><span class="info"> CUPS 1.2 </span><a name="httpAddrAny">httpAddrAny</a></h3>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>b</dt>
<dd class="description">1 = blocking, 0 = non-blocking</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 = no data, 1 = data available</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h3 class="function"><a name="httpClearFields">httpClearFields</a></h3>
<p class="description">Clear HTTP request fields.</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h3 class="function"><a name="httpClose">httpClose</a></h3>
<p class="description">Close an HTTP connection...</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h3 class="function"><a name="httpConnect">httpConnect</a></h3>
<p class="description">Connect to a HTTP server.</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>uri</dt>
<dd class="description">URI to delete</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>e</dt>
<dd class="description">New encryption preference</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Error code (errno) value</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h3 class="function"><span class="info"> CUPS 1.2 </span><a name="httpFlushWrite">httpFlushWrite</a></h3>
<p class="description">Flush data in write buffer.</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Bytes written or -1 on error</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>uri</dt>
<dd class="description">URI to get</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Authorization string</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">1 if blocking, 0 if non-blocking</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">File descriptor or -1 if none</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>field</dt>
<dd class="description">Field to get</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Content length</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Content length</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">HTTP status</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>field</dt>
<dd class="description">Field index</dd>
<dt>name</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>field</dt>
<dd class="description">Field index</dd>
<dt>name</dt>
<dt>length</dt>
<dd class="description">Max length of buffer</dd>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">Line or NULL</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>uri</dt>
<dd class="description">URI for head</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>uri</dt>
<dd class="description">URI for options</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>uri</dt>
<dd class="description">URI for post</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>uri</dt>
<dd class="description">URI to put</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>buffer</dt>
<dd class="description">Buffer for data</dd>
<dt>length</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>buffer</dt>
<dd class="description">Buffer for data</dd>
<dt>length</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">0 on success, non-zero on failure</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>scheme</dt>
<dd class="description">Auth scheme (NULL to clear it)</dd>
<dt>data</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>expect</dt>
<dd class="description">HTTP status to expect (HTTP_CONTINUE)</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>field</dt>
<dd class="description">Field index</dd>
<dt>value</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>length</dt>
<dd class="description">Length (0 for chunked)</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>uri</dt>
<dd class="description">URI for trace</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
</dl>
<h4 class="returnvalue">Return Value</h4>
<p class="description">HTTP status</p>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>msec</dt>
<dd class="description">Milliseconds to wait</dd>
</dl>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>buffer</dt>
<dd class="description">Buffer for data</dd>
<dt>length</dt>
<h4 class="parameters">Parameters</h4>
<dl>
<dt>http</dt>
-<dd class="description">HTTP connection</dd>
+<dd class="description">Connection to server</dd>
<dt>buffer</dt>
<dd class="description">Buffer for data</dd>
<dt>length</dt>
}
A:link, A:visited {
+ font-weight: normal;
text-decoration: none;
- font-weight: bold;
}
A:link:hover, A:visited:hover, A:active {
text-decoration: underline;
- font-weight: bold;
}
SUB, SUP {
}
A:link, A:visited {
+ font-weight: normal;
text-decoration: none;
- font-weight: bold;
}
A:link:hover, A:visited:hover, A:active {
text-decoration: underline;
- font-weight: bold;
}
SUB, SUP {
<LI>MacOS X:
<PRE CLASS="command">
-/System/Library/StartupItems/PrintingServices/PrintingServices restart
+sudo launchctl unload /System/Library/LaunchDaemons/org.cups.cupsd.plist
+sudo launchctl load /System/Library/LaunchDaemons/org.cups.cupsd.plist
</PRE></LI>
</UL>
struct jpeg_error_mgr jerr; /* Error handler info */
cups_ib_t *in, /* Input pixels */
*out; /* Output pixels */
- char header[16]; /* Photoshop JPEG header */
- int psjpeg; /* Non-zero if Photoshop JPEG */
+ jpeg_saved_marker_ptr marker; /* Pointer to marker data */
+ int psjpeg = 0; /* Non-zero if Photoshop CMYK JPEG */
static const char *cspaces[] =
{ /* JPEG colorspaces... */
"JCS_UNKNOWN",
};
- /*
- * Read the first 16 bytes to determine if this is a Photoshop JPEG file...
- */
-
- fread(header, sizeof(header), 1, fp);
- rewind(fp);
-
- psjpeg = memcmp(header + 6, "Photoshop ", 10) == 0;
-
/*
* Read the JPEG header...
*/
cinfo.err = jpeg_std_error(&jerr);
jpeg_create_decompress(&cinfo);
+ jpeg_save_markers(&cinfo, JPEG_APP0 + 14, 0xffff); /* Adobe JPEG */
jpeg_stdio_src(&cinfo, fp);
jpeg_read_header(&cinfo, 1);
+ /*
+ * Parse any Adobe APPE data embedded in the JPEG file. Since Adobe doesn't
+ * bother following standards, we have to invert the CMYK JPEG data written by
+ * Adobe apps...
+ */
+
+ for (marker = cinfo.marker_list; marker; marker = marker->next)
+ if (marker->marker == (JPEG_APP0 + 14) && marker->data_length >= 12 &&
+ !memcmp(marker->data, "Adobe", 5) && marker->data[11] == 2)
+ {
+ fputs("DEBUG: Adobe CMYK JPEG detected (inverting color values)\n",
+ stderr);
+ psjpeg = 1;
+ }
+
cinfo.quantize_colors = 0;
fprintf(stderr, "DEBUG: num_components = %d\n", cinfo.num_components);
.\"
.\" lpadmin man page for the Common UNIX Printing System (CUPS).
.\"
-.\" Copyright 2007 by Apple Inc.
+.\" Copyright 2007-2008 by Apple Inc.
.\" Copyright 1997-2006 by Easy Software Products.
.\"
.\" These coded instructions, statements, and computer programs are the
.\" which should have been included with this file. If this file is
.\" file is missing or damaged, see the license at "http://www.cups.org/".
.\"
-.TH lppasswd 1 "Common UNIX Printing System" "20 March 2006" "Apple Inc."
+.TH lppasswd 1 "Common UNIX Printing System" "22 February 2008" "Apple Inc."
.SH NAME
lppasswd \- add, change, or delete digest passwords.
.SH SYNOPSIS
.br
Specifies a group other than the default system group.
.SH SECURITY ISSUES
-The \fIlppasswd\fR command is installed setuid to root. While
-every attempt has been made to make it secure against exploits
-that could grant super-user privileges to unprivileged users,
-paranoid system administrators may wish to disable or change the
-ownership of the program to an unprivileged account.
+By default, the \fIlppasswd\fR program is not installed to allow ordinary
+users to change their passwords. To enable this, the \fIlppasswd\fR command
+must be made setuid to root with the command:
+.br
+.nf
+chmod u+s lppasswd
+.fi
+.PP
+While every attempt has been made to make \fIlppasswd\fR secure against
+exploits that could grant super-user privileges to unprivileged users,
+paranoid system administrators may wish to use Basic authentication with
+accounts managed by PAM instead.
.SH SEE ALSO
\fIlp(1)\fR, \fIlpr(1)\fR,
.br
http://localhost:631/help
.SH COPYRIGHT
-Copyright 2007 by Apple Inc.
+Copyright 2007-2008 by Apple Inc.
.\"
.\" End of "$Id: lppasswd.man 6649 2007-07-11 21:46:42Z mike $".
.\"
f 0755 root sys $BINDIR/cupstestppd systemv/cupstestppd
f 0755 root sys $BINDIR/lp systemv/lp
f 0755 root sys $BINDIR/lpoptions systemv/lpoptions
-f 4755 root sys $BINDIR/lppasswd systemv/lppasswd
+f 0755 root sys $BINDIR/lppasswd systemv/lppasswd
f 0755 root sys $BINDIR/lpq berkeley/lpq
f 0755 root sys $BINDIR/lpr berkeley/lpr
f 0755 root sys $BINDIR/lprm berkeley/lprm
* Load PPDs from LSB-defined locations...
*/
- load_ppds("/usr/local/share/ppd", "lsb/local", 1);
- load_ppds("/usr/share/ppd", "lsb/usr", 1);
- load_ppds("/opt/share/ppd", "lsb/opt", 1);
+ if (!access("/usr/local/share/ppd", 0))
+ load_ppds("/usr/local/share/ppd", "lsb/local", 1);
+ if (!access("/usr/share/ppd", 0))
+ load_ppds("/usr/share/ppd", "lsb/usr", 1);
+ if (!access("/opt/share/ppd", 0))
+ load_ppds("/opt/share/ppd", "lsb/opt", 1);
#endif /* __APPLE__ */
/*
snprintf(line, sizeof(line), "\tdisable = %s",
onoff ? "no" : "yes");
}
- else if (strstr(line, "disable ="))
- continue;
-
- cupsFilePrintf(nfp, "%s\n", line);
+ else if (!strstr(line, "disable ="))
+ cupsFilePrintf(nfp, "%s\n", line);
}
cupsFileClose(nfp);
cupsFileClose(ofp);
rename(newfile, LPDConfigFile + 9);
}
+#ifdef __APPLE__
else if (!strncmp(LPDConfigFile, "launchd:///", 11))
{
/*
cupsdStartProcess("/bin/launchctl", argv, envp, -1, -1, -1, -1, -1, 1,
NULL, &pid);
}
+#endif /* __APPLE__ */
+ else
+ cupsdLogMessage(CUPSD_LOG_INFO, "Unknown LPDConfigFile scheme!");
}
cupsFileClose(ofp);
rename(newfile, SMBConfigFile + 8);
}
- else if (!strncmp(SMBConfigFile, "launchd:///", 11))
- {
- /*
- * Enable/disable SMB via the launchctl command...
- */
-
- char *argv[5], /* Arguments for command */
- *envp[MAX_ENV]; /* Environment for command */
- int pid; /* Process ID */
-
-
- cupsdLoadEnv(envp, (int)(sizeof(envp) / sizeof(envp[0])));
- argv[0] = (char *)"launchctl";
- argv[1] = (char *)(onoff ? "load" : "unload");
- argv[2] = (char *)"-w";
- argv[3] = SMBConfigFile + 10;
- argv[4] = NULL;
-
- cupsdStartProcess("/bin/launchctl", argv, envp, -1, -1, -1, -1, -1, 1,
- NULL, &pid);
- }
+ else
+ cupsdLogMessage(CUPSD_LOG_INFO, "Unknown SMBConfigFile scheme!");
}
*
* Contents:
*
- * cupsdProcessIPPRequest() - Process an incoming IPP request.
- * cupsdTimeoutJob() - Timeout a job waiting on job files.
- * accept_jobs() - Accept print jobs to a printer.
- * add_class() - Add a class to the system.
- * add_file() - Add a file to a job.
- * add_job() - Add a job to a print queue.
- * add_job_state_reasons() - Add the "job-state-reasons" attribute based
- * upon the job and printer state...
- * add_job_subscriptions() - Add any subcriptions for a job.
- * add_job_uuid() - Add job-uuid attribute to a job.
- * add_printer() - Add a printer to the system.
- * add_printer_state_reasons() - Add the "printer-state-reasons" attribute
- * based upon the printer state...
- * add_queued_job_count() - Add the "queued-job-count" attribute for
- * apply_printer_defaults() - Apply printer default options to a job.
- * authenticate_job() - Set job authentication info.
- * cancel_all_jobs() - Cancel all print jobs.
- * cancel_job() - Cancel a print job.
- * cancel_subscription() - Cancel a subscription.
- * check_quotas() - Check quotas for a printer and user.
- * copy_attribute() - Copy a single attribute.
- * copy_attrs() - Copy attributes from one request to another.
- * copy_banner() - Copy a banner file to the requests directory
- * for the specified job.
- * copy_file() - Copy a PPD file or interface script...
- * copy_model() - Copy a PPD model file, substituting default
- * values as needed...
- * copy_job_attrs() - Copy job attributes.
- * copy_printer_attrs() - Copy printer attributes.
- * copy_subscription_attrs() - Copy subscription attributes.
- * create_job() - Print a file to a printer or class.
- * create_requested_array() - Create an array for the requested-attributes.
- * create_subscription() - Create a notification subscription.
- * delete_printer() - Remove a printer or class from the system.
- * get_default() - Get the default destination.
- * get_devices() - Get the list of available devices on the
- * local system.
- * get_document() - Get a copy of a job file.
- * get_job_attrs() - Get job attributes.
- * get_jobs() - Get a list of jobs for the specified printer.
- * get_notifications() - Get events for a subscription.
- * get_ppd() - Get a named PPD from the local system.
- * get_ppds() - Get the list of PPD files on the local
- * system.
- * get_printer_attrs() - Get printer attributes.
- * get_printers() - Get a list of printers.
- * get_subscription_attrs() - Get subscription attributes.
- * get_subscriptions() - Get subscriptions.
- * get_username() - Get the username associated with a request.
- * hold_job() - Hold a print job.
- * move_job() - Move a job to a new destination.
- * ppd_parse_line() - Parse a PPD default line.
- * print_job() - Print a file to a printer or class.
- * read_ps_line() - Read a line from a PS file...
- * read_ps_job_ticket() - Reads a job ticket embedded in a PS file.
- * reject_jobs() - Reject print jobs to a printer.
- * release_job() - Release a held print job.
- * restart_job() - Restart an old print job.
- * save_auth_info() - Save authentication information for a job.
- * save_krb5_creds() - Save Kerberos credentials for a job.
- * send_document() - Send a file to a printer or class.
- * send_http_error() - Send a HTTP error back to the IPP client.
- * send_ipp_status() - Send a status back to the IPP client.
- * set_default() - Set the default destination...
- * set_job_attrs() - Set job attributes.
- * set_printer_defaults() - Set printer default options from a request.
- * start_printer() - Start a printer.
- * stop_printer() - Stop a printer.
- * url_encode_attr() - URL-encode a string attribute.
- * url_encode_string() - URL-encode a string.
- * user_allowed() - See if a user is allowed to print to a queue.
- * validate_job() - Validate printer options and destination.
- * validate_name() - Make sure the printer name only contains
- * valid chars.
- * validate_user() - Validate the user for the request.
*/
/*
#endif /* HAVE_LIBPAPER */
#ifdef __APPLE__
+# include <ApplicationServices/ApplicationServices.h>
+# include <CoreFoundation/CoreFoundation.h>
# ifdef HAVE_MEMBERSHIP_H
# include <membership.h>
# endif /* HAVE_MEMBERSHIP_H */
static void add_printer_state_reasons(cupsd_client_t *con,
cupsd_printer_t *p);
static void add_queued_job_count(cupsd_client_t *con, cupsd_printer_t *p);
+#ifdef __APPLE__
+static unsigned apple_hash_name(const char *name);
+static void apple_init_profile(CMDeviceProfileInfo *profile, unsigned id,
+ const char *name, const char *iccfile);
+static void apple_register_profiles(cupsd_printer_t *p);
+static void apple_unregister_profiles(cupsd_printer_t *p);
+#endif /* __APPLE__ */
static void apply_printer_defaults(cupsd_printer_t *printer,
cupsd_job_t *job);
static void authenticate_job(cupsd_client_t *con, ipp_attribute_t *uri);
strerror(errno));
return;
}
- else
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "Copied interface script successfully!");
- chmod(dstfile, 0755);
- }
+
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
+ "Copied interface script successfully!");
+ chmod(dstfile, 0755);
}
snprintf(dstfile, sizeof(dstfile), "%s/ppd/%s.ppd", ServerRoot,
strerror(errno));
return;
}
- else
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "Copied PPD file successfully!");
- chmod(dstfile, 0644);
- }
+
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
+ "Copied PPD file successfully!");
+ chmod(dstfile, 0644);
+
+#ifdef __APPLE__
+ /*
+ * (Re)register color profiles...
+ */
+
+ apple_unregister_profiles(printer);
+ apple_register_profiles(printer);
+#endif /* __APPLE__ */
}
else
{
send_ipp_status(con, IPP_INTERNAL_ERROR, _("Unable to copy PPD file!"));
return;
}
- else
- {
- cupsdLogMessage(CUPSD_LOG_DEBUG,
- "Copied PPD file successfully!");
- chmod(dstfile, 0644);
- }
+
+ cupsdLogMessage(CUPSD_LOG_DEBUG,
+ "Copied PPD file successfully!");
+ chmod(dstfile, 0644);
+
+#ifdef __APPLE__
+ /*
+ * (Re)register color profiles...
+ */
+
+ apple_unregister_profiles(printer);
+ apple_register_profiles(printer);
+#endif /* __APPLE__ */
}
}
}
+#ifdef __APPLE__
+/*
+ * 'apple_hash_name()' - Calculate a 32-bit hash of a printer/profile name.
+ */
+
+static unsigned /* O - Hash value */
+apple_hash_name(const char *name) /* I - Printer/profile name */
+{
+ int mult; /* Multiplier */
+ unsigned hash = 0; /* Hash value */
+
+
+ for (mult = 1; *name && mult <= 128; mult ++, name ++)
+ hash += (*name & 255) & mult;
+
+ return (hash);
+}
+
+
+/*
+ * 'apple_init_profile()' - Initialize a color profile.
+ */
+
+static void
+apple_init_profile(
+ CMDeviceProfileInfo *profile, /* I - Profile record */
+ unsigned id, /* I - Profile ID */
+ const char *name, /* I - Profile name */
+ const char *iccfile) /* I - ICC filename */
+{
+ char url[1024]; /* URL for profile filename */
+ CFMutableDictionaryRef dict; /* Dictionary for name */
+
+
+ if (iccfile)
+ httpAssembleURI(HTTP_URI_CODING_ALL, url, sizeof(url), "file", NULL, "", 0,
+ iccfile);
+
+ dict = CFDictionaryCreateMutable(kCFAllocatorDefault, 0,
+ &kCFTypeDictionaryKeyCallBacks,
+ &kCFTypeDictionaryValueCallBacks);
+
+ profile->dataVersion = cmDeviceProfileInfoVersion1;
+ profile->profileID = id;
+ profile->profileLoc.locType = iccfile ? cmPathBasedProfile : cmNoProfileBase;
+ profile->profileName = dict;
+
+ if (iccfile)
+ strlcpy(profile->profileLoc.u.pathLoc.path, iccfile,
+ sizeof(profile->profileLoc.u.pathLoc.path));
+
+ CFDictionarySetValue(dict, CFSTR("PMColorDeviceProfileID"),
+ CFNumberCreate(kCFAllocatorDefault,
+ kCFNumberSInt32Type,
+ &profile->profileID));
+ CFDictionarySetValue(dict, CFSTR("PMColorDeviceProfileName"),
+ CFStringCreateWithCString(kCFAllocatorDefault,
+ name,
+ kCFStringEncodingUTF8));
+ if (iccfile)
+ CFDictionarySetValue(dict, CFSTR("PMColorDeviceProfileURL"),
+ CFStringCreateWithCString(kCFAllocatorDefault,
+ url,
+ kCFStringEncodingUTF8));
+}
+
+
+/*
+ * 'apple_register_profiles()' - Register color profiles for a printer.
+ */
+
+static void
+apple_register_profiles(
+ cupsd_printer_t *p) /* I - Printer */
+{
+ int i; /* Looping var */
+ char ppdfile[1024], /* PPD filename */
+ iccfile[1024]; /* ICC filename */
+ ppd_file_t *ppd; /* PPD file */
+ ppd_attr_t *attr; /* cupsICCProfile attributes */
+ ppd_option_t *cm_option; /* Color model option */
+ ppd_choice_t *cm_choice; /* Color model choice */
+ int num_profiles; /* Number of profiles */
+ CMError error; /* Last error */
+ unsigned id; /* Printer device ID */
+ CFMutableDictionaryRef name; /* Printer device name dictionary */
+ CMDeviceScope scope = /* Scope of the registration */
+ {
+ kCFPreferencesAnyUser,
+ kCFPreferencesCurrentHost
+ };
+ CMDeviceProfileArrayPtr profiles; /* Profiles */
+ CMDeviceProfileInfo *profile; /* Current profile */
+
+
+ /*
+ * Try opening the PPD file for this printer...
+ */
+
+ snprintf(ppdfile, sizeof(ppdfile), "%s/ppd/%s.ppd", ServerRoot, p->name);
+ if ((ppd = ppdOpenFile(ppdfile)) == NULL)
+ return;
+
+ /*
+ * See if we have any profiles...
+ */
+
+ for (num_profiles = 0, attr = ppdFindAttr(ppd, "cupsICCProfile", NULL);
+ attr;
+ attr = ppdFindNextAttr(ppd, "cupsICCProfile", NULL))
+ if (attr->spec[0] && attr->value && attr->value[0])
+ {
+ if (attr->value[0] != '/')
+ snprintf(iccfile, sizeof(iccfile), "%s/profiles/%s", DataDir,
+ attr->value);
+ else
+ strlcpy(iccfile, attr->value, sizeof(iccfile));
+
+ if (access(iccfile, 0))
+ continue;
+
+ num_profiles ++;
+ }
+
+ /*
+ * If we have profiles, add them...
+ */
+
+ if (num_profiles > 0)
+ {
+ /*
+ * Build the array of profiles...
+ *
+ * Note: This calloc actually requests slightly more memory than needed.
+ */
+
+ if ((profiles = calloc(num_profiles, sizeof(CMDeviceProfileArray))) == NULL)
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Unable to allocate memory for %d profiles!",
+ num_profiles);
+ ppdClose(ppd);
+ return;
+ }
+
+ profiles->profileCount = num_profiles;
+
+ for (profile = profiles->profiles,
+ attr = ppdFindAttr(ppd, "cupsICCProfile", NULL);
+ attr;
+ attr = ppdFindNextAttr(ppd, "cupsICCProfile", NULL))
+ if (attr->spec[0] && attr->value && attr->value[0])
+ {
+ /*
+ * Add this profile...
+ */
+
+ if (attr->value[0] != '/')
+ snprintf(iccfile, sizeof(iccfile), "%s/profiles/%s", DataDir,
+ attr->value);
+ else
+ strlcpy(iccfile, attr->value, sizeof(iccfile));
+
+ if (access(iccfile, 0))
+ continue;
+
+ apple_init_profile(profile, apple_hash_name(attr->spec), attr->spec,
+ iccfile);
+
+ profile ++;
+ }
+ }
+ else if ((cm_option = ppdFindOption(ppd, "ColorModel")) != NULL)
+ {
+ /*
+ * Extract standard grayscale, RGB, or CMYK profiles...
+ */
+
+ for (num_profiles = 0, i = cm_option->num_choices,
+ cm_choice = cm_option->choices;
+ i > 0;
+ i --, cm_choice ++)
+ if (!strcmp(cm_choice->choice, "Gray") ||
+ !strcmp(cm_choice->choice, "RGB") ||
+ !strcmp(cm_choice->choice, "CMYK"))
+ num_profiles ++;
+
+ /*
+ * Build the array of profiles...
+ *
+ * Note: This calloc actually requests slightly more memory than needed.
+ */
+
+ if ((profiles = calloc(num_profiles, sizeof(CMDeviceProfileArray))) == NULL)
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Unable to allocate memory for %d profiles!",
+ num_profiles);
+ ppdClose(ppd);
+ return;
+ }
+
+ profiles->profileCount = num_profiles;
+
+ for (profile = profiles->profiles, i = cm_option->num_choices,
+ cm_choice = cm_option->choices;
+ i > 0;
+ i --, cm_choice ++)
+ if (!strcmp(cm_choice->choice, "Gray"))
+ {
+ apple_init_profile(profile, apple_hash_name("Gray.."), "Gray", NULL);
+ profile ++;
+ }
+ else if (!strcmp(cm_choice->choice, "RGB"))
+ {
+ apple_init_profile(profile, apple_hash_name("RGB.."), "RGB", NULL);
+ profile ++;
+ }
+ else if (!strcmp(cm_choice->choice, "CMYK"))
+ {
+ apple_init_profile(profile, apple_hash_name("CMYK.."), "CMYK", NULL);
+ profile ++;
+ }
+ }
+ else
+ {
+ /*
+ * Use the default colorspace...
+ */
+
+ num_profiles = 1;
+
+ if ((profiles = calloc(1, sizeof(CMDeviceProfileArray))) == NULL)
+ {
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Unable to allocate memory for %d profiles!",
+ num_profiles);
+ ppdClose(ppd);
+ return;
+ }
+
+ profiles->profileCount = 1;
+
+ switch (ppd->colorspace)
+ {
+ case PPD_CS_GRAY :
+ apple_init_profile(profiles->profiles, apple_hash_name("Gray.."),
+ "Gray", NULL);
+ break;
+ case PPD_CS_RGB :
+ apple_init_profile(profiles->profiles, apple_hash_name("RGB.."),
+ "RGB", NULL);
+ break;
+ case PPD_CS_CMYK :
+ apple_init_profile(profiles->profiles, apple_hash_name("CMYK.."),
+ "CMYK", NULL);
+ break;
+
+ default :
+ free(profiles);
+ num_profiles = 0;
+ break;
+ }
+ }
+
+ if (num_profiles > 0)
+ {
+ /*
+ * Get the device ID hash and pathelogical name dictionary.
+ */
+
+ cupsdLogMessage(CUPSD_LOG_INFO, "Registering ICC color profiles for \"%s\"",
+ p->name);
+
+ id = apple_hash_name(p->name);
+ name = CFDictionaryCreateMutable(kCFAllocatorDefault, 0,
+ &kCFTypeDictionaryKeyCallBacks,
+ &kCFTypeDictionaryValueCallBacks);
+
+ CFDictionarySetValue(name, CFSTR("en"),
+ CFStringCreateWithCString(kCFAllocatorDefault, p->name,
+ kCFStringEncodingUTF8));
+
+ /*
+ * Register the device with ColorSync...
+ */
+
+ error = CMRegisterColorDevice(cmPrinterDeviceClass, id, name, &scope);
+
+ /*
+ * Register the profiles...
+ */
+
+ if (error == noErr)
+ error = CMSetDeviceFactoryProfiles(cmPrinterDeviceClass, id,
+ profiles->profiles[0].profileID,
+ profiles);
+
+ /*
+ * Clean up...
+ */
+
+ if (error != noErr)
+ cupsdLogMessage(CUPSD_LOG_ERROR,
+ "Unable to register ICC color profiles for \"%s\" - %d",
+ p->name, (int)error);
+
+ for (profile = profiles->profiles;
+ num_profiles > 0;
+ profile ++, num_profiles --)
+ CFRelease(profile->profileName);
+
+ free(profiles);
+ CFRelease(name);
+ }
+
+ ppdClose(ppd);
+}
+
+
+/*
+ * 'apple_unregister_profiles()' - Remove color profiles for the specified
+ * printer.
+ */
+
+static void
+apple_unregister_profiles(
+ cupsd_printer_t *p) /* I - Printer */
+{
+ CMUnregisterColorDevice(cmPrinterDeviceClass, apple_hash_name(p->name));
+}
+#endif /* __APPLE__ */
+
/*
* 'apply_printer_defaults()' - Apply printer default options to a job.
*/
printer->name);
unlink(filename);
+#ifdef __APPLE__
+ /*
+ * Unregister color profiles...
+ */
+
+ apple_unregister_profiles(printer);
+#endif /* __APPLE__ */
+
if (dtype & CUPS_PRINTER_CLASS)
{
cupsdLogMessage(CUPSD_LOG_INFO, "Class \"%s\" deleted by \"%s\".",
+++ /dev/null
-//
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-public class CUPSPrinter
-{
- String printer_name;
- String printer_location;
- String printer_info;
- String printer_more_info;
-
- String[] printer_uri_supported; // Strings
- String[] uri_authentication_supported; // Strings
- String[] uri_security_supported; // Strings
-
- String attributes_charset;
- String attributes_natural_language;
-
- int printer_state;
- String printer_state_reasons;
-
- boolean printer_is_accepting_jobs;
-
- long printer_up_time;
- long printer_current_time;
-
- int queued_job_count;
-
- String[] pdl_override_supported;
- String[] ipp_versions_supported;
-
- int[] operations_supported; // Integers
-
- boolean multiple_document_jobs_supported;
- int multiple_operation_time_out;
- int[] multiple_document_handling_supported; // Integers
-
- String charset_configured;
- String natural_language_configured;
- String generated_natural_language_supported;
- String[] charset_supported; // Strings
-
- String document_format_default;
- String[] document_format_supported; // Strings
-
- String[] compression_supported; // Strings
-
- int job_priority_default;
- int job_priority_supported;
-
- int copies_default;
- int lower_copies_supported;
- int upper_copies_supported;
-
- boolean page_ranges_supported;
-
- int number_up_default;
- int[] number_up_supported; // integers
-
-
- int orientation_requested_default;
- int[] orientation_requested_supported; // Integers
-
- int job_quota_period;
- int job_k_limit;
- int job_page_limit;
-
- String job_sheets_default; // Should this be a list too?
- String[] job_sheets_supported; // Strings
-
- String device_uri;
-
- boolean color_supported;
- int pages_per_minute;
-
- String printer_make_and_model;
-
- String media_default;
- String[] media_supported; // Strings
-
- int finishings_default;
- int[] finishings_supported; // Integers
-
- int printer_type;
-
-
-
- // ---------------------------------------------
- //
- // Basic constructor.
- //
- public CUPSPrinter()
- {
- }
-
-
-
-
- // ---------------------------------------------
- //
- // Move the attributes from an ipp request
- // into a CUPSPrinter object.
- //
- public void updateAttribute( IPPAttribute a )
- {
- IPPValue v;
- int i;
-
-
- if (a.name.compareTo("printer-name") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_name = v.text;
- }
- else if (a.name.compareTo("printer-location") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_location = v.text;
- }
- else if (a.name.compareTo("printer-info") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_info = v.text;
- }
- else if (a.name.compareTo("printer-more-info") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_more_info = v.text;
- }
- else if (a.name.compareTo("printer-uri-supported") == 0)
- {
- printer_uri_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- printer_uri_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("uri-authentication-supported") == 0)
- {
- uri_authentication_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- uri_authentication_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("uri-security-supported") == 0)
- {
- uri_security_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- uri_security_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("attributes-charset") == 0)
- {
- v = (IPPValue)a.values.get(0);
- attributes_charset = v.text;
- }
- else if (a.name.compareTo("attributes-natural-language") == 0)
- {
- v = (IPPValue)a.values.get(0);
- attributes_natural_language = v.text;
- }
- else if (a.name.compareTo("printer-state") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_state = v.integer_value;
- }
- else if (a.name.compareTo("printer-state-reasons") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_state_reasons = v.text;
- }
- else if (a.name.compareTo("printer-is-accepting-jobs") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_is_accepting_jobs = v.boolean_value;
- }
- else if (a.name.compareTo("printer-up-time") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_up_time = v.integer_value;
- }
- else if (a.name.compareTo("printer-current-time") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_current_time = v.unix_time; // *** FIX ***
- }
- else if (a.name.compareTo("queue-job-count") == 0)
- {
- v = (IPPValue)a.values.get(0);
- queued_job_count = v.integer_value;
- }
- else if (a.name.compareTo("pdl-override-supported") == 0)
- {
- pdl_override_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- pdl_override_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("ipp-versions-supported") == 0)
- {
- ipp_versions_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- ipp_versions_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("operations-supported") == 0)
- {
- operations_supported = new int[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- operations_supported[i] = v.integer_value;
- }
- }
- else if (a.name.compareTo("multiple-document-jobs-supported") == 0)
- {
- v = (IPPValue)a.values.get(0);
- multiple_document_jobs_supported = v.boolean_value;
- }
- else if (a.name.compareTo("multiple-operation-time-out") == 0)
- {
- v = (IPPValue)a.values.get(0);
- multiple_operation_time_out = v.integer_value;
- }
- else if (a.name.compareTo("multiple-document-handling-supported") == 0)
- {
- multiple_document_handling_supported = new int[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- multiple_document_handling_supported[i] = v.integer_value;
- }
- }
- else if (a.name.compareTo("charset-configured") == 0)
- {
- v = (IPPValue)a.values.get(0);
- charset_configured = v.text;
- }
- else if (a.name.compareTo("natural-language-configured") == 0)
- {
- v = (IPPValue)a.values.get(0);
- natural_language_configured = v.text;
- }
- else if (a.name.compareTo("generated-natural-language-supported") == 0)
- {
- // *** Should this be a list too?
- v = (IPPValue)a.values.get(0);
- generated_natural_language_supported = v.text;
- }
- else if (a.name.compareTo("charset-supported") == 0)
- {
- charset_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- charset_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("document-format-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- document_format_default = v.text;
- }
- else if (a.name.compareTo("document-format-supported") == 0)
- {
- document_format_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- document_format_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("compression-supported") == 0)
- {
- compression_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- compression_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("job-priority-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- job_priority_default = v.integer_value;
- }
- else if (a.name.compareTo("job-priority-supported") == 0)
- {
- // *** Should be a list? ***
- v = (IPPValue)a.values.get(0);
- job_priority_supported = v.integer_value;
- }
- else if (a.name.compareTo("copies-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- copies_default = v.integer_value;
- }
- else if (a.name.compareTo("copies-supported") == 0)
- {
- v = (IPPValue)a.values.get(0);
- lower_copies_supported = v.lower;
- upper_copies_supported = v.upper;
- }
- else if (a.name.compareTo("page-ranges-supported") == 0)
- {
- v = (IPPValue)a.values.get(0);
- page_ranges_supported = v.boolean_value;
- }
- else if (a.name.compareTo("number-up-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- number_up_default = v.integer_value;
- }
- else if (a.name.compareTo("number-up-supported") == 0)
- {
- number_up_supported = new int[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- number_up_supported[i] = v.integer_value;
- }
- }
- else if (a.name.compareTo("orientation-requested-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- orientation_requested_default = v.integer_value;
- }
- else if (a.name.compareTo("orientation-requested-supported") == 0)
- {
- orientation_requested_supported = new int[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- orientation_requested_supported[i] = v.integer_value;
- }
- }
- else if (a.name.compareTo("job-quota-period") == 0)
- {
- v = (IPPValue)a.values.get(0);
- job_quota_period = v.integer_value;
- }
- else if (a.name.compareTo("job-k-limit") == 0)
- {
- v = (IPPValue)a.values.get(0);
- job_k_limit = v.integer_value;
- }
- else if (a.name.compareTo("job-page-limit") == 0)
- {
- v = (IPPValue)a.values.get(0);
- job_page_limit = v.integer_value;
- }
- else if (a.name.compareTo("job-sheets-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- job_sheets_default = v.text;
- }
- else if (a.name.compareTo("job-sheets-supported") == 0)
- {
- job_sheets_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- job_sheets_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("device-uri") == 0)
- {
- v = (IPPValue)a.values.get(0);
- device_uri = v.text;
- }
- else if (a.name.compareTo("color-supported") == 0)
- {
- v = (IPPValue)a.values.get(0);
- color_supported = v.boolean_value;
- }
- else if (a.name.compareTo("pages-per-minute") == 0)
- {
- v = (IPPValue)a.values.get(0);
- pages_per_minute = v.integer_value;
- }
- else if (a.name.compareTo("printer-make-and-model") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_make_and_model = v.text;
- }
- else if (a.name.compareTo("media-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- media_default = v.text;
- }
- else if (a.name.compareTo("media-supported") == 0)
- {
- media_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- media_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("finishings-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- finishings_default = v.integer_value;
- }
- else if (a.name.compareTo("finishings-supported") == 0)
- {
- finishings_supported = new int[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- finishings_supported[i] = v.integer_value;
- }
- }
- else if (a.name.compareTo("printer-type") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_type = v.integer_value;
- }
-
- } // End of updateAttribute()
-
-
-
-
-
-} // End of CUPSPrinter class
-
-
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-All Classes
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-<FONT size="+1" CLASS="FrameHeadingFont">
-<B>All Classes</B></FONT>
-<BR>
-
-<TABLE BORDER="0" WIDTH="100%">
-<TR>
-<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/easysw/cups/Cups.html" TARGET="classFrame">Cups</A>
-<BR>
-<A HREF="com/easysw/cups/CupsJob.html" TARGET="classFrame">CupsJob</A>
-<BR>
-<A HREF="com/easysw/cups/CupsPrinter.html" TARGET="classFrame">CupsPrinter</A>
-<BR>
-<A HREF="com/easysw/cups/IPP.html" TARGET="classFrame">IPP</A>
-<BR>
-<A HREF="com/easysw/cups/IPPAttribute.html" TARGET="classFrame">IPPAttribute</A>
-<BR>
-<A HREF="com/easysw/cups/IPPDefs.html" TARGET="classFrame">IPPDefs</A>
-<BR>
-<A HREF="com/easysw/cups/IPPError.html" TARGET="classFrame">IPPError</A>
-<BR>
-<A HREF="com/easysw/cups/IPPHttp.html" TARGET="classFrame">IPPHttp</A>
-<BR>
-<A HREF="com/easysw/cups/IPPMD5.html" TARGET="classFrame">IPPMD5</A>
-<BR>
-<A HREF="com/easysw/cups/IPPRequest.html" TARGET="classFrame">IPPRequest</A>
-<BR>
-<A HREF="com/easysw/cups/IPPStatus.html" TARGET="classFrame">IPPStatus</A>
-<BR>
-<A HREF="com/easysw/cups/IPPURLConnection.html" TARGET="classFrame">IPPURLConnection</A>
-<BR>
-<A HREF="com/easysw/cups/IPPValue.html" TARGET="classFrame">IPPValue</A>
-<BR>
-</FONT></TD>
-</TR>
-</TABLE>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class Cups
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV CLASS
- <A HREF="../../../com/easysw/cups/CupsJob.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="Cups.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class Cups</H2>
-<PRE>
-java.lang.Object
- |
- +--<B>com.easysw.cups.Cups</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>Cups</B><DT>extends java.lang.Object</DL>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#Cups()">Cups</A></B>()</CODE>
-
-<BR>
- Void constructor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#Cups(java.net.URL)">Cups</A></B>(java.net.URL p_url)</CODE>
-
-<BR>
- Constructor using a <code>URL</code>.</TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#cupsCancelJob(java.lang.String, int, java.lang.String)">cupsCancelJob</A></B>(java.lang.String printer_name,
- int p_job_id,
- java.lang.String p_user_name)</CODE>
-
-<BR>
- Cancel a job - send a job cancel request to the server.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#cupsGetDefault()">cupsGetDefault</A></B>()</CODE>
-
-<BR>
- Get default destination.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="../../../com/easysw/cups/CupsJob.html">CupsJob</A>[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#cupsGetJobs(boolean, boolean)">cupsGetJobs</A></B>(boolean showMyJobs,
- boolean showCompleted)</CODE>
-
-<BR>
- Get a list of jobs.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.util.List</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#cupsGetPrinterAttributes(java.lang.String)">cupsGetPrinterAttributes</A></B>(java.lang.String printer_name)</CODE>
-
-<BR>
- Get printer attributes</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#cupsGetPrinters()">cupsGetPrinters</A></B>()</CODE>
-
-<BR>
- Get a list of printers.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.util.List</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#cupsGetPrinterStatus(java.lang.String)">cupsGetPrinterStatus</A></B>(java.lang.String printer_name)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="../../../com/easysw/cups/CupsJob.html">CupsJob</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#cupsPrintFile(java.lang.String, com.easysw.cups.IPPAttribute[])">cupsPrintFile</A></B>(java.lang.String p_filename,
- <A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A>[] p_attrs)</CODE>
-
-<BR>
- Print a file.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#doRequest()">doRequest</A></B>()</CODE>
-
-<BR>
- Do a CUPS request to the server.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#doRequest(java.io.File)">doRequest</A></B>(java.io.File file)</CODE>
-
-<BR>
- Send a FILE to the CUPS server.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#doRequest(java.lang.String)">doRequest</A></B>(java.lang.String from)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#getEncrypt()">getEncrypt</A></B>()</CODE>
-
-<BR>
- Get the value of the <code>encrypt</code> member.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#setDest(java.lang.String)">setDest</A></B>(java.lang.String p_dest)</CODE>
-
-<BR>
- Set the value of the <code>dest</code> member.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#setEncrypt(boolean)">setEncrypt</A></B>(boolean p_encrypt)</CODE>
-
-<BR>
- Set the value of the <code>encrypt</code> member.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#setInstance(java.lang.String)">setInstance</A></B>(java.lang.String p_instance)</CODE>
-
-<BR>
- Set the value of the <code>instance</code> member.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#setPasswd(java.lang.String)">setPasswd</A></B>(java.lang.String p_passwd)</CODE>
-
-<BR>
- Set the value of the <code>passwd</code> member.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#setPath(java.lang.String)">setPath</A></B>(java.lang.String p_path)</CODE>
-
-<BR>
- Set the value of the <code>path</code> member.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#setPort(int)">setPort</A></B>(int p_port)</CODE>
-
-<BR>
- Set the value of the <code>port</code> member.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#setProtocol(java.lang.String)">setProtocol</A></B>(java.lang.String p_protocol)</CODE>
-
-<BR>
- Set the value of the <code>protocol</code> member.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#setServer(java.lang.String)">setServer</A></B>(java.lang.String p_server)</CODE>
-
-<BR>
- Set the value of the <code>server</code> member.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/Cups.html#setUser(java.lang.String)">setUser</A></B>(java.lang.String p_user)</CODE>
-
-<BR>
- Set the value of the <code>user</code> member.</TD>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="Cups()"><!-- --></A><H3>
-Cups</H3>
-<PRE>
-public <B>Cups</B>()</PRE>
-<DL>
-<DD>Void constructor.</DL>
-<HR>
-
-<A NAME="Cups(java.net.URL)"><!-- --></A><H3>
-Cups</H3>
-<PRE>
-public <B>Cups</B>(java.net.URL p_url)</PRE>
-<DL>
-<DD>Constructor using a <code>URL</code>.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_url</code></CODE> - A <code>URL</code> object.</DL>
-</DD>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="setProtocol(java.lang.String)"><!-- --></A><H3>
-setProtocol</H3>
-<PRE>
-public void <B>setProtocol</B>(java.lang.String p_protocol)</PRE>
-<DL>
-<DD>Set the value of the <code>protocol</code> member. Valid values
- are ipp or http.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_protocol</code></CODE> - String with protocol.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setServer(java.lang.String)"><!-- --></A><H3>
-setServer</H3>
-<PRE>
-public void <B>setServer</B>(java.lang.String p_server)</PRE>
-<DL>
-<DD>Set the value of the <code>server</code> member. This is an
- IP address or a hostname.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_server</code></CODE> - IP address or hostname.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setPort(int)"><!-- --></A><H3>
-setPort</H3>
-<PRE>
-public void <B>setPort</B>(int p_port)</PRE>
-<DL>
-<DD>Set the value of the <code>port</code> member.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_port</code></CODE> - Port number.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setUser(java.lang.String)"><!-- --></A><H3>
-setUser</H3>
-<PRE>
-public void <B>setUser</B>(java.lang.String p_user)</PRE>
-<DL>
-<DD>Set the value of the <code>user</code> member.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_user</code></CODE> - User name.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setPasswd(java.lang.String)"><!-- --></A><H3>
-setPasswd</H3>
-<PRE>
-public void <B>setPasswd</B>(java.lang.String p_passwd)</PRE>
-<DL>
-<DD>Set the value of the <code>passwd</code> member.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_passwd</code></CODE> - Password.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setDest(java.lang.String)"><!-- --></A><H3>
-setDest</H3>
-<PRE>
-public void <B>setDest</B>(java.lang.String p_dest)</PRE>
-<DL>
-<DD>Set the value of the <code>dest</code> member.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_dest</code></CODE> - Destination.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setInstance(java.lang.String)"><!-- --></A><H3>
-setInstance</H3>
-<PRE>
-public void <B>setInstance</B>(java.lang.String p_instance)</PRE>
-<DL>
-<DD>Set the value of the <code>instance</code> member.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_instance</code></CODE> - Instance.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setEncrypt(boolean)"><!-- --></A><H3>
-setEncrypt</H3>
-<PRE>
-public void <B>setEncrypt</B>(boolean p_encrypt)</PRE>
-<DL>
-<DD>Set the value of the <code>encrypt</code> member.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_enrypt</code></CODE> - Yes or no.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getEncrypt()"><!-- --></A><H3>
-getEncrypt</H3>
-<PRE>
-public boolean <B>getEncrypt</B>()</PRE>
-<DL>
-<DD>Get the value of the <code>encrypt</code> member.<DD><DL>
-<DT><B>Returns:</B><DD><code>boolean</code> Encryption on or off.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setPath(java.lang.String)"><!-- --></A><H3>
-setPath</H3>
-<PRE>
-public void <B>setPath</B>(java.lang.String p_path)</PRE>
-<DL>
-<DD>Set the value of the <code>path</code> member. This is the
- path that will be used in the POST method.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_path</code></CODE> - Path on server.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="doRequest(java.lang.String)"><!-- --></A><H3>
-doRequest</H3>
-<PRE>
-public boolean <B>doRequest</B>(java.lang.String from)
- throws java.io.IOException</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="doRequest()"><!-- --></A><H3>
-doRequest</H3>
-<PRE>
-public boolean <B>doRequest</B>()
- throws java.io.IOException</PRE>
-<DL>
-<DD>Do a CUPS request to the server.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_dest</code></CODE> - Destination name.<DT><B>Returns:</B><DD><code>boolean</code> True on success, false otherwise</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="doRequest(java.io.File)"><!-- --></A><H3>
-doRequest</H3>
-<PRE>
-public boolean <B>doRequest</B>(java.io.File file)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Send a FILE to the CUPS server.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>file</code></CODE> - File to send.<DT><B>Returns:</B><DD><code>boolean</code> True on success, false otherwise</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="cupsGetJobs(boolean, boolean)"><!-- --></A><H3>
-cupsGetJobs</H3>
-<PRE>
-public <A HREF="../../../com/easysw/cups/CupsJob.html">CupsJob</A>[] <B>cupsGetJobs</B>(boolean showMyJobs,
- boolean showCompleted)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Get a list of jobs.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>showMyJobs</code></CODE> - Show only jobs for user.<DD><CODE><code>showCompleted</code></CODE> - Show completed OR active jobs.<DT><B>Returns:</B><DD><code>CupsJob[]</code> Array of job objects, or null.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="cupsGetPrinters()"><!-- --></A><H3>
-cupsGetPrinters</H3>
-<PRE>
-public java.lang.String[] <B>cupsGetPrinters</B>()
- throws java.io.IOException</PRE>
-<DL>
-<DD>Get a list of printers.<DD><DL>
-<DT><B>Returns:</B><DD><code>String[]</code> Array of printers, or null.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="cupsGetDefault()"><!-- --></A><H3>
-cupsGetDefault</H3>
-<PRE>
-public java.lang.String <B>cupsGetDefault</B>()
- throws java.io.IOException</PRE>
-<DL>
-<DD>Get default destination.<DD><DL>
-<DT><B>Returns:</B><DD><code>String</code> Name of default printer, or null.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="cupsGetPrinterAttributes(java.lang.String)"><!-- --></A><H3>
-cupsGetPrinterAttributes</H3>
-<PRE>
-public java.util.List <B>cupsGetPrinterAttributes</B>(java.lang.String printer_name)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Get printer attributes<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>printer_name</code></CODE> - Name of printer to get info for.<DT><B>Returns:</B><DD><code>List</code> List of attributes.<DT><B>See Also: </B><DD><code>CupsPrinter</code></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="cupsPrintFile(java.lang.String, com.easysw.cups.IPPAttribute[])"><!-- --></A><H3>
-cupsPrintFile</H3>
-<PRE>
-public <A HREF="../../../com/easysw/cups/CupsJob.html">CupsJob</A> <B>cupsPrintFile</B>(java.lang.String p_filename,
- <A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A>[] p_attrs)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Print a file.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_filename</code></CODE> - Path of file to print.<DD><CODE><code>p_attrs[]</code></CODE> - Array of print job attributes.<DT><B>Returns:</B><DD><code>CupsJob</code> Object with job info.<DT><B>See Also: </B><DD><code>CupsJob</code></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="cupsCancelJob(java.lang.String, int, java.lang.String)"><!-- --></A><H3>
-cupsCancelJob</H3>
-<PRE>
-public int <B>cupsCancelJob</B>(java.lang.String printer_name,
- int p_job_id,
- java.lang.String p_user_name)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Cancel a job - send a job cancel request to the server.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>printer_name</code></CODE> - Destination.<DD><CODE><code>p_job_id</code></CODE> - ID of job.<DD><CODE><code>p_user_name</code></CODE> - Requesting user name.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="cupsGetPrinterStatus(java.lang.String)"><!-- --></A><H3>
-cupsGetPrinterStatus</H3>
-<PRE>
-public java.util.List <B>cupsGetPrinterStatus</B>(java.lang.String printer_name)
- throws java.io.IOException</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV CLASS
- <A HREF="../../../com/easysw/cups/CupsJob.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="Cups.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class CupsJob
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/Cups.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/CupsPrinter.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="CupsJob.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class CupsJob</H2>
-<PRE>
-java.lang.Object
- |
- +--<B>com.easysw.cups.CupsJob</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>CupsJob</B><DT>extends java.lang.Object</DL>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#document_format">document_format</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_hold_until">job_hold_until</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_id">job_id</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_k_octets">job_k_octets</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_media_sheets_completed">job_media_sheets_completed</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_more_info">job_more_info</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_name">job_name</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_originating_host_name">job_originating_host_name</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_originating_user_name">job_originating_user_name</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> long</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_printer_up_time">job_printer_up_time</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_printer_uri">job_printer_uri</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_priority">job_priority</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_sheets">job_sheets</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_state">job_state</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_state_reasons">job_state_reasons</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#job_uri">job_uri</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> long</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#time_at_completed">time_at_completed</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> long</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#time_at_creation">time_at_creation</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> long</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#time_at_processing">time_at_processing</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-</TABLE>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#CupsJob()">CupsJob</A></B>()</CODE>
-
-<BR>
- Constructor - set some default values.</TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#jobStatusText()">jobStatusText</A></B>()</CODE>
-
-<BR>
- Convert a job status to a string.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsJob.html#updateAttribute(com.easysw.cups.IPPAttribute)">updateAttribute</A></B>(<A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A> a)</CODE>
-
-<BR>
- Process an attribute from a cups.doRequest() call
- and move the value into a local member.</TD>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="job_id"><!-- --></A><H3>
-job_id</H3>
-<PRE>
-public int <B>job_id</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_more_info"><!-- --></A><H3>
-job_more_info</H3>
-<PRE>
-public java.lang.String <B>job_more_info</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_uri"><!-- --></A><H3>
-job_uri</H3>
-<PRE>
-public java.lang.String <B>job_uri</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_printer_uri"><!-- --></A><H3>
-job_printer_uri</H3>
-<PRE>
-public java.lang.String <B>job_printer_uri</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_printer_up_time"><!-- --></A><H3>
-job_printer_up_time</H3>
-<PRE>
-public long <B>job_printer_up_time</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_name"><!-- --></A><H3>
-job_name</H3>
-<PRE>
-public java.lang.String <B>job_name</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_originating_user_name"><!-- --></A><H3>
-job_originating_user_name</H3>
-<PRE>
-public java.lang.String <B>job_originating_user_name</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="document_format"><!-- --></A><H3>
-document_format</H3>
-<PRE>
-public java.lang.String <B>document_format</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_originating_host_name"><!-- --></A><H3>
-job_originating_host_name</H3>
-<PRE>
-public java.lang.String <B>job_originating_host_name</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_priority"><!-- --></A><H3>
-job_priority</H3>
-<PRE>
-public int <B>job_priority</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_state"><!-- --></A><H3>
-job_state</H3>
-<PRE>
-public int <B>job_state</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_media_sheets_completed"><!-- --></A><H3>
-job_media_sheets_completed</H3>
-<PRE>
-public int <B>job_media_sheets_completed</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_k_octets"><!-- --></A><H3>
-job_k_octets</H3>
-<PRE>
-public int <B>job_k_octets</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="time_at_creation"><!-- --></A><H3>
-time_at_creation</H3>
-<PRE>
-public long <B>time_at_creation</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="time_at_processing"><!-- --></A><H3>
-time_at_processing</H3>
-<PRE>
-public long <B>time_at_processing</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="time_at_completed"><!-- --></A><H3>
-time_at_completed</H3>
-<PRE>
-public long <B>time_at_completed</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_hold_until"><!-- --></A><H3>
-job_hold_until</H3>
-<PRE>
-public java.lang.String <B>job_hold_until</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_sheets"><!-- --></A><H3>
-job_sheets</H3>
-<PRE>
-public java.lang.String <B>job_sheets</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="job_state_reasons"><!-- --></A><H3>
-job_state_reasons</H3>
-<PRE>
-public java.lang.String <B>job_state_reasons</B></PRE>
-<DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="CupsJob()"><!-- --></A><H3>
-CupsJob</H3>
-<PRE>
-public <B>CupsJob</B>()</PRE>
-<DL>
-<DD>Constructor - set some default values.</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="updateAttribute(com.easysw.cups.IPPAttribute)"><!-- --></A><H3>
-updateAttribute</H3>
-<PRE>
-public void <B>updateAttribute</B>(<A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A> a)</PRE>
-<DL>
-<DD>Process an attribute from a cups.doRequest() call
- and move the value into a local member.<DD><DL>
-<DT><B>See Also: </B><DD><code>IPPDefs</code>,
-<code>IPPValues</code>,
-<code>IPPAttributes</code></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="jobStatusText()"><!-- --></A><H3>
-jobStatusText</H3>
-<PRE>
-public java.lang.String <B>jobStatusText</B>()</PRE>
-<DL>
-<DD>Convert a job status to a string.<DD><DL>
-<DT><B>See Also: </B><DD><code>IPPDefs</code></DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/Cups.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/CupsPrinter.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="CupsJob.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class CupsPrinter
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/CupsJob.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPP.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="CupsPrinter.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class CupsPrinter</H2>
-<PRE>
-java.lang.Object
- |
- +--<B>com.easysw.cups.CupsPrinter</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>CupsPrinter</B><DT>extends java.lang.Object</DL>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#CupsPrinter(com.easysw.cups.Cups)">CupsPrinter</A></B>(<A HREF="../../../com/easysw/cups/Cups.html">Cups</A> c)</CODE>
-
-<BR>
- Constructor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#CupsPrinter(com.easysw.cups.Cups, java.lang.String)">CupsPrinter</A></B>(<A HREF="../../../com/easysw/cups/Cups.html">Cups</A> c,
- java.lang.String name)</CODE>
-
-<BR>
- Constructor with name.</TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getAttributes(com.easysw.cups.Cups)">getAttributes</A></B>(<A HREF="../../../com/easysw/cups/Cups.html">Cups</A> c)</CODE>
-
-<BR>
- Get the printer's attributes.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getCopiesDefault()">getCopiesDefault</A></B>()</CODE>
-
-<BR>
- Get the printer number of copies default.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getJobSheetsDefault()">getJobSheetsDefault</A></B>()</CODE>
-
-<BR>
- Get the default job sheets.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getJobSheetsSupported()">getJobSheetsSupported</A></B>()</CODE>
-
-<BR>
- Get the printer job sheets supported.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getLocation()">getLocation</A></B>()</CODE>
-
-<BR>
- Get the printer location.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getLowerCopiesSupported()">getLowerCopiesSupported</A></B>()</CODE>
-
-<BR>
- Get the printer lower copies supported.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getMakeAndModel()">getMakeAndModel</A></B>()</CODE>
-
-<BR>
- Get the printer make and model.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getOrientationDefault()">getOrientationDefault</A></B>()</CODE>
-
-<BR>
- Get the default orientation.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getOrientationSupported()">getOrientationSupported</A></B>()</CODE>
-
-<BR>
- Get the printer orientation supported.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getPageRangesSupported()">getPageRangesSupported</A></B>()</CODE>
-
-<BR>
- Get whether the printer supports page ranges.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getPrinterName()">getPrinterName</A></B>()</CODE>
-
-<BR>
- Get the printer name.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getStateReasons()">getStateReasons</A></B>()</CODE>
-
-<BR>
- Get the printer state reasons.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getStateText()">getStateText</A></B>()</CODE>
-
-<BR>
- Get the printer state text.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getStatus(com.easysw.cups.Cups)">getStatus</A></B>(<A HREF="../../../com/easysw/cups/Cups.html">Cups</A> c)</CODE>
-
-<BR>
- Get the printer's status.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#getUpperCopiesSupported()">getUpperCopiesSupported</A></B>()</CODE>
-
-<BR>
- Get the printer upper copies supported.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#setDefaults()">setDefaults</A></B>()</CODE>
-
-<BR>
- Initialize the members with mostly sane values.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/CupsPrinter.html#updateAttribute(com.easysw.cups.IPPAttribute)">updateAttribute</A></B>(<A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A> a)</CODE>
-
-<BR>
- Process an attribute from the cups.doRequest() method and move
- the values into local members.</TD>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="CupsPrinter(com.easysw.cups.Cups)"><!-- --></A><H3>
-CupsPrinter</H3>
-<PRE>
-public <B>CupsPrinter</B>(<A HREF="../../../com/easysw/cups/Cups.html">Cups</A> c)</PRE>
-<DL>
-<DD>Constructor. Does not get status or attributes.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>c</code></CODE> - Cups object.<DT><B>See Also: </B><DD><code>Cups</code></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="CupsPrinter(com.easysw.cups.Cups, java.lang.String)"><!-- --></A><H3>
-CupsPrinter</H3>
-<PRE>
-public <B>CupsPrinter</B>(<A HREF="../../../com/easysw/cups/Cups.html">Cups</A> c,
- java.lang.String name)</PRE>
-<DL>
-<DD>Constructor with name. Get status and attributes.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>c</code></CODE> - Cups object.<DD><CODE><code>name</code></CODE> - Name of printer.<DT><B>See Also: </B><DD><code>Cups</code></DL>
-</DD>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="setDefaults()"><!-- --></A><H3>
-setDefaults</H3>
-<PRE>
-public void <B>setDefaults</B>()</PRE>
-<DL>
-<DD>Initialize the members with mostly sane values.</DL>
-<HR>
-
-<A NAME="getStatus(com.easysw.cups.Cups)"><!-- --></A><H3>
-getStatus</H3>
-<PRE>
-public boolean <B>getStatus</B>(<A HREF="../../../com/easysw/cups/Cups.html">Cups</A> c)</PRE>
-<DL>
-<DD>Get the printer's status.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>c</code></CODE> - Cups object.<DT><B>Returns:</B><DD><code>Boolean</code> True on success.<DT><B>See Also: </B><DD><code>Cups</code></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getAttributes(com.easysw.cups.Cups)"><!-- --></A><H3>
-getAttributes</H3>
-<PRE>
-public boolean <B>getAttributes</B>(<A HREF="../../../com/easysw/cups/Cups.html">Cups</A> c)</PRE>
-<DL>
-<DD>Get the printer's attributes.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>c</code></CODE> - Cups object.<DT><B>Returns:</B><DD><code>Boolean</code> True on success.<DT><B>See Also: </B><DD><code>Cups</code></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="updateAttribute(com.easysw.cups.IPPAttribute)"><!-- --></A><H3>
-updateAttribute</H3>
-<PRE>
-public void <B>updateAttribute</B>(<A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A> a)</PRE>
-<DL>
-<DD>Process an attribute from the cups.doRequest() method and move
- the values into local members.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>a</code></CODE> - IPPAttribute.<DT><B>See Also: </B><DD><code>IPPAttributes</code>,
-<code>IPPValues</code></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getPrinterName()"><!-- --></A><H3>
-getPrinterName</H3>
-<PRE>
-public java.lang.String <B>getPrinterName</B>()</PRE>
-<DL>
-<DD>Get the printer name.<DD><DL>
-<DT><B>Returns:</B><DD><code>String</code> Printer Name.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getStateText()"><!-- --></A><H3>
-getStateText</H3>
-<PRE>
-public java.lang.String <B>getStateText</B>()</PRE>
-<DL>
-<DD>Get the printer state text.<DD><DL>
-<DT><B>Returns:</B><DD><code>String</code> State text.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getStateReasons()"><!-- --></A><H3>
-getStateReasons</H3>
-<PRE>
-public java.lang.String <B>getStateReasons</B>()</PRE>
-<DL>
-<DD>Get the printer state reasons.<DD><DL>
-<DT><B>Returns:</B><DD><code>String</code> State reason.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getLocation()"><!-- --></A><H3>
-getLocation</H3>
-<PRE>
-public java.lang.String <B>getLocation</B>()</PRE>
-<DL>
-<DD>Get the printer location.<DD><DL>
-<DT><B>Returns:</B><DD><code>String</code> State location.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getMakeAndModel()"><!-- --></A><H3>
-getMakeAndModel</H3>
-<PRE>
-public java.lang.String <B>getMakeAndModel</B>()</PRE>
-<DL>
-<DD>Get the printer make and model.<DD><DL>
-<DT><B>Returns:</B><DD><code>String</code> Make and model.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getJobSheetsDefault()"><!-- --></A><H3>
-getJobSheetsDefault</H3>
-<PRE>
-public java.lang.String <B>getJobSheetsDefault</B>()</PRE>
-<DL>
-<DD>Get the default job sheets.<DD><DL>
-<DT><B>Returns:</B><DD><code>String</code> Default job sheets.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getJobSheetsSupported()"><!-- --></A><H3>
-getJobSheetsSupported</H3>
-<PRE>
-public java.lang.String[] <B>getJobSheetsSupported</B>()</PRE>
-<DL>
-<DD>Get the printer job sheets supported.<DD><DL>
-<DT><B>Returns:</B><DD><code>String[]</code> Array of supported job sheets.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getOrientationDefault()"><!-- --></A><H3>
-getOrientationDefault</H3>
-<PRE>
-public int <B>getOrientationDefault</B>()</PRE>
-<DL>
-<DD>Get the default orientation.<DD><DL>
-<DT><B>Returns:</B><DD><code>int</code> Default page orientation.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getOrientationSupported()"><!-- --></A><H3>
-getOrientationSupported</H3>
-<PRE>
-public int[] <B>getOrientationSupported</B>()</PRE>
-<DL>
-<DD>Get the printer orientation supported.<DD><DL>
-<DT><B>Returns:</B><DD><code>int[]</code> Array of supported orientations.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getLowerCopiesSupported()"><!-- --></A><H3>
-getLowerCopiesSupported</H3>
-<PRE>
-public int <B>getLowerCopiesSupported</B>()</PRE>
-<DL>
-<DD>Get the printer lower copies supported.<DD><DL>
-<DT><B>Returns:</B><DD><code>int</code> Lower of the range.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getUpperCopiesSupported()"><!-- --></A><H3>
-getUpperCopiesSupported</H3>
-<PRE>
-public int <B>getUpperCopiesSupported</B>()</PRE>
-<DL>
-<DD>Get the printer upper copies supported.<DD><DL>
-<DT><B>Returns:</B><DD><code>int</code> Upper of the range.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getCopiesDefault()"><!-- --></A><H3>
-getCopiesDefault</H3>
-<PRE>
-public int <B>getCopiesDefault</B>()</PRE>
-<DL>
-<DD>Get the printer number of copies default.<DD><DL>
-<DT><B>Returns:</B><DD><code>int</code> Default number of copies.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getPageRangesSupported()"><!-- --></A><H3>
-getPageRangesSupported</H3>
-<PRE>
-public boolean <B>getPageRangesSupported</B>()</PRE>
-<DL>
-<DD>Get whether the printer supports page ranges.<DD><DL>
-<DT><B>Returns:</B><DD><code>boolean</code> True or false.</DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/CupsJob.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPP.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="CupsPrinter.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class IPP
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/CupsPrinter.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPAttribute.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPP.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class IPP</H2>
-<PRE>
-java.lang.Object
- |
- +--<B>com.easysw.cups.IPP</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>IPP</B><DT>extends java.lang.Object</DL>
-
-<P>
-An <code>IPP</code> object is used to hold the various
- attributes and status of an ipp request..
-<P>
-<DL>
-<DT><B>Since: </B><DD>JDK1.3</DD>
-</DL>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.util.List</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#attrs">attrs</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="../../../com/easysw/cups/IPPRequest.html">IPPRequest</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#request">request</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="../../../com/easysw/cups/IPPStatus.html">IPPStatus</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#status">status</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-</TABLE>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#IPP()">IPP</A></B>()</CODE>
-
-<BR>
- </TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#addAttribute(com.easysw.cups.IPPAttribute)">addAttribute</A></B>(<A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A> a)</CODE>
-
-<BR>
- Add an attribute to the attibutes list
- for later parsing.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#dump_response()">dump_response</A></B>()</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#getCurrentAttribute()">getCurrentAttribute</A></B>()</CODE>
-
-<BR>
- Get the current attribute pointed at by
- <code>current</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#ippFindAttribute(java.lang.String, int)">ippFindAttribute</A></B>(java.lang.String p_name,
- int p_type)</CODE>
-
-<BR>
- Find the named attribute of the correct type.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#ippFindNextAttribute(java.lang.String, int)">ippFindNextAttribute</A></B>(java.lang.String p_name,
- int p_type)</CODE>
-
-<BR>
- Find the named attribute of the correct type.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#setRequestID(short)">setRequestID</A></B>(short p_id)</CODE>
-
-<BR>
- Set the <code>IPP</code> request ID.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#setRequestOperationID(short)">setRequestOperationID</A></B>(short p_operation_id)</CODE>
-
-<BR>
- Set the <code>IPP</code> operation ID.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPP.html#sizeInBytes()">sizeInBytes</A></B>()</CODE>
-
-<BR>
- Get the size in bytes of an <code>IPP</code> request.</TD>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="request"><!-- --></A><H3>
-request</H3>
-<PRE>
-public <A HREF="../../../com/easysw/cups/IPPRequest.html">IPPRequest</A> <B>request</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="status"><!-- --></A><H3>
-status</H3>
-<PRE>
-public <A HREF="../../../com/easysw/cups/IPPStatus.html">IPPStatus</A> <B>status</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="attrs"><!-- --></A><H3>
-attrs</H3>
-<PRE>
-public java.util.List <B>attrs</B></PRE>
-<DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="IPP()"><!-- --></A><H3>
-IPP</H3>
-<PRE>
-public <B>IPP</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="addAttribute(com.easysw.cups.IPPAttribute)"><!-- --></A><H3>
-addAttribute</H3>
-<PRE>
-public boolean <B>addAttribute</B>(<A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A> a)</PRE>
-<DL>
-<DD>Add an attribute to the attibutes list
- for later parsing.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>a</CODE> - <code>IPPAttribute</code> to add.<DT><B>Returns:</B><DD><code>true</code> always returns <code>true</code>
- for now.<DT><B>See Also: </B><DD><A HREF="../../../com/easysw/cups/IPPAttribute.html"><CODE>IPPAttribute</CODE></A>,
-<A HREF="../../../com/easysw/cups/IPPValue.html"><CODE>IPPValue</CODE></A></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="getCurrentAttribute()"><!-- --></A><H3>
-getCurrentAttribute</H3>
-<PRE>
-public <A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A> <B>getCurrentAttribute</B>()</PRE>
-<DL>
-<DD>Get the current attribute pointed at by
- <code>current</code>.<DD><DL>
-<DT><B>Returns:</B><DD><code>IPPAttribute</code> Return the current attribute.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="ippFindAttribute(java.lang.String, int)"><!-- --></A><H3>
-ippFindAttribute</H3>
-<PRE>
-public <A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A> <B>ippFindAttribute</B>(java.lang.String p_name,
- int p_type)</PRE>
-<DL>
-<DD>Find the named attribute of the correct type. Both must match.
- This methos searches from the beginning of the attribute list,
- rather than from the current position.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>p_name</CODE> - <code>String</code> containing the name.<DD><CODE>p_type</CODE> - <code>int</code> attribute type.<DT><B>Returns:</B><DD><code>IPPAttribute</code> Matching attribute if found.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="ippFindNextAttribute(java.lang.String, int)"><!-- --></A><H3>
-ippFindNextAttribute</H3>
-<PRE>
-public <A HREF="../../../com/easysw/cups/IPPAttribute.html">IPPAttribute</A> <B>ippFindNextAttribute</B>(java.lang.String p_name,
- int p_type)</PRE>
-<DL>
-<DD>Find the named attribute of the correct type. Both must match.
- This methos searches from the current position in the attribute list.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>p_name</CODE> - <code>String</code> containing the name.<DD><CODE>p_type</CODE> - <code>int</code> attribute type.<DT><B>Returns:</B><DD><code>IPPAttribute</code> Matching attribute if found.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="sizeInBytes()"><!-- --></A><H3>
-sizeInBytes</H3>
-<PRE>
-public int <B>sizeInBytes</B>()</PRE>
-<DL>
-<DD>Get the size in bytes of an <code>IPP</code> request.<DD><DL>
-<DT><B>Returns:</B><DD><code>int</code> Number of bytes for the request.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setRequestID(short)"><!-- --></A><H3>
-setRequestID</H3>
-<PRE>
-public void <B>setRequestID</B>(short p_id)</PRE>
-<DL>
-<DD>Set the <code>IPP</code> request ID.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>p_id</CODE> - <code>short</code> request id.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setRequestOperationID(short)"><!-- --></A><H3>
-setRequestOperationID</H3>
-<PRE>
-public void <B>setRequestOperationID</B>(short p_operation_id)</PRE>
-<DL>
-<DD>Set the <code>IPP</code> operation ID.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>p_operation_id</CODE> - <code>short</code> operation id.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="dump_response()"><!-- --></A><H3>
-dump_response</H3>
-<PRE>
-public void <B>dump_response</B>()</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/CupsPrinter.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPAttribute.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPP.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class IPPAttribute
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPP.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPDefs.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPAttribute.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class IPPAttribute</H2>
-<PRE>
-java.lang.Object
- |
- +--<B>com.easysw.cups.IPPAttribute</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>IPPAttribute</B><DT>extends java.lang.Object</DL>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#IPPAttribute(int, int, java.lang.String)">IPPAttribute</A></B>(int p_group_tag,
- int p_value_tag,
- java.lang.String p_name)</CODE>
-
-<BR>
- </TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addBoolean(boolean)">addBoolean</A></B>(boolean p_bool)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addBooleans(boolean[])">addBooleans</A></B>(boolean[] p_bools)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addDate(char[])">addDate</A></B>(char[] p_date)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addEnum(int)">addEnum</A></B>(int p_int)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addInteger(int)">addInteger</A></B>(int p_int)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addIntegers(int[])">addIntegers</A></B>(int[] p_ints)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addRange(int, int)">addRange</A></B>(int p_lower,
- int p_upper)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addRanges(int[], int[])">addRanges</A></B>(int[] p_lower,
- int[] p_upper)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addResolution(byte, int, int)">addResolution</A></B>(byte p_units,
- int p_xres,
- int p_yres)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addResolutions(byte, int[], int[])">addResolutions</A></B>(byte p_units,
- int[] p_xres,
- int[] p_yres)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addSeparator()">addSeparator</A></B>()</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addString(java.lang.String, java.lang.String)">addString</A></B>(java.lang.String p_charset,
- java.lang.String p_text)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#addStrings(java.lang.String, java.lang.String[])">addStrings</A></B>(java.lang.String p_charset,
- java.lang.String[] p_texts)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#dump_values()">dump_values</A></B>()</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> byte[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#getBytes(int, int)">getBytes</A></B>(int sz,
- int last_group)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPAttribute.html#sizeInBytes(int)">sizeInBytes</A></B>(int last_group)</CODE>
-
-<BR>
- </TD>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="IPPAttribute(int, int, java.lang.String)"><!-- --></A><H3>
-IPPAttribute</H3>
-<PRE>
-public <B>IPPAttribute</B>(int p_group_tag,
- int p_value_tag,
- java.lang.String p_name)</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="addBoolean(boolean)"><!-- --></A><H3>
-addBoolean</H3>
-<PRE>
-public boolean <B>addBoolean</B>(boolean p_bool)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addBooleans(boolean[])"><!-- --></A><H3>
-addBooleans</H3>
-<PRE>
-public boolean <B>addBooleans</B>(boolean[] p_bools)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addEnum(int)"><!-- --></A><H3>
-addEnum</H3>
-<PRE>
-public boolean <B>addEnum</B>(int p_int)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addInteger(int)"><!-- --></A><H3>
-addInteger</H3>
-<PRE>
-public boolean <B>addInteger</B>(int p_int)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addIntegers(int[])"><!-- --></A><H3>
-addIntegers</H3>
-<PRE>
-public boolean <B>addIntegers</B>(int[] p_ints)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addString(java.lang.String, java.lang.String)"><!-- --></A><H3>
-addString</H3>
-<PRE>
-public boolean <B>addString</B>(java.lang.String p_charset,
- java.lang.String p_text)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addStrings(java.lang.String, java.lang.String[])"><!-- --></A><H3>
-addStrings</H3>
-<PRE>
-public boolean <B>addStrings</B>(java.lang.String p_charset,
- java.lang.String[] p_texts)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addDate(char[])"><!-- --></A><H3>
-addDate</H3>
-<PRE>
-public boolean <B>addDate</B>(char[] p_date)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addRange(int, int)"><!-- --></A><H3>
-addRange</H3>
-<PRE>
-public boolean <B>addRange</B>(int p_lower,
- int p_upper)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addRanges(int[], int[])"><!-- --></A><H3>
-addRanges</H3>
-<PRE>
-public boolean <B>addRanges</B>(int[] p_lower,
- int[] p_upper)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addResolution(byte, int, int)"><!-- --></A><H3>
-addResolution</H3>
-<PRE>
-public boolean <B>addResolution</B>(byte p_units,
- int p_xres,
- int p_yres)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addResolutions(byte, int[], int[])"><!-- --></A><H3>
-addResolutions</H3>
-<PRE>
-public boolean <B>addResolutions</B>(byte p_units,
- int[] p_xres,
- int[] p_yres)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="addSeparator()"><!-- --></A><H3>
-addSeparator</H3>
-<PRE>
-public boolean <B>addSeparator</B>()</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="sizeInBytes(int)"><!-- --></A><H3>
-sizeInBytes</H3>
-<PRE>
-public int <B>sizeInBytes</B>(int last_group)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="getBytes(int, int)"><!-- --></A><H3>
-getBytes</H3>
-<PRE>
-public byte[] <B>getBytes</B>(int sz,
- int last_group)</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="dump_values()"><!-- --></A><H3>
-dump_values</H3>
-<PRE>
-public void <B>dump_values</B>()</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPP.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPDefs.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPAttribute.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class IPPDefs
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPAttribute.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPError.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPDefs.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class IPPDefs</H2>
-<PRE>
-java.lang.Object
- |
- +--<B>com.easysw.cups.IPPDefs</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>IPPDefs</B><DT>extends java.lang.Object</DL>
-
-<P>
-<code>IPPDefs</code> is a collection of constants for use
- in the <code>IPP</code> and <code>CUPS</code> classes.
-<P>
-<DL>
-<DT><B>Since: </B><DD>JDK1.3</DD>
-</DL>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#ACTIVATE_PRINTER">ACTIVATE_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#ATTRIBUTE">ATTRIBUTE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#ATTRIBUTES">ATTRIBUTES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#ATTRIBUTES_NOT_SETTABLE">ATTRIBUTES_NOT_SETTABLE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#BAD_REQUEST">BAD_REQUEST</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CANCEL_CURRENT_JOB">CANCEL_CURRENT_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CANCEL_JOB">CANCEL_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CANCEL_SUBSCRIPTION">CANCEL_SUBSCRIPTION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CHARSET">CHARSET</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#COMPRESSION_ERROR">COMPRESSION_ERROR</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#COMPRESSION_NOT_SUPPORTED">COMPRESSION_NOT_SUPPORTED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CONFLICT">CONFLICT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CREATE_JOB">CREATE_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CREATE_JOB_SUBSCRIPTION">CREATE_JOB_SUBSCRIPTION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CREATE_PRINTER_SUBSCRIPTION">CREATE_PRINTER_SUBSCRIPTION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_ACCEPT_JOBS">CUPS_ACCEPT_JOBS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_ADD_CLASS">CUPS_ADD_CLASS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_ADD_DEVICE">CUPS_ADD_DEVICE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_ADD_PRINTER">CUPS_ADD_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_DELETE_CLASS">CUPS_DELETE_CLASS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_DELETE_DEVICE">CUPS_DELETE_DEVICE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_DELETE_PRINTER">CUPS_DELETE_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_GET_CLASSES">CUPS_GET_CLASSES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_GET_DEFAULT">CUPS_GET_DEFAULT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_GET_DEVICES">CUPS_GET_DEVICES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_GET_PPDS">CUPS_GET_PPDS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_GET_PRINTERS">CUPS_GET_PRINTERS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_MOVE_JOB">CUPS_MOVE_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_REJECT_JOBS">CUPS_REJECT_JOBS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#CUPS_SET_DEFAULT">CUPS_SET_DEFAULT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#DATA">DATA</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#DEACTIVATE_PRINTER">DEACTIVATE_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#DEVICE_ERROR">DEVICE_ERROR</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#DISABLE_PRINTER">DISABLE_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#DOCUMENT_ACCESS_ERROR">DOCUMENT_ACCESS_ERROR</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#DOCUMENT_FORMAT">DOCUMENT_FORMAT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#DOCUMENT_FORMAT_ERROR">DOCUMENT_FORMAT_ERROR</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#ENABLE_PRINTER">ENABLE_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#ERROR">ERROR</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#ERROR_JOB_CANCELLED">ERROR_JOB_CANCELLED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_BALE">FINISHINGS_BALE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_BIND">FINISHINGS_BIND</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_BIND_BOTTOM">FINISHINGS_BIND_BOTTOM</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_BIND_LEFT">FINISHINGS_BIND_LEFT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_BIND_RIGHT">FINISHINGS_BIND_RIGHT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_BIND_TOP">FINISHINGS_BIND_TOP</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_BOOKLET_MAKER">FINISHINGS_BOOKLET_MAKER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_COVER">FINISHINGS_COVER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_EDGE_STITCH">FINISHINGS_EDGE_STITCH</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_EDGE_STITCH_BOTTOM">FINISHINGS_EDGE_STITCH_BOTTOM</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_EDGE_STITCH_LEFT">FINISHINGS_EDGE_STITCH_LEFT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_EDGE_STITCH_RIGHT">FINISHINGS_EDGE_STITCH_RIGHT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_EDGE_STITCH_TOP">FINISHINGS_EDGE_STITCH_TOP</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_FOLD">FINISHINGS_FOLD</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_JOB_OFFSET">FINISHINGS_JOB_OFFSET</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_NONE">FINISHINGS_NONE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_PUNCH">FINISHINGS_PUNCH</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_SADDLE_STITCH">FINISHINGS_SADDLE_STITCH</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE">FINISHINGS_STAPLE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_BOTTOM_LEFT">FINISHINGS_STAPLE_BOTTOM_LEFT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_BOTTOM_RIGHT">FINISHINGS_STAPLE_BOTTOM_RIGHT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_DUAL_BOTTOM">FINISHINGS_STAPLE_DUAL_BOTTOM</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_DUAL_LEFT">FINISHINGS_STAPLE_DUAL_LEFT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_DUAL_RIGHT">FINISHINGS_STAPLE_DUAL_RIGHT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_DUAL_TOP">FINISHINGS_STAPLE_DUAL_TOP</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_TOP_LEFT">FINISHINGS_STAPLE_TOP_LEFT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_TOP_RIGHT">FINISHINGS_STAPLE_TOP_RIGHT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FINISHINGS_TRIM">FINISHINGS_TRIM</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#FORBIDDEN">FORBIDDEN</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#GET_JOB_ATTRIBUTES">GET_JOB_ATTRIBUTES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#GET_JOBS">GET_JOBS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#GET_NOTIFICATIONS">GET_NOTIFICATIONS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#GET_PRINT_SUPPORT_FILES">GET_PRINT_SUPPORT_FILES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#GET_PRINTER_ATTRIBUTES">GET_PRINTER_ATTRIBUTES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#GET_PRINTER_SUPPORTED_VALUES">GET_PRINTER_SUPPORTED_VALUES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#GET_SUBSCRIPTION_ATTRIBUTES">GET_SUBSCRIPTION_ATTRIBUTES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#GET_SUBSCRIPTIONS">GET_SUBSCRIPTIONS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#GONE">GONE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#HEADER">HEADER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#HOLD_JOB">HOLD_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#HOLD_NEW_JOBS">HOLD_NEW_JOBS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#IDLE">IDLE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#IGNORED_ALL_NOTIFICATIONS">IGNORED_ALL_NOTIFICATIONS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#IGNORED_ALL_SUBSCRIPTIONS">IGNORED_ALL_SUBSCRIPTIONS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#INTERNAL_ERROR">INTERNAL_ERROR</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#JOB_ABORTED">JOB_ABORTED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#JOB_CANCELLED">JOB_CANCELLED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#JOB_COMPLETED">JOB_COMPLETED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#JOB_HELD">JOB_HELD</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#JOB_PENDING">JOB_PENDING</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#JOB_PROCESSING">JOB_PROCESSING</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#JOB_STOPPED">JOB_STOPPED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#LANDSCAPE">LANDSCAPE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#MAX_NAME">MAX_NAME</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#MAX_VALUES">MAX_VALUES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#MULTIPLE_JOBS_NOT_SUPPORTED">MULTIPLE_JOBS_NOT_SUPPORTED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#NOT_ACCEPTING">NOT_ACCEPTING</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#NOT_AUTHENTICATED">NOT_AUTHENTICATED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#NOT_AUTHORIZED">NOT_AUTHORIZED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#NOT_FOUND">NOT_FOUND</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#NOT_POSSIBLE">NOT_POSSIBLE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#OK">OK</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#OK_BUT_CANCEL_SUBSCRIPTION">OK_BUT_CANCEL_SUBSCRIPTION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#OK_CONFLICT">OK_CONFLICT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#OK_IGNORED_NOTIFICATIONS">OK_IGNORED_NOTIFICATIONS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#OK_IGNORED_SUBSCRIPTIONS">OK_IGNORED_SUBSCRIPTIONS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#OK_SUBST">OK_SUBST</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#OK_TOO_MANY_EVENTS">OK_TOO_MANY_EVENTS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#OPERATION_NOT_SUPPORTED">OPERATION_NOT_SUPPORTED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PAUSE_PRINTER">PAUSE_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PAUSE_PRINTER_AFTER_CURRENT_JOB">PAUSE_PRINTER_AFTER_CURRENT_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PORT">PORT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PORTRAIT">PORTRAIT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PRINT_JOB">PRINT_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PRINT_SUPPORT_FILE_NOT_FOUND">PRINT_SUPPORT_FILE_NOT_FOUND</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PRINT_URI">PRINT_URI</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PRINTER_BUSY">PRINTER_BUSY</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PRINTER_IDLE">PRINTER_IDLE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PRINTER_IS_DEACTIVATED">PRINTER_IS_DEACTIVATED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PRINTER_PROCESSING">PRINTER_PROCESSING</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PRINTER_STOPPED">PRINTER_STOPPED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PRIVATE">PRIVATE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PROMOTE_JOB">PROMOTE_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#PURGE_JOBS">PURGE_JOBS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#QUALITY_DRAFT">QUALITY_DRAFT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#QUALITY_HIGH">QUALITY_HIGH</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#QUALITY_NORMAL">QUALITY_NORMAL</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#REDIRECTION_OTHER_SITE">REDIRECTION_OTHER_SITE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#RELEASE_HELD_NEW_JOBS">RELEASE_HELD_NEW_JOBS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#RELEASE_JOB">RELEASE_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#RENEW_SUBSCRIPTION">RENEW_SUBSCRIPTION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#REPROCESS_JOB">REPROCESS_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#REQUEST_ENTITY">REQUEST_ENTITY</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#REQUEST_VALUE">REQUEST_VALUE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#RES_PER_CM">RES_PER_CM</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#RES_PER_INCH">RES_PER_INCH</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#RESTART_JOB">RESTART_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#RESTART_PRINTER">RESTART_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#RESUME_JOB">RESUME_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#RESUME_PRINTER">RESUME_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#REVERSE_LANDSCAPE">REVERSE_LANDSCAPE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#REVERSE_PORTRAIT">REVERSE_PORTRAIT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#SCHEDULE_JOB_AFTER">SCHEDULE_JOB_AFTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#SEND_DOCUMENT">SEND_DOCUMENT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#SEND_NOTIFICATIONS">SEND_NOTIFICATIONS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#SEND_URI">SEND_URI</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#SERVICE_UNAVAILABLE">SERVICE_UNAVAILABLE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#SET_JOB_ATTRIBUTES">SET_JOB_ATTRIBUTES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#SET_PRINTER_ATTRIBUTES">SET_PRINTER_ATTRIBUTES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#SHUTDOWN_PRINTER">SHUTDOWN_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#STARTUP_PRINTER">STARTUP_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#SUSPEND_CURRENT_JOB">SUSPEND_CURRENT_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_ADMINDEFINE">TAG_ADMINDEFINE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_BEGIN_COLLECTION">TAG_BEGIN_COLLECTION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_BOOLEAN">TAG_BOOLEAN</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_CHARSET">TAG_CHARSET</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_COPY">TAG_COPY</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_DATE">TAG_DATE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_DEFAULT">TAG_DEFAULT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_DELETEATTR">TAG_DELETEATTR</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_END">TAG_END</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_END_COLLECTION">TAG_END_COLLECTION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_ENUM">TAG_ENUM</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_EVENT_NOTIFICATION">TAG_EVENT_NOTIFICATION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_INTEGER">TAG_INTEGER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_JOB">TAG_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_KEYWORD">TAG_KEYWORD</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_LANGUAGE">TAG_LANGUAGE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_MASK">TAG_MASK</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_MEMBERNAME">TAG_MEMBERNAME</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_MIMETYPE">TAG_MIMETYPE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_NAME">TAG_NAME</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_NAMELANG">TAG_NAMELANG</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_NOTSETTABLE">TAG_NOTSETTABLE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_NOVALUE">TAG_NOVALUE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_OPERATION">TAG_OPERATION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_PRINTER">TAG_PRINTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_RANGE">TAG_RANGE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_RESOLUTION">TAG_RESOLUTION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_STRING">TAG_STRING</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_SUBSCRIPTION">TAG_SUBSCRIPTION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_TEXT">TAG_TEXT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_TEXTLANG">TAG_TEXTLANG</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_UNKNOWN">TAG_UNKNOWN</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_UNSUPPORTED_GROUP">TAG_UNSUPPORTED_GROUP</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_UNSUPPORTED_VALUE">TAG_UNSUPPORTED_VALUE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_URI">TAG_URI</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_URISCHEME">TAG_URISCHEME</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TAG_ZERO">TAG_ZERO</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TEMPORARY_ERROR">TEMPORARY_ERROR</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TIMEOUT">TIMEOUT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#TOO_MANY_SUBSCRIPTIONS">TOO_MANY_SUBSCRIPTIONS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#URI_SCHEME">URI_SCHEME</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#VALIDATE_JOB">VALIDATE_JOB</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static byte[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#VERSION">VERSION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#VERSION_NOT_SUPPORTED">VERSION_NOT_SUPPORTED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-</TABLE>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPDefs.html#IPPDefs()">IPPDefs</A></B>()</CODE>
-
-<BR>
- </TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="VERSION"><!-- --></A><H3>
-VERSION</H3>
-<PRE>
-public static final byte[] <B>VERSION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PORT"><!-- --></A><H3>
-PORT</H3>
-<PRE>
-public static final int <B>PORT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="MAX_NAME"><!-- --></A><H3>
-MAX_NAME</H3>
-<PRE>
-public static final int <B>MAX_NAME</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="MAX_VALUES"><!-- --></A><H3>
-MAX_VALUES</H3>
-<PRE>
-public static final int <B>MAX_VALUES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_ZERO"><!-- --></A><H3>
-TAG_ZERO</H3>
-<PRE>
-public static final int <B>TAG_ZERO</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_OPERATION"><!-- --></A><H3>
-TAG_OPERATION</H3>
-<PRE>
-public static final int <B>TAG_OPERATION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_JOB"><!-- --></A><H3>
-TAG_JOB</H3>
-<PRE>
-public static final int <B>TAG_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_END"><!-- --></A><H3>
-TAG_END</H3>
-<PRE>
-public static final int <B>TAG_END</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_PRINTER"><!-- --></A><H3>
-TAG_PRINTER</H3>
-<PRE>
-public static final int <B>TAG_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_UNSUPPORTED_GROUP"><!-- --></A><H3>
-TAG_UNSUPPORTED_GROUP</H3>
-<PRE>
-public static final int <B>TAG_UNSUPPORTED_GROUP</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_SUBSCRIPTION"><!-- --></A><H3>
-TAG_SUBSCRIPTION</H3>
-<PRE>
-public static final int <B>TAG_SUBSCRIPTION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_EVENT_NOTIFICATION"><!-- --></A><H3>
-TAG_EVENT_NOTIFICATION</H3>
-<PRE>
-public static final int <B>TAG_EVENT_NOTIFICATION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_UNSUPPORTED_VALUE"><!-- --></A><H3>
-TAG_UNSUPPORTED_VALUE</H3>
-<PRE>
-public static final int <B>TAG_UNSUPPORTED_VALUE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_DEFAULT"><!-- --></A><H3>
-TAG_DEFAULT</H3>
-<PRE>
-public static final int <B>TAG_DEFAULT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_UNKNOWN"><!-- --></A><H3>
-TAG_UNKNOWN</H3>
-<PRE>
-public static final int <B>TAG_UNKNOWN</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_NOVALUE"><!-- --></A><H3>
-TAG_NOVALUE</H3>
-<PRE>
-public static final int <B>TAG_NOVALUE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_NOTSETTABLE"><!-- --></A><H3>
-TAG_NOTSETTABLE</H3>
-<PRE>
-public static final int <B>TAG_NOTSETTABLE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_DELETEATTR"><!-- --></A><H3>
-TAG_DELETEATTR</H3>
-<PRE>
-public static final int <B>TAG_DELETEATTR</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_ADMINDEFINE"><!-- --></A><H3>
-TAG_ADMINDEFINE</H3>
-<PRE>
-public static final int <B>TAG_ADMINDEFINE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_INTEGER"><!-- --></A><H3>
-TAG_INTEGER</H3>
-<PRE>
-public static final int <B>TAG_INTEGER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_BOOLEAN"><!-- --></A><H3>
-TAG_BOOLEAN</H3>
-<PRE>
-public static final int <B>TAG_BOOLEAN</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_ENUM"><!-- --></A><H3>
-TAG_ENUM</H3>
-<PRE>
-public static final int <B>TAG_ENUM</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_STRING"><!-- --></A><H3>
-TAG_STRING</H3>
-<PRE>
-public static final int <B>TAG_STRING</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_DATE"><!-- --></A><H3>
-TAG_DATE</H3>
-<PRE>
-public static final int <B>TAG_DATE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_RESOLUTION"><!-- --></A><H3>
-TAG_RESOLUTION</H3>
-<PRE>
-public static final int <B>TAG_RESOLUTION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_RANGE"><!-- --></A><H3>
-TAG_RANGE</H3>
-<PRE>
-public static final int <B>TAG_RANGE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_BEGIN_COLLECTION"><!-- --></A><H3>
-TAG_BEGIN_COLLECTION</H3>
-<PRE>
-public static final int <B>TAG_BEGIN_COLLECTION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_TEXTLANG"><!-- --></A><H3>
-TAG_TEXTLANG</H3>
-<PRE>
-public static final int <B>TAG_TEXTLANG</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_NAMELANG"><!-- --></A><H3>
-TAG_NAMELANG</H3>
-<PRE>
-public static final int <B>TAG_NAMELANG</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_END_COLLECTION"><!-- --></A><H3>
-TAG_END_COLLECTION</H3>
-<PRE>
-public static final int <B>TAG_END_COLLECTION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_TEXT"><!-- --></A><H3>
-TAG_TEXT</H3>
-<PRE>
-public static final int <B>TAG_TEXT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_NAME"><!-- --></A><H3>
-TAG_NAME</H3>
-<PRE>
-public static final int <B>TAG_NAME</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_KEYWORD"><!-- --></A><H3>
-TAG_KEYWORD</H3>
-<PRE>
-public static final int <B>TAG_KEYWORD</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_URI"><!-- --></A><H3>
-TAG_URI</H3>
-<PRE>
-public static final int <B>TAG_URI</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_URISCHEME"><!-- --></A><H3>
-TAG_URISCHEME</H3>
-<PRE>
-public static final int <B>TAG_URISCHEME</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_CHARSET"><!-- --></A><H3>
-TAG_CHARSET</H3>
-<PRE>
-public static final int <B>TAG_CHARSET</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_LANGUAGE"><!-- --></A><H3>
-TAG_LANGUAGE</H3>
-<PRE>
-public static final int <B>TAG_LANGUAGE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_MIMETYPE"><!-- --></A><H3>
-TAG_MIMETYPE</H3>
-<PRE>
-public static final int <B>TAG_MIMETYPE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_MEMBERNAME"><!-- --></A><H3>
-TAG_MEMBERNAME</H3>
-<PRE>
-public static final int <B>TAG_MEMBERNAME</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_MASK"><!-- --></A><H3>
-TAG_MASK</H3>
-<PRE>
-public static final int <B>TAG_MASK</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TAG_COPY"><!-- --></A><H3>
-TAG_COPY</H3>
-<PRE>
-public static final int <B>TAG_COPY</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="RES_PER_INCH"><!-- --></A><H3>
-RES_PER_INCH</H3>
-<PRE>
-public static final int <B>RES_PER_INCH</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="RES_PER_CM"><!-- --></A><H3>
-RES_PER_CM</H3>
-<PRE>
-public static final int <B>RES_PER_CM</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_NONE"><!-- --></A><H3>
-FINISHINGS_NONE</H3>
-<PRE>
-public static final int <B>FINISHINGS_NONE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_STAPLE"><!-- --></A><H3>
-FINISHINGS_STAPLE</H3>
-<PRE>
-public static final int <B>FINISHINGS_STAPLE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_PUNCH"><!-- --></A><H3>
-FINISHINGS_PUNCH</H3>
-<PRE>
-public static final int <B>FINISHINGS_PUNCH</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_COVER"><!-- --></A><H3>
-FINISHINGS_COVER</H3>
-<PRE>
-public static final int <B>FINISHINGS_COVER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_BIND"><!-- --></A><H3>
-FINISHINGS_BIND</H3>
-<PRE>
-public static final int <B>FINISHINGS_BIND</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_SADDLE_STITCH"><!-- --></A><H3>
-FINISHINGS_SADDLE_STITCH</H3>
-<PRE>
-public static final int <B>FINISHINGS_SADDLE_STITCH</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_EDGE_STITCH"><!-- --></A><H3>
-FINISHINGS_EDGE_STITCH</H3>
-<PRE>
-public static final int <B>FINISHINGS_EDGE_STITCH</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_FOLD"><!-- --></A><H3>
-FINISHINGS_FOLD</H3>
-<PRE>
-public static final int <B>FINISHINGS_FOLD</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_TRIM"><!-- --></A><H3>
-FINISHINGS_TRIM</H3>
-<PRE>
-public static final int <B>FINISHINGS_TRIM</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_BALE"><!-- --></A><H3>
-FINISHINGS_BALE</H3>
-<PRE>
-public static final int <B>FINISHINGS_BALE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_BOOKLET_MAKER"><!-- --></A><H3>
-FINISHINGS_BOOKLET_MAKER</H3>
-<PRE>
-public static final int <B>FINISHINGS_BOOKLET_MAKER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_JOB_OFFSET"><!-- --></A><H3>
-FINISHINGS_JOB_OFFSET</H3>
-<PRE>
-public static final int <B>FINISHINGS_JOB_OFFSET</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_STAPLE_TOP_LEFT"><!-- --></A><H3>
-FINISHINGS_STAPLE_TOP_LEFT</H3>
-<PRE>
-public static final int <B>FINISHINGS_STAPLE_TOP_LEFT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_STAPLE_BOTTOM_LEFT"><!-- --></A><H3>
-FINISHINGS_STAPLE_BOTTOM_LEFT</H3>
-<PRE>
-public static final int <B>FINISHINGS_STAPLE_BOTTOM_LEFT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_STAPLE_TOP_RIGHT"><!-- --></A><H3>
-FINISHINGS_STAPLE_TOP_RIGHT</H3>
-<PRE>
-public static final int <B>FINISHINGS_STAPLE_TOP_RIGHT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_STAPLE_BOTTOM_RIGHT"><!-- --></A><H3>
-FINISHINGS_STAPLE_BOTTOM_RIGHT</H3>
-<PRE>
-public static final int <B>FINISHINGS_STAPLE_BOTTOM_RIGHT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_EDGE_STITCH_LEFT"><!-- --></A><H3>
-FINISHINGS_EDGE_STITCH_LEFT</H3>
-<PRE>
-public static final int <B>FINISHINGS_EDGE_STITCH_LEFT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_EDGE_STITCH_TOP"><!-- --></A><H3>
-FINISHINGS_EDGE_STITCH_TOP</H3>
-<PRE>
-public static final int <B>FINISHINGS_EDGE_STITCH_TOP</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_EDGE_STITCH_RIGHT"><!-- --></A><H3>
-FINISHINGS_EDGE_STITCH_RIGHT</H3>
-<PRE>
-public static final int <B>FINISHINGS_EDGE_STITCH_RIGHT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_EDGE_STITCH_BOTTOM"><!-- --></A><H3>
-FINISHINGS_EDGE_STITCH_BOTTOM</H3>
-<PRE>
-public static final int <B>FINISHINGS_EDGE_STITCH_BOTTOM</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_STAPLE_DUAL_LEFT"><!-- --></A><H3>
-FINISHINGS_STAPLE_DUAL_LEFT</H3>
-<PRE>
-public static final int <B>FINISHINGS_STAPLE_DUAL_LEFT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_STAPLE_DUAL_TOP"><!-- --></A><H3>
-FINISHINGS_STAPLE_DUAL_TOP</H3>
-<PRE>
-public static final int <B>FINISHINGS_STAPLE_DUAL_TOP</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_STAPLE_DUAL_RIGHT"><!-- --></A><H3>
-FINISHINGS_STAPLE_DUAL_RIGHT</H3>
-<PRE>
-public static final int <B>FINISHINGS_STAPLE_DUAL_RIGHT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_STAPLE_DUAL_BOTTOM"><!-- --></A><H3>
-FINISHINGS_STAPLE_DUAL_BOTTOM</H3>
-<PRE>
-public static final int <B>FINISHINGS_STAPLE_DUAL_BOTTOM</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_BIND_LEFT"><!-- --></A><H3>
-FINISHINGS_BIND_LEFT</H3>
-<PRE>
-public static final int <B>FINISHINGS_BIND_LEFT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_BIND_TOP"><!-- --></A><H3>
-FINISHINGS_BIND_TOP</H3>
-<PRE>
-public static final int <B>FINISHINGS_BIND_TOP</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_BIND_RIGHT"><!-- --></A><H3>
-FINISHINGS_BIND_RIGHT</H3>
-<PRE>
-public static final int <B>FINISHINGS_BIND_RIGHT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FINISHINGS_BIND_BOTTOM"><!-- --></A><H3>
-FINISHINGS_BIND_BOTTOM</H3>
-<PRE>
-public static final int <B>FINISHINGS_BIND_BOTTOM</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PORTRAIT"><!-- --></A><H3>
-PORTRAIT</H3>
-<PRE>
-public static final int <B>PORTRAIT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="LANDSCAPE"><!-- --></A><H3>
-LANDSCAPE</H3>
-<PRE>
-public static final int <B>LANDSCAPE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="REVERSE_LANDSCAPE"><!-- --></A><H3>
-REVERSE_LANDSCAPE</H3>
-<PRE>
-public static final int <B>REVERSE_LANDSCAPE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="REVERSE_PORTRAIT"><!-- --></A><H3>
-REVERSE_PORTRAIT</H3>
-<PRE>
-public static final int <B>REVERSE_PORTRAIT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="QUALITY_DRAFT"><!-- --></A><H3>
-QUALITY_DRAFT</H3>
-<PRE>
-public static final int <B>QUALITY_DRAFT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="QUALITY_NORMAL"><!-- --></A><H3>
-QUALITY_NORMAL</H3>
-<PRE>
-public static final int <B>QUALITY_NORMAL</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="QUALITY_HIGH"><!-- --></A><H3>
-QUALITY_HIGH</H3>
-<PRE>
-public static final int <B>QUALITY_HIGH</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="JOB_PENDING"><!-- --></A><H3>
-JOB_PENDING</H3>
-<PRE>
-public static final int <B>JOB_PENDING</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="JOB_HELD"><!-- --></A><H3>
-JOB_HELD</H3>
-<PRE>
-public static final int <B>JOB_HELD</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="JOB_PROCESSING"><!-- --></A><H3>
-JOB_PROCESSING</H3>
-<PRE>
-public static final int <B>JOB_PROCESSING</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="JOB_STOPPED"><!-- --></A><H3>
-JOB_STOPPED</H3>
-<PRE>
-public static final int <B>JOB_STOPPED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="JOB_CANCELLED"><!-- --></A><H3>
-JOB_CANCELLED</H3>
-<PRE>
-public static final int <B>JOB_CANCELLED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="JOB_ABORTED"><!-- --></A><H3>
-JOB_ABORTED</H3>
-<PRE>
-public static final int <B>JOB_ABORTED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="JOB_COMPLETED"><!-- --></A><H3>
-JOB_COMPLETED</H3>
-<PRE>
-public static final int <B>JOB_COMPLETED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PRINTER_IDLE"><!-- --></A><H3>
-PRINTER_IDLE</H3>
-<PRE>
-public static final int <B>PRINTER_IDLE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PRINTER_PROCESSING"><!-- --></A><H3>
-PRINTER_PROCESSING</H3>
-<PRE>
-public static final int <B>PRINTER_PROCESSING</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PRINTER_STOPPED"><!-- --></A><H3>
-PRINTER_STOPPED</H3>
-<PRE>
-public static final int <B>PRINTER_STOPPED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="ERROR"><!-- --></A><H3>
-ERROR</H3>
-<PRE>
-public static final int <B>ERROR</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="IDLE"><!-- --></A><H3>
-IDLE</H3>
-<PRE>
-public static final int <B>IDLE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HEADER"><!-- --></A><H3>
-HEADER</H3>
-<PRE>
-public static final int <B>HEADER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="ATTRIBUTE"><!-- --></A><H3>
-ATTRIBUTE</H3>
-<PRE>
-public static final int <B>ATTRIBUTE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="DATA"><!-- --></A><H3>
-DATA</H3>
-<PRE>
-public static final int <B>DATA</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PRINT_JOB"><!-- --></A><H3>
-PRINT_JOB</H3>
-<PRE>
-public static final int <B>PRINT_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PRINT_URI"><!-- --></A><H3>
-PRINT_URI</H3>
-<PRE>
-public static final int <B>PRINT_URI</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="VALIDATE_JOB"><!-- --></A><H3>
-VALIDATE_JOB</H3>
-<PRE>
-public static final int <B>VALIDATE_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CREATE_JOB"><!-- --></A><H3>
-CREATE_JOB</H3>
-<PRE>
-public static final int <B>CREATE_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="SEND_DOCUMENT"><!-- --></A><H3>
-SEND_DOCUMENT</H3>
-<PRE>
-public static final int <B>SEND_DOCUMENT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="SEND_URI"><!-- --></A><H3>
-SEND_URI</H3>
-<PRE>
-public static final int <B>SEND_URI</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CANCEL_JOB"><!-- --></A><H3>
-CANCEL_JOB</H3>
-<PRE>
-public static final int <B>CANCEL_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="GET_JOB_ATTRIBUTES"><!-- --></A><H3>
-GET_JOB_ATTRIBUTES</H3>
-<PRE>
-public static final int <B>GET_JOB_ATTRIBUTES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="GET_JOBS"><!-- --></A><H3>
-GET_JOBS</H3>
-<PRE>
-public static final int <B>GET_JOBS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="GET_PRINTER_ATTRIBUTES"><!-- --></A><H3>
-GET_PRINTER_ATTRIBUTES</H3>
-<PRE>
-public static final int <B>GET_PRINTER_ATTRIBUTES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HOLD_JOB"><!-- --></A><H3>
-HOLD_JOB</H3>
-<PRE>
-public static final int <B>HOLD_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="RELEASE_JOB"><!-- --></A><H3>
-RELEASE_JOB</H3>
-<PRE>
-public static final int <B>RELEASE_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="RESTART_JOB"><!-- --></A><H3>
-RESTART_JOB</H3>
-<PRE>
-public static final int <B>RESTART_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PAUSE_PRINTER"><!-- --></A><H3>
-PAUSE_PRINTER</H3>
-<PRE>
-public static final int <B>PAUSE_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="RESUME_PRINTER"><!-- --></A><H3>
-RESUME_PRINTER</H3>
-<PRE>
-public static final int <B>RESUME_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PURGE_JOBS"><!-- --></A><H3>
-PURGE_JOBS</H3>
-<PRE>
-public static final int <B>PURGE_JOBS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="SET_PRINTER_ATTRIBUTES"><!-- --></A><H3>
-SET_PRINTER_ATTRIBUTES</H3>
-<PRE>
-public static final int <B>SET_PRINTER_ATTRIBUTES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="SET_JOB_ATTRIBUTES"><!-- --></A><H3>
-SET_JOB_ATTRIBUTES</H3>
-<PRE>
-public static final int <B>SET_JOB_ATTRIBUTES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="GET_PRINTER_SUPPORTED_VALUES"><!-- --></A><H3>
-GET_PRINTER_SUPPORTED_VALUES</H3>
-<PRE>
-public static final int <B>GET_PRINTER_SUPPORTED_VALUES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CREATE_PRINTER_SUBSCRIPTION"><!-- --></A><H3>
-CREATE_PRINTER_SUBSCRIPTION</H3>
-<PRE>
-public static final int <B>CREATE_PRINTER_SUBSCRIPTION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CREATE_JOB_SUBSCRIPTION"><!-- --></A><H3>
-CREATE_JOB_SUBSCRIPTION</H3>
-<PRE>
-public static final int <B>CREATE_JOB_SUBSCRIPTION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="GET_SUBSCRIPTION_ATTRIBUTES"><!-- --></A><H3>
-GET_SUBSCRIPTION_ATTRIBUTES</H3>
-<PRE>
-public static final int <B>GET_SUBSCRIPTION_ATTRIBUTES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="GET_SUBSCRIPTIONS"><!-- --></A><H3>
-GET_SUBSCRIPTIONS</H3>
-<PRE>
-public static final int <B>GET_SUBSCRIPTIONS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="RENEW_SUBSCRIPTION"><!-- --></A><H3>
-RENEW_SUBSCRIPTION</H3>
-<PRE>
-public static final int <B>RENEW_SUBSCRIPTION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CANCEL_SUBSCRIPTION"><!-- --></A><H3>
-CANCEL_SUBSCRIPTION</H3>
-<PRE>
-public static final int <B>CANCEL_SUBSCRIPTION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="GET_NOTIFICATIONS"><!-- --></A><H3>
-GET_NOTIFICATIONS</H3>
-<PRE>
-public static final int <B>GET_NOTIFICATIONS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="SEND_NOTIFICATIONS"><!-- --></A><H3>
-SEND_NOTIFICATIONS</H3>
-<PRE>
-public static final int <B>SEND_NOTIFICATIONS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="GET_PRINT_SUPPORT_FILES"><!-- --></A><H3>
-GET_PRINT_SUPPORT_FILES</H3>
-<PRE>
-public static final int <B>GET_PRINT_SUPPORT_FILES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="ENABLE_PRINTER"><!-- --></A><H3>
-ENABLE_PRINTER</H3>
-<PRE>
-public static final int <B>ENABLE_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="DISABLE_PRINTER"><!-- --></A><H3>
-DISABLE_PRINTER</H3>
-<PRE>
-public static final int <B>DISABLE_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PAUSE_PRINTER_AFTER_CURRENT_JOB"><!-- --></A><H3>
-PAUSE_PRINTER_AFTER_CURRENT_JOB</H3>
-<PRE>
-public static final int <B>PAUSE_PRINTER_AFTER_CURRENT_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HOLD_NEW_JOBS"><!-- --></A><H3>
-HOLD_NEW_JOBS</H3>
-<PRE>
-public static final int <B>HOLD_NEW_JOBS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="RELEASE_HELD_NEW_JOBS"><!-- --></A><H3>
-RELEASE_HELD_NEW_JOBS</H3>
-<PRE>
-public static final int <B>RELEASE_HELD_NEW_JOBS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="DEACTIVATE_PRINTER"><!-- --></A><H3>
-DEACTIVATE_PRINTER</H3>
-<PRE>
-public static final int <B>DEACTIVATE_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="ACTIVATE_PRINTER"><!-- --></A><H3>
-ACTIVATE_PRINTER</H3>
-<PRE>
-public static final int <B>ACTIVATE_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="RESTART_PRINTER"><!-- --></A><H3>
-RESTART_PRINTER</H3>
-<PRE>
-public static final int <B>RESTART_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="SHUTDOWN_PRINTER"><!-- --></A><H3>
-SHUTDOWN_PRINTER</H3>
-<PRE>
-public static final int <B>SHUTDOWN_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="STARTUP_PRINTER"><!-- --></A><H3>
-STARTUP_PRINTER</H3>
-<PRE>
-public static final int <B>STARTUP_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="REPROCESS_JOB"><!-- --></A><H3>
-REPROCESS_JOB</H3>
-<PRE>
-public static final int <B>REPROCESS_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CANCEL_CURRENT_JOB"><!-- --></A><H3>
-CANCEL_CURRENT_JOB</H3>
-<PRE>
-public static final int <B>CANCEL_CURRENT_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="SUSPEND_CURRENT_JOB"><!-- --></A><H3>
-SUSPEND_CURRENT_JOB</H3>
-<PRE>
-public static final int <B>SUSPEND_CURRENT_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="RESUME_JOB"><!-- --></A><H3>
-RESUME_JOB</H3>
-<PRE>
-public static final int <B>RESUME_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PROMOTE_JOB"><!-- --></A><H3>
-PROMOTE_JOB</H3>
-<PRE>
-public static final int <B>PROMOTE_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="SCHEDULE_JOB_AFTER"><!-- --></A><H3>
-SCHEDULE_JOB_AFTER</H3>
-<PRE>
-public static final int <B>SCHEDULE_JOB_AFTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PRIVATE"><!-- --></A><H3>
-PRIVATE</H3>
-<PRE>
-public static final int <B>PRIVATE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_GET_DEFAULT"><!-- --></A><H3>
-CUPS_GET_DEFAULT</H3>
-<PRE>
-public static final int <B>CUPS_GET_DEFAULT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_GET_PRINTERS"><!-- --></A><H3>
-CUPS_GET_PRINTERS</H3>
-<PRE>
-public static final int <B>CUPS_GET_PRINTERS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_ADD_PRINTER"><!-- --></A><H3>
-CUPS_ADD_PRINTER</H3>
-<PRE>
-public static final int <B>CUPS_ADD_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_DELETE_PRINTER"><!-- --></A><H3>
-CUPS_DELETE_PRINTER</H3>
-<PRE>
-public static final int <B>CUPS_DELETE_PRINTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_GET_CLASSES"><!-- --></A><H3>
-CUPS_GET_CLASSES</H3>
-<PRE>
-public static final int <B>CUPS_GET_CLASSES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_ADD_CLASS"><!-- --></A><H3>
-CUPS_ADD_CLASS</H3>
-<PRE>
-public static final int <B>CUPS_ADD_CLASS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_DELETE_CLASS"><!-- --></A><H3>
-CUPS_DELETE_CLASS</H3>
-<PRE>
-public static final int <B>CUPS_DELETE_CLASS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_ACCEPT_JOBS"><!-- --></A><H3>
-CUPS_ACCEPT_JOBS</H3>
-<PRE>
-public static final int <B>CUPS_ACCEPT_JOBS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_REJECT_JOBS"><!-- --></A><H3>
-CUPS_REJECT_JOBS</H3>
-<PRE>
-public static final int <B>CUPS_REJECT_JOBS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_SET_DEFAULT"><!-- --></A><H3>
-CUPS_SET_DEFAULT</H3>
-<PRE>
-public static final int <B>CUPS_SET_DEFAULT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_GET_DEVICES"><!-- --></A><H3>
-CUPS_GET_DEVICES</H3>
-<PRE>
-public static final int <B>CUPS_GET_DEVICES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_GET_PPDS"><!-- --></A><H3>
-CUPS_GET_PPDS</H3>
-<PRE>
-public static final int <B>CUPS_GET_PPDS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_MOVE_JOB"><!-- --></A><H3>
-CUPS_MOVE_JOB</H3>
-<PRE>
-public static final int <B>CUPS_MOVE_JOB</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_ADD_DEVICE"><!-- --></A><H3>
-CUPS_ADD_DEVICE</H3>
-<PRE>
-public static final int <B>CUPS_ADD_DEVICE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CUPS_DELETE_DEVICE"><!-- --></A><H3>
-CUPS_DELETE_DEVICE</H3>
-<PRE>
-public static final int <B>CUPS_DELETE_DEVICE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="OK"><!-- --></A><H3>
-OK</H3>
-<PRE>
-public static final int <B>OK</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="OK_SUBST"><!-- --></A><H3>
-OK_SUBST</H3>
-<PRE>
-public static final int <B>OK_SUBST</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="OK_CONFLICT"><!-- --></A><H3>
-OK_CONFLICT</H3>
-<PRE>
-public static final int <B>OK_CONFLICT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="OK_IGNORED_SUBSCRIPTIONS"><!-- --></A><H3>
-OK_IGNORED_SUBSCRIPTIONS</H3>
-<PRE>
-public static final int <B>OK_IGNORED_SUBSCRIPTIONS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="OK_IGNORED_NOTIFICATIONS"><!-- --></A><H3>
-OK_IGNORED_NOTIFICATIONS</H3>
-<PRE>
-public static final int <B>OK_IGNORED_NOTIFICATIONS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="OK_TOO_MANY_EVENTS"><!-- --></A><H3>
-OK_TOO_MANY_EVENTS</H3>
-<PRE>
-public static final int <B>OK_TOO_MANY_EVENTS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="OK_BUT_CANCEL_SUBSCRIPTION"><!-- --></A><H3>
-OK_BUT_CANCEL_SUBSCRIPTION</H3>
-<PRE>
-public static final int <B>OK_BUT_CANCEL_SUBSCRIPTION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="REDIRECTION_OTHER_SITE"><!-- --></A><H3>
-REDIRECTION_OTHER_SITE</H3>
-<PRE>
-public static final int <B>REDIRECTION_OTHER_SITE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="BAD_REQUEST"><!-- --></A><H3>
-BAD_REQUEST</H3>
-<PRE>
-public static final int <B>BAD_REQUEST</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="FORBIDDEN"><!-- --></A><H3>
-FORBIDDEN</H3>
-<PRE>
-public static final int <B>FORBIDDEN</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="NOT_AUTHENTICATED"><!-- --></A><H3>
-NOT_AUTHENTICATED</H3>
-<PRE>
-public static final int <B>NOT_AUTHENTICATED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="NOT_AUTHORIZED"><!-- --></A><H3>
-NOT_AUTHORIZED</H3>
-<PRE>
-public static final int <B>NOT_AUTHORIZED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="NOT_POSSIBLE"><!-- --></A><H3>
-NOT_POSSIBLE</H3>
-<PRE>
-public static final int <B>NOT_POSSIBLE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TIMEOUT"><!-- --></A><H3>
-TIMEOUT</H3>
-<PRE>
-public static final int <B>TIMEOUT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="NOT_FOUND"><!-- --></A><H3>
-NOT_FOUND</H3>
-<PRE>
-public static final int <B>NOT_FOUND</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="GONE"><!-- --></A><H3>
-GONE</H3>
-<PRE>
-public static final int <B>GONE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="REQUEST_ENTITY"><!-- --></A><H3>
-REQUEST_ENTITY</H3>
-<PRE>
-public static final int <B>REQUEST_ENTITY</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="REQUEST_VALUE"><!-- --></A><H3>
-REQUEST_VALUE</H3>
-<PRE>
-public static final int <B>REQUEST_VALUE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="DOCUMENT_FORMAT"><!-- --></A><H3>
-DOCUMENT_FORMAT</H3>
-<PRE>
-public static final int <B>DOCUMENT_FORMAT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="ATTRIBUTES"><!-- --></A><H3>
-ATTRIBUTES</H3>
-<PRE>
-public static final int <B>ATTRIBUTES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="URI_SCHEME"><!-- --></A><H3>
-URI_SCHEME</H3>
-<PRE>
-public static final int <B>URI_SCHEME</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CHARSET"><!-- --></A><H3>
-CHARSET</H3>
-<PRE>
-public static final int <B>CHARSET</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="CONFLICT"><!-- --></A><H3>
-CONFLICT</H3>
-<PRE>
-public static final int <B>CONFLICT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="COMPRESSION_NOT_SUPPORTED"><!-- --></A><H3>
-COMPRESSION_NOT_SUPPORTED</H3>
-<PRE>
-public static final int <B>COMPRESSION_NOT_SUPPORTED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="COMPRESSION_ERROR"><!-- --></A><H3>
-COMPRESSION_ERROR</H3>
-<PRE>
-public static final int <B>COMPRESSION_ERROR</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="DOCUMENT_FORMAT_ERROR"><!-- --></A><H3>
-DOCUMENT_FORMAT_ERROR</H3>
-<PRE>
-public static final int <B>DOCUMENT_FORMAT_ERROR</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="DOCUMENT_ACCESS_ERROR"><!-- --></A><H3>
-DOCUMENT_ACCESS_ERROR</H3>
-<PRE>
-public static final int <B>DOCUMENT_ACCESS_ERROR</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="ATTRIBUTES_NOT_SETTABLE"><!-- --></A><H3>
-ATTRIBUTES_NOT_SETTABLE</H3>
-<PRE>
-public static final int <B>ATTRIBUTES_NOT_SETTABLE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="IGNORED_ALL_SUBSCRIPTIONS"><!-- --></A><H3>
-IGNORED_ALL_SUBSCRIPTIONS</H3>
-<PRE>
-public static final int <B>IGNORED_ALL_SUBSCRIPTIONS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TOO_MANY_SUBSCRIPTIONS"><!-- --></A><H3>
-TOO_MANY_SUBSCRIPTIONS</H3>
-<PRE>
-public static final int <B>TOO_MANY_SUBSCRIPTIONS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="IGNORED_ALL_NOTIFICATIONS"><!-- --></A><H3>
-IGNORED_ALL_NOTIFICATIONS</H3>
-<PRE>
-public static final int <B>IGNORED_ALL_NOTIFICATIONS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PRINT_SUPPORT_FILE_NOT_FOUND"><!-- --></A><H3>
-PRINT_SUPPORT_FILE_NOT_FOUND</H3>
-<PRE>
-public static final int <B>PRINT_SUPPORT_FILE_NOT_FOUND</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="INTERNAL_ERROR"><!-- --></A><H3>
-INTERNAL_ERROR</H3>
-<PRE>
-public static final int <B>INTERNAL_ERROR</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="OPERATION_NOT_SUPPORTED"><!-- --></A><H3>
-OPERATION_NOT_SUPPORTED</H3>
-<PRE>
-public static final int <B>OPERATION_NOT_SUPPORTED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="SERVICE_UNAVAILABLE"><!-- --></A><H3>
-SERVICE_UNAVAILABLE</H3>
-<PRE>
-public static final int <B>SERVICE_UNAVAILABLE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="VERSION_NOT_SUPPORTED"><!-- --></A><H3>
-VERSION_NOT_SUPPORTED</H3>
-<PRE>
-public static final int <B>VERSION_NOT_SUPPORTED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="DEVICE_ERROR"><!-- --></A><H3>
-DEVICE_ERROR</H3>
-<PRE>
-public static final int <B>DEVICE_ERROR</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="TEMPORARY_ERROR"><!-- --></A><H3>
-TEMPORARY_ERROR</H3>
-<PRE>
-public static final int <B>TEMPORARY_ERROR</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="NOT_ACCEPTING"><!-- --></A><H3>
-NOT_ACCEPTING</H3>
-<PRE>
-public static final int <B>NOT_ACCEPTING</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PRINTER_BUSY"><!-- --></A><H3>
-PRINTER_BUSY</H3>
-<PRE>
-public static final int <B>PRINTER_BUSY</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="ERROR_JOB_CANCELLED"><!-- --></A><H3>
-ERROR_JOB_CANCELLED</H3>
-<PRE>
-public static final int <B>ERROR_JOB_CANCELLED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="MULTIPLE_JOBS_NOT_SUPPORTED"><!-- --></A><H3>
-MULTIPLE_JOBS_NOT_SUPPORTED</H3>
-<PRE>
-public static final int <B>MULTIPLE_JOBS_NOT_SUPPORTED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="PRINTER_IS_DEACTIVATED"><!-- --></A><H3>
-PRINTER_IS_DEACTIVATED</H3>
-<PRE>
-public static final int <B>PRINTER_IS_DEACTIVATED</B></PRE>
-<DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="IPPDefs()"><!-- --></A><H3>
-IPPDefs</H3>
-<PRE>
-public <B>IPPDefs</B>()</PRE>
-<DL>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPAttribute.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPError.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPDefs.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class IPPError
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPDefs.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPHttp.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPError.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class IPPError</H2>
-<PRE>
-java.lang.Object
- |
- +--<B>com.easysw.cups.IPPError</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>IPPError</B><DT>extends java.lang.Object</DL>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPError.html#IPPError(int)">IPPError</A></B>(int p_error)</CODE>
-
-<BR>
- Constructor that sets <code>error_string</code> after creation.</TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="IPPError(int)"><!-- --></A><H3>
-IPPError</H3>
-<PRE>
-public <B>IPPError</B>(int p_error)</PRE>
-<DL>
-<DD>Constructor that sets <code>error_string</code> after creation.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>error_number</code></CODE> - Error number to convert.<DT><B>See Also: </B><DD><code>IPPDefs</code></DL>
-</DD>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPDefs.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPHttp.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPError.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class IPPHttp
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPError.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPMD5.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPHttp.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class IPPHttp</H2>
-<PRE>
-java.lang.Object
- |
- +--<B>com.easysw.cups.IPPHttp</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>IPPHttp</B><DT>extends java.lang.Object</DL>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="field_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Field Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#activity">activity</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#auth_type">auth_type</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.io.BufferedReader</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#br">br</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.net.Socket</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#conn">conn</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#connected">connected</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static java.lang.String[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#days">days</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#error">error</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#hostname">hostname</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_0_9">HTTP_0_9</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_1_0">HTTP_1_0</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_1_1">HTTP_1_1</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_ACCEPTED">HTTP_ACCEPTED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_AUTH_BASIC">HTTP_AUTH_BASIC</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_AUTH_MD5">HTTP_AUTH_MD5</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_AUTH_MD5_INT">HTTP_AUTH_MD5_INT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_AUTH_MD5_SESS">HTTP_AUTH_MD5_SESS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_AUTH_MD5_SESS_INT">HTTP_AUTH_MD5_SESS_INT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_AUTH_NONE">HTTP_AUTH_NONE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_BAD_GATEWAY">HTTP_BAD_GATEWAY</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_BAD_REQUEST">HTTP_BAD_REQUEST</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_CLOSE">HTTP_CLOSE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_CONFLICT">HTTP_CONFLICT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#http_content_length">http_content_length</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_CONTINUE">HTTP_CONTINUE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_CREATED">HTTP_CREATED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_DELETE">HTTP_DELETE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_ENCODE_CHUNKED">HTTP_ENCODE_CHUNKED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_ENCODE_LENGTH">HTTP_ENCODE_LENGTH</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_ENCRYPT_ALWAYS">HTTP_ENCRYPT_ALWAYS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_ENCRYPT_IF_REQUESTED">HTTP_ENCRYPT_IF_REQUESTED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_ENCRYPT_NEVER">HTTP_ENCRYPT_NEVER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_ENCRYPT_REQUIRED">HTTP_ENCRYPT_REQUIRED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_ERROR">HTTP_ERROR</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_ACCEPT_LANGUAGE">HTTP_FIELD_ACCEPT_LANGUAGE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_ACCEPT_RANGES">HTTP_FIELD_ACCEPT_RANGES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_AUTHORIZATION">HTTP_FIELD_AUTHORIZATION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONNECTION">HTTP_FIELD_CONNECTION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_ENCODING">HTTP_FIELD_CONTENT_ENCODING</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_LANGUAGE">HTTP_FIELD_CONTENT_LANGUAGE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_LENGTH">HTTP_FIELD_CONTENT_LENGTH</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_LOCATION">HTTP_FIELD_CONTENT_LOCATION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_MD5">HTTP_FIELD_CONTENT_MD5</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_RANGE">HTTP_FIELD_CONTENT_RANGE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_TYPE">HTTP_FIELD_CONTENT_TYPE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_VERSION">HTTP_FIELD_CONTENT_VERSION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_DATE">HTTP_FIELD_DATE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_HOST">HTTP_FIELD_HOST</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_IF_MODIFIED_SINCE">HTTP_FIELD_IF_MODIFIED_SINCE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_IF_UNMODIFIED_SINCE">HTTP_FIELD_IF_UNMODIFIED_SINCE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_KEEP_ALIVE">HTTP_FIELD_KEEP_ALIVE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_LAST_MODIFIED">HTTP_FIELD_LAST_MODIFIED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_LINK">HTTP_FIELD_LINK</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_LOCATION">HTTP_FIELD_LOCATION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_MAX">HTTP_FIELD_MAX</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_RANGE">HTTP_FIELD_RANGE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_REFERER">HTTP_FIELD_REFERER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_RETRY_AFTER">HTTP_FIELD_RETRY_AFTER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_TRANSFER_ENCODING">HTTP_FIELD_TRANSFER_ENCODING</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_UNKNOWN">HTTP_FIELD_UNKNOWN</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_UPGRADE">HTTP_FIELD_UPGRADE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_USER_AGENT">HTTP_FIELD_USER_AGENT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FIELD_WWW_AUTHENTICATE">HTTP_FIELD_WWW_AUTHENTICATE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static java.lang.String[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#http_fields">http_fields</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_FORBIDDEN">HTTP_FORBIDDEN</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_GATEWAY_TIMEOUT">HTTP_GATEWAY_TIMEOUT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_GET">HTTP_GET</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_GET_SEND">HTTP_GET_SEND</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_GONE">HTTP_GONE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_HEAD">HTTP_HEAD</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_KEEPALIVE_OFF">HTTP_KEEPALIVE_OFF</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_KEEPALIVE_ON">HTTP_KEEPALIVE_ON</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_LENGTH_REQUIRED">HTTP_LENGTH_REQUIRED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_METHOD_NOT_ALLOWED">HTTP_METHOD_NOT_ALLOWED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_MOVED_PERMANENTLY">HTTP_MOVED_PERMANENTLY</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_MOVED_TEMPORARILY">HTTP_MOVED_TEMPORARILY</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_MULTIPLE_CHOICES">HTTP_MULTIPLE_CHOICES</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_NO_CONTENT">HTTP_NO_CONTENT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_NOT_ACCEPTABLE">HTTP_NOT_ACCEPTABLE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_NOT_AUTHORITATIVE">HTTP_NOT_AUTHORITATIVE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_NOT_FOUND">HTTP_NOT_FOUND</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_NOT_IMPLEMENTED">HTTP_NOT_IMPLEMENTED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_NOT_MODIFIED">HTTP_NOT_MODIFIED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_NOT_SUPPORTED">HTTP_NOT_SUPPORTED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_OK">HTTP_OK</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_OPTIONS">HTTP_OPTIONS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_PARTIAL_CONTENT">HTTP_PARTIAL_CONTENT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_PAYMENT_REQUIRED">HTTP_PAYMENT_REQUIRED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_POST">HTTP_POST</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_POST_RECV">HTTP_POST_RECV</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_POST_SEND">HTTP_POST_SEND</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_PRECONDITION">HTTP_PRECONDITION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_PROXY_AUTHENTICATION">HTTP_PROXY_AUTHENTICATION</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_PUT">HTTP_PUT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_PUT_RECV">HTTP_PUT_RECV</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#http_request">http_request</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_REQUEST_TIMEOUT">HTTP_REQUEST_TIMEOUT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_REQUEST_TOO_LARGE">HTTP_REQUEST_TOO_LARGE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_RESET_CONTENT">HTTP_RESET_CONTENT</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_SEE_OTHER">HTTP_SEE_OTHER</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_SERVER_ERROR">HTTP_SERVER_ERROR</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_SERVICE_UNAVAILABLE">HTTP_SERVICE_UNAVAILABLE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_STATUS">HTTP_STATUS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_SWITCHING_PROTOCOLS">HTTP_SWITCHING_PROTOCOLS</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_TRACE">HTTP_TRACE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_UNAUTHORIZED">HTTP_UNAUTHORIZED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_UNSUPPORTED_MEDIATYPE">HTTP_UNSUPPORTED_MEDIATYPE</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_UPGRADE_REQUIRED">HTTP_UPGRADE_REQUIRED</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_URI_TOO_LONG">HTTP_URI_TOO_LONG</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_USE_PROXY">HTTP_USE_PROXY</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#HTTP_WAITING">HTTP_WAITING</A></B></CODE>
-
-<BR>
- Class constants - most not in use yet.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.io.BufferedInputStream</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#is">is</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#method">method</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE>static java.lang.String[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#months">months</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#nonce">nonce</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#opaque">opaque</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.io.BufferedOutputStream</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#os">os</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#passwd">passwd</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#path">path</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#port">port</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> char[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#read_buffer">read_buffer</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#read_header_charset">read_header_charset</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#read_header_content_language">read_header_content_language</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#read_header_content_length">read_header_content_length</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#read_header_content_type">read_header_content_type</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#read_header_date">read_header_date</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#read_header_server">read_header_server</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#realm">realm</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#resource">resource</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#status">status</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#status_text">status_text</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#user">user</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#version">version</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#write_content_length">write_content_length</A></B></CODE>
-
-<BR>
- </TD>
-</TR>
-</TABLE>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#IPPHttp(java.lang.String)">IPPHttp</A></B>(java.lang.String request_url)</CODE>
-
-<BR>
- Constructor using <code>URL</code>.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#IPPHttp(java.lang.String, java.lang.String, java.lang.String, java.lang.String)">IPPHttp</A></B>(java.lang.String request_url,
- java.lang.String p_auth_type,
- java.lang.String p_user,
- java.lang.String p_passwd)</CODE>
-
-<BR>
- Constructor using <code>URL, user and pass</code>.</TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#checkForResponse()">checkForResponse</A></B>()</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#parseAuthenticate(java.lang.String)">parseAuthenticate</A></B>(java.lang.String p_auth)</CODE>
-
-<BR>
- </TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> <A HREF="../../../com/easysw/cups/IPP.html">IPP</A></CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#processResponse()">processResponse</A></B>()</CODE>
-
-<BR>
- Process the HTTP response from the server.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#read_header()">read_header</A></B>()</CODE>
-
-<BR>
- Read the HTTP header from the input stream.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> java.lang.String</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#read_line()">read_line</A></B>()</CODE>
-
-<BR>
- Read a line from the input stream.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> char[]</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#read(int)">read</A></B>(int count)</CODE>
-
-<BR>
- Read up to <code>count</code> bytes from the input stream.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#reConnect()">reConnect</A></B>()</CODE>
-
-<BR>
- Re-establish a dropped connection.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#setPassword(java.lang.String)">setPassword</A></B>(java.lang.String p_passwd)</CODE>
-
-<BR>
- Set the password.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#setUser(java.lang.String)">setUser</A></B>(java.lang.String p_user)</CODE>
-
-<BR>
- Set the user name.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#write(byte[])">write</A></B>(byte[] bytes)</CODE>
-
-<BR>
- Write bytes to the output stream.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#write(byte[], int)">write</A></B>(byte[] bytes,
- int length)</CODE>
-
-<BR>
- Write bytes to the output stream.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> int</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPHttp.html#writeHeader(java.lang.String, int)">writeHeader</A></B>(java.lang.String request,
- int content_length)</CODE>
-
-<BR>
- Write the request header bytes to the server.</TD>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-<A NAME="field_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Field Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="HTTP_WAITING"><!-- --></A><H3>
-HTTP_WAITING</H3>
-<PRE>
-public static final int <B>HTTP_WAITING</B></PRE>
-<DL>
-<DD>Class constants - most not in use yet.</DL>
-<HR>
-
-<A NAME="HTTP_OPTIONS"><!-- --></A><H3>
-HTTP_OPTIONS</H3>
-<PRE>
-public static final int <B>HTTP_OPTIONS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_GET"><!-- --></A><H3>
-HTTP_GET</H3>
-<PRE>
-public static final int <B>HTTP_GET</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_GET_SEND"><!-- --></A><H3>
-HTTP_GET_SEND</H3>
-<PRE>
-public static final int <B>HTTP_GET_SEND</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_HEAD"><!-- --></A><H3>
-HTTP_HEAD</H3>
-<PRE>
-public static final int <B>HTTP_HEAD</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_POST"><!-- --></A><H3>
-HTTP_POST</H3>
-<PRE>
-public static final int <B>HTTP_POST</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_POST_RECV"><!-- --></A><H3>
-HTTP_POST_RECV</H3>
-<PRE>
-public static final int <B>HTTP_POST_RECV</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_POST_SEND"><!-- --></A><H3>
-HTTP_POST_SEND</H3>
-<PRE>
-public static final int <B>HTTP_POST_SEND</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_PUT"><!-- --></A><H3>
-HTTP_PUT</H3>
-<PRE>
-public static final int <B>HTTP_PUT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_PUT_RECV"><!-- --></A><H3>
-HTTP_PUT_RECV</H3>
-<PRE>
-public static final int <B>HTTP_PUT_RECV</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_DELETE"><!-- --></A><H3>
-HTTP_DELETE</H3>
-<PRE>
-public static final int <B>HTTP_DELETE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_TRACE"><!-- --></A><H3>
-HTTP_TRACE</H3>
-<PRE>
-public static final int <B>HTTP_TRACE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_CLOSE"><!-- --></A><H3>
-HTTP_CLOSE</H3>
-<PRE>
-public static final int <B>HTTP_CLOSE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_STATUS"><!-- --></A><H3>
-HTTP_STATUS</H3>
-<PRE>
-public static final int <B>HTTP_STATUS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_0_9"><!-- --></A><H3>
-HTTP_0_9</H3>
-<PRE>
-public static final int <B>HTTP_0_9</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_1_0"><!-- --></A><H3>
-HTTP_1_0</H3>
-<PRE>
-public static final int <B>HTTP_1_0</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_1_1"><!-- --></A><H3>
-HTTP_1_1</H3>
-<PRE>
-public static final int <B>HTTP_1_1</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_KEEPALIVE_OFF"><!-- --></A><H3>
-HTTP_KEEPALIVE_OFF</H3>
-<PRE>
-public static final int <B>HTTP_KEEPALIVE_OFF</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_KEEPALIVE_ON"><!-- --></A><H3>
-HTTP_KEEPALIVE_ON</H3>
-<PRE>
-public static final int <B>HTTP_KEEPALIVE_ON</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_ENCODE_LENGTH"><!-- --></A><H3>
-HTTP_ENCODE_LENGTH</H3>
-<PRE>
-public static final int <B>HTTP_ENCODE_LENGTH</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_ENCODE_CHUNKED"><!-- --></A><H3>
-HTTP_ENCODE_CHUNKED</H3>
-<PRE>
-public static final int <B>HTTP_ENCODE_CHUNKED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_ENCRYPT_IF_REQUESTED"><!-- --></A><H3>
-HTTP_ENCRYPT_IF_REQUESTED</H3>
-<PRE>
-public static final int <B>HTTP_ENCRYPT_IF_REQUESTED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_ENCRYPT_NEVER"><!-- --></A><H3>
-HTTP_ENCRYPT_NEVER</H3>
-<PRE>
-public static final int <B>HTTP_ENCRYPT_NEVER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_ENCRYPT_REQUIRED"><!-- --></A><H3>
-HTTP_ENCRYPT_REQUIRED</H3>
-<PRE>
-public static final int <B>HTTP_ENCRYPT_REQUIRED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_ENCRYPT_ALWAYS"><!-- --></A><H3>
-HTTP_ENCRYPT_ALWAYS</H3>
-<PRE>
-public static final int <B>HTTP_ENCRYPT_ALWAYS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_AUTH_NONE"><!-- --></A><H3>
-HTTP_AUTH_NONE</H3>
-<PRE>
-public static final int <B>HTTP_AUTH_NONE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_AUTH_BASIC"><!-- --></A><H3>
-HTTP_AUTH_BASIC</H3>
-<PRE>
-public static final int <B>HTTP_AUTH_BASIC</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_AUTH_MD5"><!-- --></A><H3>
-HTTP_AUTH_MD5</H3>
-<PRE>
-public static final int <B>HTTP_AUTH_MD5</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_AUTH_MD5_SESS"><!-- --></A><H3>
-HTTP_AUTH_MD5_SESS</H3>
-<PRE>
-public static final int <B>HTTP_AUTH_MD5_SESS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_AUTH_MD5_INT"><!-- --></A><H3>
-HTTP_AUTH_MD5_INT</H3>
-<PRE>
-public static final int <B>HTTP_AUTH_MD5_INT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_AUTH_MD5_SESS_INT"><!-- --></A><H3>
-HTTP_AUTH_MD5_SESS_INT</H3>
-<PRE>
-public static final int <B>HTTP_AUTH_MD5_SESS_INT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_ERROR"><!-- --></A><H3>
-HTTP_ERROR</H3>
-<PRE>
-public static final int <B>HTTP_ERROR</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_CONTINUE"><!-- --></A><H3>
-HTTP_CONTINUE</H3>
-<PRE>
-public static final int <B>HTTP_CONTINUE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_SWITCHING_PROTOCOLS"><!-- --></A><H3>
-HTTP_SWITCHING_PROTOCOLS</H3>
-<PRE>
-public static final int <B>HTTP_SWITCHING_PROTOCOLS</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_OK"><!-- --></A><H3>
-HTTP_OK</H3>
-<PRE>
-public static final int <B>HTTP_OK</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_CREATED"><!-- --></A><H3>
-HTTP_CREATED</H3>
-<PRE>
-public static final int <B>HTTP_CREATED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_ACCEPTED"><!-- --></A><H3>
-HTTP_ACCEPTED</H3>
-<PRE>
-public static final int <B>HTTP_ACCEPTED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_NOT_AUTHORITATIVE"><!-- --></A><H3>
-HTTP_NOT_AUTHORITATIVE</H3>
-<PRE>
-public static final int <B>HTTP_NOT_AUTHORITATIVE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_NO_CONTENT"><!-- --></A><H3>
-HTTP_NO_CONTENT</H3>
-<PRE>
-public static final int <B>HTTP_NO_CONTENT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_RESET_CONTENT"><!-- --></A><H3>
-HTTP_RESET_CONTENT</H3>
-<PRE>
-public static final int <B>HTTP_RESET_CONTENT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_PARTIAL_CONTENT"><!-- --></A><H3>
-HTTP_PARTIAL_CONTENT</H3>
-<PRE>
-public static final int <B>HTTP_PARTIAL_CONTENT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_MULTIPLE_CHOICES"><!-- --></A><H3>
-HTTP_MULTIPLE_CHOICES</H3>
-<PRE>
-public static final int <B>HTTP_MULTIPLE_CHOICES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_MOVED_PERMANENTLY"><!-- --></A><H3>
-HTTP_MOVED_PERMANENTLY</H3>
-<PRE>
-public static final int <B>HTTP_MOVED_PERMANENTLY</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_MOVED_TEMPORARILY"><!-- --></A><H3>
-HTTP_MOVED_TEMPORARILY</H3>
-<PRE>
-public static final int <B>HTTP_MOVED_TEMPORARILY</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_SEE_OTHER"><!-- --></A><H3>
-HTTP_SEE_OTHER</H3>
-<PRE>
-public static final int <B>HTTP_SEE_OTHER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_NOT_MODIFIED"><!-- --></A><H3>
-HTTP_NOT_MODIFIED</H3>
-<PRE>
-public static final int <B>HTTP_NOT_MODIFIED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_USE_PROXY"><!-- --></A><H3>
-HTTP_USE_PROXY</H3>
-<PRE>
-public static final int <B>HTTP_USE_PROXY</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_BAD_REQUEST"><!-- --></A><H3>
-HTTP_BAD_REQUEST</H3>
-<PRE>
-public static final int <B>HTTP_BAD_REQUEST</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_UNAUTHORIZED"><!-- --></A><H3>
-HTTP_UNAUTHORIZED</H3>
-<PRE>
-public static final int <B>HTTP_UNAUTHORIZED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_PAYMENT_REQUIRED"><!-- --></A><H3>
-HTTP_PAYMENT_REQUIRED</H3>
-<PRE>
-public static final int <B>HTTP_PAYMENT_REQUIRED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FORBIDDEN"><!-- --></A><H3>
-HTTP_FORBIDDEN</H3>
-<PRE>
-public static final int <B>HTTP_FORBIDDEN</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_NOT_FOUND"><!-- --></A><H3>
-HTTP_NOT_FOUND</H3>
-<PRE>
-public static final int <B>HTTP_NOT_FOUND</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_METHOD_NOT_ALLOWED"><!-- --></A><H3>
-HTTP_METHOD_NOT_ALLOWED</H3>
-<PRE>
-public static final int <B>HTTP_METHOD_NOT_ALLOWED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_NOT_ACCEPTABLE"><!-- --></A><H3>
-HTTP_NOT_ACCEPTABLE</H3>
-<PRE>
-public static final int <B>HTTP_NOT_ACCEPTABLE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_PROXY_AUTHENTICATION"><!-- --></A><H3>
-HTTP_PROXY_AUTHENTICATION</H3>
-<PRE>
-public static final int <B>HTTP_PROXY_AUTHENTICATION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_REQUEST_TIMEOUT"><!-- --></A><H3>
-HTTP_REQUEST_TIMEOUT</H3>
-<PRE>
-public static final int <B>HTTP_REQUEST_TIMEOUT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_CONFLICT"><!-- --></A><H3>
-HTTP_CONFLICT</H3>
-<PRE>
-public static final int <B>HTTP_CONFLICT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_GONE"><!-- --></A><H3>
-HTTP_GONE</H3>
-<PRE>
-public static final int <B>HTTP_GONE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_LENGTH_REQUIRED"><!-- --></A><H3>
-HTTP_LENGTH_REQUIRED</H3>
-<PRE>
-public static final int <B>HTTP_LENGTH_REQUIRED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_PRECONDITION"><!-- --></A><H3>
-HTTP_PRECONDITION</H3>
-<PRE>
-public static final int <B>HTTP_PRECONDITION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_REQUEST_TOO_LARGE"><!-- --></A><H3>
-HTTP_REQUEST_TOO_LARGE</H3>
-<PRE>
-public static final int <B>HTTP_REQUEST_TOO_LARGE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_URI_TOO_LONG"><!-- --></A><H3>
-HTTP_URI_TOO_LONG</H3>
-<PRE>
-public static final int <B>HTTP_URI_TOO_LONG</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_UNSUPPORTED_MEDIATYPE"><!-- --></A><H3>
-HTTP_UNSUPPORTED_MEDIATYPE</H3>
-<PRE>
-public static final int <B>HTTP_UNSUPPORTED_MEDIATYPE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_UPGRADE_REQUIRED"><!-- --></A><H3>
-HTTP_UPGRADE_REQUIRED</H3>
-<PRE>
-public static final int <B>HTTP_UPGRADE_REQUIRED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_SERVER_ERROR"><!-- --></A><H3>
-HTTP_SERVER_ERROR</H3>
-<PRE>
-public static final int <B>HTTP_SERVER_ERROR</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_NOT_IMPLEMENTED"><!-- --></A><H3>
-HTTP_NOT_IMPLEMENTED</H3>
-<PRE>
-public static final int <B>HTTP_NOT_IMPLEMENTED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_BAD_GATEWAY"><!-- --></A><H3>
-HTTP_BAD_GATEWAY</H3>
-<PRE>
-public static final int <B>HTTP_BAD_GATEWAY</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_SERVICE_UNAVAILABLE"><!-- --></A><H3>
-HTTP_SERVICE_UNAVAILABLE</H3>
-<PRE>
-public static final int <B>HTTP_SERVICE_UNAVAILABLE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_GATEWAY_TIMEOUT"><!-- --></A><H3>
-HTTP_GATEWAY_TIMEOUT</H3>
-<PRE>
-public static final int <B>HTTP_GATEWAY_TIMEOUT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_NOT_SUPPORTED"><!-- --></A><H3>
-HTTP_NOT_SUPPORTED</H3>
-<PRE>
-public static final int <B>HTTP_NOT_SUPPORTED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_UNKNOWN"><!-- --></A><H3>
-HTTP_FIELD_UNKNOWN</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_UNKNOWN</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_ACCEPT_LANGUAGE"><!-- --></A><H3>
-HTTP_FIELD_ACCEPT_LANGUAGE</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_ACCEPT_LANGUAGE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_ACCEPT_RANGES"><!-- --></A><H3>
-HTTP_FIELD_ACCEPT_RANGES</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_ACCEPT_RANGES</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_AUTHORIZATION"><!-- --></A><H3>
-HTTP_FIELD_AUTHORIZATION</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_AUTHORIZATION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_CONNECTION"><!-- --></A><H3>
-HTTP_FIELD_CONNECTION</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_CONNECTION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_CONTENT_ENCODING"><!-- --></A><H3>
-HTTP_FIELD_CONTENT_ENCODING</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_CONTENT_ENCODING</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_CONTENT_LANGUAGE"><!-- --></A><H3>
-HTTP_FIELD_CONTENT_LANGUAGE</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_CONTENT_LANGUAGE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_CONTENT_LENGTH"><!-- --></A><H3>
-HTTP_FIELD_CONTENT_LENGTH</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_CONTENT_LENGTH</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_CONTENT_LOCATION"><!-- --></A><H3>
-HTTP_FIELD_CONTENT_LOCATION</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_CONTENT_LOCATION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_CONTENT_MD5"><!-- --></A><H3>
-HTTP_FIELD_CONTENT_MD5</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_CONTENT_MD5</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_CONTENT_RANGE"><!-- --></A><H3>
-HTTP_FIELD_CONTENT_RANGE</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_CONTENT_RANGE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_CONTENT_TYPE"><!-- --></A><H3>
-HTTP_FIELD_CONTENT_TYPE</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_CONTENT_TYPE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_CONTENT_VERSION"><!-- --></A><H3>
-HTTP_FIELD_CONTENT_VERSION</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_CONTENT_VERSION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_DATE"><!-- --></A><H3>
-HTTP_FIELD_DATE</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_DATE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_HOST"><!-- --></A><H3>
-HTTP_FIELD_HOST</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_HOST</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_IF_MODIFIED_SINCE"><!-- --></A><H3>
-HTTP_FIELD_IF_MODIFIED_SINCE</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_IF_MODIFIED_SINCE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_IF_UNMODIFIED_SINCE"><!-- --></A><H3>
-HTTP_FIELD_IF_UNMODIFIED_SINCE</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_IF_UNMODIFIED_SINCE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_KEEP_ALIVE"><!-- --></A><H3>
-HTTP_FIELD_KEEP_ALIVE</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_KEEP_ALIVE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_LAST_MODIFIED"><!-- --></A><H3>
-HTTP_FIELD_LAST_MODIFIED</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_LAST_MODIFIED</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_LINK"><!-- --></A><H3>
-HTTP_FIELD_LINK</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_LINK</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_LOCATION"><!-- --></A><H3>
-HTTP_FIELD_LOCATION</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_LOCATION</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_RANGE"><!-- --></A><H3>
-HTTP_FIELD_RANGE</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_RANGE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_REFERER"><!-- --></A><H3>
-HTTP_FIELD_REFERER</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_REFERER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_RETRY_AFTER"><!-- --></A><H3>
-HTTP_FIELD_RETRY_AFTER</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_RETRY_AFTER</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_TRANSFER_ENCODING"><!-- --></A><H3>
-HTTP_FIELD_TRANSFER_ENCODING</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_TRANSFER_ENCODING</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_UPGRADE"><!-- --></A><H3>
-HTTP_FIELD_UPGRADE</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_UPGRADE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_USER_AGENT"><!-- --></A><H3>
-HTTP_FIELD_USER_AGENT</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_USER_AGENT</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_WWW_AUTHENTICATE"><!-- --></A><H3>
-HTTP_FIELD_WWW_AUTHENTICATE</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_WWW_AUTHENTICATE</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="HTTP_FIELD_MAX"><!-- --></A><H3>
-HTTP_FIELD_MAX</H3>
-<PRE>
-public static final int <B>HTTP_FIELD_MAX</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="http_fields"><!-- --></A><H3>
-http_fields</H3>
-<PRE>
-public static final java.lang.String[] <B>http_fields</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="days"><!-- --></A><H3>
-days</H3>
-<PRE>
-public static final java.lang.String[] <B>days</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="months"><!-- --></A><H3>
-months</H3>
-<PRE>
-public static final java.lang.String[] <B>months</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="conn"><!-- --></A><H3>
-conn</H3>
-<PRE>
-public java.net.Socket <B>conn</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="connected"><!-- --></A><H3>
-connected</H3>
-<PRE>
-public boolean <B>connected</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="is"><!-- --></A><H3>
-is</H3>
-<PRE>
-public java.io.BufferedInputStream <B>is</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="br"><!-- --></A><H3>
-br</H3>
-<PRE>
-public java.io.BufferedReader <B>br</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="os"><!-- --></A><H3>
-os</H3>
-<PRE>
-public java.io.BufferedOutputStream <B>os</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="write_content_length"><!-- --></A><H3>
-write_content_length</H3>
-<PRE>
-public int <B>write_content_length</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="read_header_date"><!-- --></A><H3>
-read_header_date</H3>
-<PRE>
-public java.lang.String <B>read_header_date</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="read_header_server"><!-- --></A><H3>
-read_header_server</H3>
-<PRE>
-public java.lang.String <B>read_header_server</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="read_header_charset"><!-- --></A><H3>
-read_header_charset</H3>
-<PRE>
-public java.lang.String <B>read_header_charset</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="read_header_content_language"><!-- --></A><H3>
-read_header_content_language</H3>
-<PRE>
-public java.lang.String <B>read_header_content_language</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="read_header_content_type"><!-- --></A><H3>
-read_header_content_type</H3>
-<PRE>
-public java.lang.String <B>read_header_content_type</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="read_header_content_length"><!-- --></A><H3>
-read_header_content_length</H3>
-<PRE>
-public int <B>read_header_content_length</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="read_buffer"><!-- --></A><H3>
-read_buffer</H3>
-<PRE>
-public char[] <B>read_buffer</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="status"><!-- --></A><H3>
-status</H3>
-<PRE>
-public int <B>status</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="status_text"><!-- --></A><H3>
-status_text</H3>
-<PRE>
-public java.lang.String <B>status_text</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="version"><!-- --></A><H3>
-version</H3>
-<PRE>
-public java.lang.String <B>version</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="error"><!-- --></A><H3>
-error</H3>
-<PRE>
-public int <B>error</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="activity"><!-- --></A><H3>
-activity</H3>
-<PRE>
-public int <B>activity</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="hostname"><!-- --></A><H3>
-hostname</H3>
-<PRE>
-public java.lang.String <B>hostname</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="port"><!-- --></A><H3>
-port</H3>
-<PRE>
-public int <B>port</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="path"><!-- --></A><H3>
-path</H3>
-<PRE>
-public java.lang.String <B>path</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="user"><!-- --></A><H3>
-user</H3>
-<PRE>
-public java.lang.String <B>user</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="passwd"><!-- --></A><H3>
-passwd</H3>
-<PRE>
-public java.lang.String <B>passwd</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="auth_type"><!-- --></A><H3>
-auth_type</H3>
-<PRE>
-public java.lang.String <B>auth_type</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="realm"><!-- --></A><H3>
-realm</H3>
-<PRE>
-public java.lang.String <B>realm</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="opaque"><!-- --></A><H3>
-opaque</H3>
-<PRE>
-public java.lang.String <B>opaque</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="nonce"><!-- --></A><H3>
-nonce</H3>
-<PRE>
-public java.lang.String <B>nonce</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="resource"><!-- --></A><H3>
-resource</H3>
-<PRE>
-public java.lang.String <B>resource</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="method"><!-- --></A><H3>
-method</H3>
-<PRE>
-public java.lang.String <B>method</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="http_request"><!-- --></A><H3>
-http_request</H3>
-<PRE>
-public java.lang.String <B>http_request</B></PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="http_content_length"><!-- --></A><H3>
-http_content_length</H3>
-<PRE>
-public int <B>http_content_length</B></PRE>
-<DL>
-</DL>
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="IPPHttp(java.lang.String)"><!-- --></A><H3>
-IPPHttp</H3>
-<PRE>
-public <B>IPPHttp</B>(java.lang.String request_url)
- throws java.io.IOException,
- java.net.UnknownHostException</PRE>
-<DL>
-<DD>Constructor using <code>URL</code>.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>request_url</CODE> - <code>URL</code> of server to connect to.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="IPPHttp(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><!-- --></A><H3>
-IPPHttp</H3>
-<PRE>
-public <B>IPPHttp</B>(java.lang.String request_url,
- java.lang.String p_auth_type,
- java.lang.String p_user,
- java.lang.String p_passwd)
- throws java.io.IOException,
- java.net.UnknownHostException</PRE>
-<DL>
-<DD>Constructor using <code>URL, user and pass</code>.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>request_url</CODE> - <code>URL</code> of server to connect to.<DD><CODE>p_auth_type</CODE> - <code>String</code> basic or digest.<DD><CODE>p_user</CODE> - <code>String</code> User name.<DD><CODE>p_passwd</CODE> - <code>String</code> password.</DL>
-</DD>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="reConnect()"><!-- --></A><H3>
-reConnect</H3>
-<PRE>
-public boolean <B>reConnect</B>()
- throws java.io.IOException</PRE>
-<DL>
-<DD>Re-establish a dropped connection.<DD><DL>
-<DT><B>Returns:</B><DD><code>boolean</code> True if connected.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setUser(java.lang.String)"><!-- --></A><H3>
-setUser</H3>
-<PRE>
-public void <B>setUser</B>(java.lang.String p_user)</PRE>
-<DL>
-<DD>Set the user name.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>p_user</CODE> - <code>String</code> - user name.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setPassword(java.lang.String)"><!-- --></A><H3>
-setPassword</H3>
-<PRE>
-public void <B>setPassword</B>(java.lang.String p_passwd)</PRE>
-<DL>
-<DD>Set the password.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>p_passwd</CODE> - <code>String</code> - password.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="writeHeader(java.lang.String, int)"><!-- --></A><H3>
-writeHeader</H3>
-<PRE>
-public int <B>writeHeader</B>(java.lang.String request,
- int content_length)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Write the request header bytes to the server.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>request</CODE> - <code>String</code> - the request.<DD><CODE>content_length</CODE> - <code>int</code> - size of the total request.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="checkForResponse()"><!-- --></A><H3>
-checkForResponse</H3>
-<PRE>
-public int <B>checkForResponse</B>()</PRE>
-<DL>
-</DL>
-<HR>
-
-<A NAME="write(byte[])"><!-- --></A><H3>
-write</H3>
-<PRE>
-public void <B>write</B>(byte[] bytes)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Write bytes to the output stream.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>bytes</CODE> - Array of bytes to write to the stream.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="write(byte[], int)"><!-- --></A><H3>
-write</H3>
-<PRE>
-public void <B>write</B>(byte[] bytes,
- int length)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Write bytes to the output stream.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE>bytes</CODE> - Array of bytes to write to the stream.<DD><CODE>length</CODE> - Number of bytes to write to the stream.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="read_header()"><!-- --></A><H3>
-read_header</H3>
-<PRE>
-public int <B>read_header</B>()
- throws java.io.IOException</PRE>
-<DL>
-<DD>Read the HTTP header from the input stream.<DD><DL>
-<DT><B>Returns:</B><DD><code>int</code> Content length of response.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="read_line()"><!-- --></A><H3>
-read_line</H3>
-<PRE>
-public java.lang.String <B>read_line</B>()
- throws java.io.IOException</PRE>
-<DL>
-<DD>Read a line from the input stream.<DD><DL>
-<DT><B>Returns:</B><DD><code>String</code> Line read.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="read(int)"><!-- --></A><H3>
-read</H3>
-<PRE>
-public char[] <B>read</B>(int count)
- throws java.io.IOException</PRE>
-<DL>
-<DD>Read up to <code>count</code> bytes from the input stream.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>count</code></CODE> - Number of bytes to read.<DT><B>Returns:</B><DD><code>char[]</code> Character array of data read.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="processResponse()"><!-- --></A><H3>
-processResponse</H3>
-<PRE>
-public <A HREF="../../../com/easysw/cups/IPP.html">IPP</A> <B>processResponse</B>()</PRE>
-<DL>
-<DD>Process the HTTP response from the server.<DD><DL>
-<DT><B>Returns:</B><DD><code>IPP</code> IPP object containing response data.<DT><B>See Also: </B><DD><code>IPP</code>,
-<code>IPPRequest</code>,
-<code>IPPAttribute</code>,
-<code>IPPValue</code>,
-<code>IPPDefs</code></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="parseAuthenticate(java.lang.String)"><!-- --></A><H3>
-parseAuthenticate</H3>
-<PRE>
-public void <B>parseAuthenticate</B>(java.lang.String p_auth)</PRE>
-<DL>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPError.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPMD5.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPHttp.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class IPPRequest
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPMD5.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPStatus.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPRequest.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class IPPRequest</H2>
-<PRE>
-java.lang.Object
- |
- +--<B>com.easysw.cups.IPPRequest</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>IPPRequest</B><DT>extends java.lang.Object</DL>
-
-<P>
-An <code>IPPRequest</code> object is used to hold the
- status and id's of a request.
-<P>
-<DL>
-<DT><B>Since: </B><DD>JDK1.3</DD>
-</DL>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPRequest.html#IPPRequest()">IPPRequest</A></B>()</CODE>
-
-<BR>
- Constructor</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPRequest.html#IPPRequest(int, short)">IPPRequest</A></B>(int p_request_id,
- short p_operation_id)</CODE>
-
-<BR>
- Constructor using request id and operation id.</TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPRequest.html#setOpStatus(short)">setOpStatus</A></B>(short p_status_code)</CODE>
-
-<BR>
- Set the operation status of a request.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPRequest.html#setStatus(short)">setStatus</A></B>(short p_status_code)</CODE>
-
-<BR>
- Set the current status of a request.</TD>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="IPPRequest()"><!-- --></A><H3>
-IPPRequest</H3>
-<PRE>
-public <B>IPPRequest</B>()</PRE>
-<DL>
-<DD>Constructor</DL>
-<HR>
-
-<A NAME="IPPRequest(int, short)"><!-- --></A><H3>
-IPPRequest</H3>
-<PRE>
-public <B>IPPRequest</B>(int p_request_id,
- short p_operation_id)</PRE>
-<DL>
-<DD>Constructor using request id and operation id.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_request_id</code></CODE> - ID of request.<DD><CODE><code>p_operation_id</code></CODE> - Operation ID for request.<DT><B>See Also: </B><DD><code>IPPDefs</code></DL>
-</DD>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="setStatus(short)"><!-- --></A><H3>
-setStatus</H3>
-<PRE>
-public void <B>setStatus</B>(short p_status_code)</PRE>
-<DL>
-<DD>Set the current status of a request.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_status_code</code></CODE> - Status code.<DT><B>See Also: </B><DD><code>IPPDefs</code></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="setOpStatus(short)"><!-- --></A><H3>
-setOpStatus</H3>
-<PRE>
-public void <B>setOpStatus</B>(short p_status_code)</PRE>
-<DL>
-<DD>Set the operation status of a request.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_status_code</code></CODE> - Operation status code.<DT><B>See Also: </B><DD><code>IPPDefs</code></DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPMD5.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPStatus.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPRequest.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class IPPStatus
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPRequest.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPURLConnection.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPStatus.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class IPPStatus</H2>
-<PRE>
-java.lang.Object
- |
- +--<B>com.easysw.cups.IPPStatus</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>IPPStatus</B><DT>extends java.lang.Object</DL>
-
-<P>
-Class to convert a status code to text.
-<P>
-<DL>
-<DT><B>Since: </B><DD>JDK1.3</DD>
-</DL>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPStatus.html#IPPStatus(int)">IPPStatus</A></B>(int p_status)</CODE>
-
-<BR>
- Constructor, access the <code>status_text</code> member
- after creation.</TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="IPPStatus(int)"><!-- --></A><H3>
-IPPStatus</H3>
-<PRE>
-public <B>IPPStatus</B>(int p_status)</PRE>
-<DL>
-<DD>Constructor, access the <code>status_text</code> member
- after creation.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_status</code></CODE> - Status code to convert.<DT><B>See Also: </B><DD><code>IPPDefs</code></DL>
-</DD>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPRequest.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPURLConnection.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPStatus.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#methods_inherited_from_class_java.lang.Object">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | METHOD</FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class IPPURLConnection
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPStatus.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPValue.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPURLConnection.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | <A HREF="#fields_inherited_from_class_java.net.URLConnection">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class IPPURLConnection</H2>
-<PRE>
-java.lang.Object
- |
- +--java.net.URLConnection
- |
- +--<B>com.easysw.cups.IPPURLConnection</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>IPPURLConnection</B><DT>extends java.net.URLConnection</DL>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-<A NAME="fields_inherited_from_class_java.net.URLConnection"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Fields inherited from class java.net.URLConnection</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>allowUserInteraction, connected, doInput, doOutput, ifModifiedSince, url, useCaches</CODE></TD>
-</TR>
-</TABLE>
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPURLConnection.html#IPPURLConnection(java.net.URL)">IPPURLConnection</A></B>(java.net.URL url)</CODE>
-
-<BR>
- Constructor.</TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPURLConnection.html#connect()">connect</A></B>()</CODE>
-
-<BR>
- Not used.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> void</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPURLConnection.html#disconnect()">disconnect</A></B>()</CODE>
-
-<BR>
- Not used.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> boolean</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPURLConnection.html#usingProxy()">usingProxy</A></B>()</CODE>
-
-<BR>
- Determine if using proxy.</TD>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.net.URLConnection"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.net.URLConnection</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>getAllowUserInteraction, getContent, getContent, getContentEncoding, getContentLength, getContentType, getDate, getDefaultAllowUserInteraction, getDefaultRequestProperty, getDefaultUseCaches, getDoInput, getDoOutput, getExpiration, getFileNameMap, getHeaderField, getHeaderField, getHeaderFieldDate, getHeaderFieldInt, getHeaderFieldKey, getIfModifiedSince, getInputStream, getLastModified, getOutputStream, getPermission, getRequestProperty, getURL, getUseCaches, guessContentTypeFromName, guessContentTypeFromStream, setAllowUserInteraction, setContentHandlerFactory, setDefaultAllowUserInteraction, setDefaultRequestProperty, setDefaultUseCaches, setDoInput, setDoOutput, setFileNameMap, setIfModifiedSince, setRequestProperty, setUseCaches, toString</CODE></TD>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="IPPURLConnection(java.net.URL)"><!-- --></A><H3>
-IPPURLConnection</H3>
-<PRE>
-public <B>IPPURLConnection</B>(java.net.URL url)</PRE>
-<DL>
-<DD>Constructor.</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="usingProxy()"><!-- --></A><H3>
-usingProxy</H3>
-<PRE>
-public boolean <B>usingProxy</B>()</PRE>
-<DL>
-<DD>Determine if using proxy.<DD><DL>
-<DT><B>Returns:</B><DD><code>boolean</code> Always <code>false</code> for now.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="connect()"><!-- --></A><H3>
-connect</H3>
-<PRE>
-public void <B>connect</B>()</PRE>
-<DL>
-<DD>Not used.<DD><DL>
-<DT><B>Overrides:</B><DD><CODE>connect</CODE> in class <CODE>java.net.URLConnection</CODE></DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="disconnect()"><!-- --></A><H3>
-disconnect</H3>
-<PRE>
-public void <B>disconnect</B>()</PRE>
-<DL>
-<DD>Not used.</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPStatus.html"><B>PREV CLASS</B></A>
- <A HREF="../../../com/easysw/cups/IPPValue.html"><B>NEXT CLASS</B></A></FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPURLConnection.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | <A HREF="#fields_inherited_from_class_java.net.URLConnection">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class IPPValue
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPURLConnection.html"><B>PREV CLASS</B></A>
- NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPValue.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<!-- ======== START OF CLASS DATA ======== -->
-<H2>
-<FONT SIZE="-1">
-com.easysw.cups</FONT>
-<BR>
-Class IPPValue</H2>
-<PRE>
-java.lang.Object
- |
- +--<B>com.easysw.cups.IPPValue</B>
-</PRE>
-<HR>
-<DL>
-<DT>public class <B>IPPValue</B><DT>extends java.lang.Object</DL>
-
-<P>
-<HR>
-
-<P>
-<!-- ======== INNER CLASS SUMMARY ======== -->
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-
-<A NAME="constructor_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Constructor Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPValue.html#IPPValue(boolean)">IPPValue</A></B>(boolean p_boolean)</CODE>
-
-<BR>
- Boolean constructor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPValue.html#IPPValue(byte)">IPPValue</A></B>(byte p_byte)</CODE>
-
-<BR>
- Byte constructor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPValue.html#IPPValue(byte, int, int)">IPPValue</A></B>(byte p_units,
- int p_xres,
- int p_yres)</CODE>
-
-<BR>
- Resolution constructor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPValue.html#IPPValue(char[])">IPPValue</A></B>(char[] p_date)</CODE>
-
-<BR>
- Date constructor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPValue.html#IPPValue(int)">IPPValue</A></B>(int p_int)</CODE>
-
-<BR>
- Integer constructor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPValue.html#IPPValue(int, boolean)">IPPValue</A></B>(int p_int,
- boolean anything)</CODE>
-
-<BR>
- Enum constructor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPValue.html#IPPValue(int, char[])">IPPValue</A></B>(int p_length,
- char[] p_data)</CODE>
-
-<BR>
- Raw data constructor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPValue.html#IPPValue(int, int)">IPPValue</A></B>(int p_lower,
- int p_upper)</CODE>
-
-<BR>
- Range constructor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPValue.html#IPPValue(short)">IPPValue</A></B>(short p_short)</CODE>
-
-<BR>
- Short constructor.</TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPValue.html#IPPValue(java.lang.String, java.lang.String)">IPPValue</A></B>(java.lang.String p_charset,
- java.lang.String p_text)</CODE>
-
-<BR>
- String constructor.</TD>
-</TR>
-</TABLE>
-
-<!-- ========== METHOD SUMMARY =========== -->
-
-<A NAME="method_summary"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=2><FONT SIZE="+2">
-<B>Method Summary</B></FONT></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
-<CODE> long</CODE></FONT></TD>
-<TD><CODE><B><A HREF="../../../com/easysw/cups/IPPValue.html#IPPDateToTime()">IPPDateToTime</A></B>()</CODE>
-
-<BR>
- Convert an IPP Date value to Unix Time.</TD>
-</TR>
-</TABLE>
- <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
-<TD><B>Methods inherited from class java.lang.Object</B></TD>
-</TR>
-<TR BGCOLOR="white" CLASS="TableRowColor">
-<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
-</TR>
-</TABLE>
-
-<P>
-
-<!-- ============ FIELD DETAIL =========== -->
-
-
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-
-<A NAME="constructor_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Constructor Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="IPPValue(byte)"><!-- --></A><H3>
-IPPValue</H3>
-<PRE>
-public <B>IPPValue</B>(byte p_byte)</PRE>
-<DL>
-<DD>Byte constructor.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_byte</code></CODE> - Byte value.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="IPPValue(short)"><!-- --></A><H3>
-IPPValue</H3>
-<PRE>
-public <B>IPPValue</B>(short p_short)</PRE>
-<DL>
-<DD>Short constructor.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_short</code></CODE> - Short value.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="IPPValue(int)"><!-- --></A><H3>
-IPPValue</H3>
-<PRE>
-public <B>IPPValue</B>(int p_int)</PRE>
-<DL>
-<DD>Integer constructor.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_int</code></CODE> - Integer value.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="IPPValue(int, boolean)"><!-- --></A><H3>
-IPPValue</H3>
-<PRE>
-public <B>IPPValue</B>(int p_int,
- boolean anything)</PRE>
-<DL>
-<DD>Enum constructor.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_int</code></CODE> - Integer value - force to IPP enum.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="IPPValue(boolean)"><!-- --></A><H3>
-IPPValue</H3>
-<PRE>
-public <B>IPPValue</B>(boolean p_boolean)</PRE>
-<DL>
-<DD>Boolean constructor.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_boolean</code></CODE> - Boolean value.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="IPPValue(char[])"><!-- --></A><H3>
-IPPValue</H3>
-<PRE>
-public <B>IPPValue</B>(char[] p_date)</PRE>
-<DL>
-<DD>Date constructor. Also set the <code>unix_time</code> member.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_date[]</code></CODE> - Character array with date value.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="IPPValue(java.lang.String, java.lang.String)"><!-- --></A><H3>
-IPPValue</H3>
-<PRE>
-public <B>IPPValue</B>(java.lang.String p_charset,
- java.lang.String p_text)</PRE>
-<DL>
-<DD>String constructor. Set the <code>string</code> and
- <code>charset</code> values.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_charset</code></CODE> - Charset for string.<DD><CODE><code>p_text</code></CODE> - Text for string.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="IPPValue(int, int)"><!-- --></A><H3>
-IPPValue</H3>
-<PRE>
-public <B>IPPValue</B>(int p_lower,
- int p_upper)</PRE>
-<DL>
-<DD>Range constructor. Automatically swap as needed.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_lower</code></CODE> - Integer lower value.<DD><CODE><code>p_upper</code></CODE> - Integer upper value.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="IPPValue(byte, int, int)"><!-- --></A><H3>
-IPPValue</H3>
-<PRE>
-public <B>IPPValue</B>(byte p_units,
- int p_xres,
- int p_yres)</PRE>
-<DL>
-<DD>Resolution constructor.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_units</code></CODE> - Unit of measure.<DD><CODE><code>p_xres</code></CODE> - X resolution.<DD><CODE><code>p_yres</code></CODE> - Y resolution.</DL>
-</DD>
-</DL>
-<HR>
-
-<A NAME="IPPValue(int, char[])"><!-- --></A><H3>
-IPPValue</H3>
-<PRE>
-public <B>IPPValue</B>(int p_length,
- char[] p_data)</PRE>
-<DL>
-<DD>Raw data constructor.<DD><DL>
-<DT><B>Parameters:</B><DD><CODE><code>p_length</code></CODE> - Size of array.<DD><CODE><code>p_data[]</code></CODE> - Data.</DL>
-</DD>
-</DL>
-
-<!-- ============ METHOD DETAIL ========== -->
-
-<A NAME="method_detail"><!-- --></A>
-<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
-<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
-<TD COLSPAN=1><FONT SIZE="+2">
-<B>Method Detail</B></FONT></TD>
-</TR>
-</TABLE>
-
-<A NAME="IPPDateToTime()"><!-- --></A><H3>
-IPPDateToTime</H3>
-<PRE>
-public long <B>IPPDateToTime</B>()</PRE>
-<DL>
-<DD>Convert an IPP Date value to Unix Time.<DD><DL>
-<DT><B>Returns:</B><DD><code>long</code> Unix time in seconds.<DT><B>See Also: </B><DD><code>IPPCalender</code></DL>
-</DD>
-</DL>
-<!-- ========= END OF CLASS DATA ========= -->
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../com/easysw/cups/IPPURLConnection.html"><B>PREV CLASS</B></A>
- NEXT CLASS</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="IPPValue.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-<TR>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
- SUMMARY: INNER | FIELD | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
-<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
-DETAIL: FIELD | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Deprecated List
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/easysw/cups/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="deprecated-list.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<CENTER>
-<H2>
-<B>Deprecated API</B></H2>
-</CENTER>
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/easysw/cups/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Deprecated</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="deprecated-list.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: API Help
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/easysw/cups/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="help-doc.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<CENTER>
-<H1>
-How This API Document Is Organized</H1>
-</CENTER>
-This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.<H3>
-Package</H3>
-<BLOCKQUOTE>
-
-<P>
-Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain four categories:<UL>
-<LI>Interfaces (italic)<LI>Classes<LI>Exceptions<LI>Errors</UL>
-</BLOCKQUOTE>
-<H3>
-Class/Interface</H3>
-<BLOCKQUOTE>
-
-<P>
-Each class, interface, inner class and inner interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:<UL>
-<LI>Class inheritance diagram<LI>Direct Subclasses<LI>All Known Subinterfaces<LI>All Known Implementing Classes<LI>Class/interface declaration<LI>Class/interface description
-<P>
-<LI>Inner Class Summary<LI>Field Summary<LI>Constructor Summary<LI>Method Summary
-<P>
-<LI>Field Detail<LI>Constructor Detail<LI>Method Detail</UL>
-Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.</BLOCKQUOTE>
-<H3>
-Tree (Class Hierarchy)</H3>
-<BLOCKQUOTE>
-There is a <A HREF="overview-tree.html">Class Hierarchy</A> page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with <code>java.lang.Object</code>. The interfaces do not inherit from <code>java.lang.Object</code>.<UL>
-<LI>When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.<LI>When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.</UL>
-</BLOCKQUOTE>
-<H3>
-Deprecated API</H3>
-<BLOCKQUOTE>
-The <A HREF="deprecated-list.html">Deprecated API</A> page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.</BLOCKQUOTE>
-<H3>
-Index</H3>
-<BLOCKQUOTE>
-The <A HREF="index-all.html">Index</A> contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.</BLOCKQUOTE>
-<H3>
-Prev/Next</H3>
-These links take you to the next or previous class, interface, package, or related page.<H3>
-Frames/No Frames</H3>
-These links show and hide the HTML frames. All pages are available with or without frames.
-<P>
-<H3>
-Serialized Form</H3>
-Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.
-<P>
-<FONT SIZE="-1">
-<EM>
-This help file applies to API documentation generated using the standard doclet. </EM>
-</FONT>
-<BR>
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/easysw/cups/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Help</B></FONT> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="help-doc.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Index
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/easysw/cups/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="index-all.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A> <HR>
-<A NAME="_A_"><!-- --></A><H2>
-<B>A</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#ACTIVATE_PRINTER"><B>ACTIVATE_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#activity"><B>activity</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPP.html#addAttribute(com.easysw.cups.IPPAttribute)"><B>addAttribute(IPPAttribute)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>Add an attribute to the attibutes list
- for later parsing.
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addBoolean(boolean)"><B>addBoolean(boolean)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addBooleans(boolean[])"><B>addBooleans(boolean[])</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addDate(char[])"><B>addDate(char[])</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addEnum(int)"><B>addEnum(int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addInteger(int)"><B>addInteger(int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addIntegers(int[])"><B>addIntegers(int[])</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addRange(int, int)"><B>addRange(int, int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addRanges(int[], int[])"><B>addRanges(int[], int[])</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addResolution(byte, int, int)"><B>addResolution(byte, int, int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addResolutions(byte, int[], int[])"><B>addResolutions(byte, int[], int[])</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addSeparator()"><B>addSeparator()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addString(java.lang.String, java.lang.String)"><B>addString(String, String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#addStrings(java.lang.String, java.lang.String[])"><B>addStrings(String, String[])</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#ATTRIBUTE"><B>ATTRIBUTE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#ATTRIBUTES"><B>ATTRIBUTES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#ATTRIBUTES_NOT_SETTABLE"><B>ATTRIBUTES_NOT_SETTABLE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPP.html#attrs"><B>attrs</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#auth_type"><B>auth_type</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_B_"><!-- --></A><H2>
-<B>B</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#BAD_REQUEST"><B>BAD_REQUEST</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#br"><B>br</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_C_"><!-- --></A><H2>
-<B>C</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CANCEL_CURRENT_JOB"><B>CANCEL_CURRENT_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CANCEL_JOB"><B>CANCEL_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CANCEL_SUBSCRIPTION"><B>CANCEL_SUBSCRIPTION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CHARSET"><B>CHARSET</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#checkForResponse()"><B>checkForResponse()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/package-summary.html"><B>com.easysw.cups</B></A> - package com.easysw.cups<DD> <DT><A HREF="com/easysw/cups/IPPDefs.html#COMPRESSION_ERROR"><B>COMPRESSION_ERROR</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#COMPRESSION_NOT_SUPPORTED"><B>COMPRESSION_NOT_SUPPORTED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CONFLICT"><B>CONFLICT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#conn"><B>conn</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPURLConnection.html#connect()"><B>connect()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPURLConnection.html">IPPURLConnection</A>
-<DD>Not used.
-<DT><A HREF="com/easysw/cups/IPPHttp.html#connected"><B>connected</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CREATE_JOB"><B>CREATE_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CREATE_JOB_SUBSCRIPTION"><B>CREATE_JOB_SUBSCRIPTION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CREATE_PRINTER_SUBSCRIPTION"><B>CREATE_PRINTER_SUBSCRIPTION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/Cups.html"><B>Cups</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>.<DD> <DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_ACCEPT_JOBS"><B>CUPS_ACCEPT_JOBS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_ADD_CLASS"><B>CUPS_ADD_CLASS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_ADD_DEVICE"><B>CUPS_ADD_DEVICE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_ADD_PRINTER"><B>CUPS_ADD_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_DELETE_CLASS"><B>CUPS_DELETE_CLASS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_DELETE_DEVICE"><B>CUPS_DELETE_DEVICE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_DELETE_PRINTER"><B>CUPS_DELETE_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_GET_CLASSES"><B>CUPS_GET_CLASSES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_GET_DEFAULT"><B>CUPS_GET_DEFAULT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_GET_DEVICES"><B>CUPS_GET_DEVICES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_GET_PPDS"><B>CUPS_GET_PPDS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_GET_PRINTERS"><B>CUPS_GET_PRINTERS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_MOVE_JOB"><B>CUPS_MOVE_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_REJECT_JOBS"><B>CUPS_REJECT_JOBS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#CUPS_SET_DEFAULT"><B>CUPS_SET_DEFAULT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/Cups.html#Cups()"><B>Cups()</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Void constructor.
-<DT><A HREF="com/easysw/cups/Cups.html#Cups(java.net.URL)"><B>Cups(URL)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Constructor using a <code>URL</code>.
-<DT><A HREF="com/easysw/cups/Cups.html#cupsCancelJob(java.lang.String, int, java.lang.String)"><B>cupsCancelJob(String, int, String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Cancel a job - send a job cancel request to the server.
-<DT><A HREF="com/easysw/cups/Cups.html#cupsGetDefault()"><B>cupsGetDefault()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Get default destination.
-<DT><A HREF="com/easysw/cups/Cups.html#cupsGetJobs(boolean, boolean)"><B>cupsGetJobs(boolean, boolean)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Get a list of jobs.
-<DT><A HREF="com/easysw/cups/Cups.html#cupsGetPrinterAttributes(java.lang.String)"><B>cupsGetPrinterAttributes(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Get printer attributes
-<DT><A HREF="com/easysw/cups/Cups.html#cupsGetPrinters()"><B>cupsGetPrinters()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Get a list of printers.
-<DT><A HREF="com/easysw/cups/Cups.html#cupsGetPrinterStatus(java.lang.String)"><B>cupsGetPrinterStatus(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html"><B>CupsJob</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>.<DD> <DT><A HREF="com/easysw/cups/CupsJob.html#CupsJob()"><B>CupsJob()</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>Constructor - set some default values.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html"><B>CupsPrinter</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>.<DD> <DT><A HREF="com/easysw/cups/CupsPrinter.html#CupsPrinter(com.easysw.cups.Cups)"><B>CupsPrinter(Cups)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Constructor.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#CupsPrinter(com.easysw.cups.Cups, java.lang.String)"><B>CupsPrinter(Cups, String)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Constructor with name.
-<DT><A HREF="com/easysw/cups/Cups.html#cupsPrintFile(java.lang.String, com.easysw.cups.IPPAttribute[])"><B>cupsPrintFile(String, IPPAttribute[])</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Print a file.
-</DL>
-<HR>
-<A NAME="_D_"><!-- --></A><H2>
-<B>D</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#DATA"><B>DATA</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#days"><B>days</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#DEACTIVATE_PRINTER"><B>DEACTIVATE_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#DEVICE_ERROR"><B>DEVICE_ERROR</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#DISABLE_PRINTER"><B>DISABLE_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPURLConnection.html#disconnect()"><B>disconnect()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPURLConnection.html">IPPURLConnection</A>
-<DD>Not used.
-<DT><A HREF="com/easysw/cups/IPPDefs.html#DOCUMENT_ACCESS_ERROR"><B>DOCUMENT_ACCESS_ERROR</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#document_format"><B>document_format</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#DOCUMENT_FORMAT"><B>DOCUMENT_FORMAT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#DOCUMENT_FORMAT_ERROR"><B>DOCUMENT_FORMAT_ERROR</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/Cups.html#doRequest()"><B>doRequest()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Do a CUPS request to the server.
-<DT><A HREF="com/easysw/cups/Cups.html#doRequest(java.io.File)"><B>doRequest(File)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Send a FILE to the CUPS server.
-<DT><A HREF="com/easysw/cups/Cups.html#doRequest(java.lang.String)"><B>doRequest(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPP.html#dump_response()"><B>dump_response()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#dump_values()"><B>dump_values()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_E_"><!-- --></A><H2>
-<B>E</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#ENABLE_PRINTER"><B>ENABLE_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#error"><B>error</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#ERROR"><B>ERROR</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#ERROR_JOB_CANCELLED"><B>ERROR_JOB_CANCELLED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_F_"><!-- --></A><H2>
-<B>F</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_BALE"><B>FINISHINGS_BALE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_BIND"><B>FINISHINGS_BIND</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_BIND_BOTTOM"><B>FINISHINGS_BIND_BOTTOM</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_BIND_LEFT"><B>FINISHINGS_BIND_LEFT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_BIND_RIGHT"><B>FINISHINGS_BIND_RIGHT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_BIND_TOP"><B>FINISHINGS_BIND_TOP</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_BOOKLET_MAKER"><B>FINISHINGS_BOOKLET_MAKER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_COVER"><B>FINISHINGS_COVER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_EDGE_STITCH"><B>FINISHINGS_EDGE_STITCH</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_EDGE_STITCH_BOTTOM"><B>FINISHINGS_EDGE_STITCH_BOTTOM</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_EDGE_STITCH_LEFT"><B>FINISHINGS_EDGE_STITCH_LEFT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_EDGE_STITCH_RIGHT"><B>FINISHINGS_EDGE_STITCH_RIGHT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_EDGE_STITCH_TOP"><B>FINISHINGS_EDGE_STITCH_TOP</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_FOLD"><B>FINISHINGS_FOLD</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_JOB_OFFSET"><B>FINISHINGS_JOB_OFFSET</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_NONE"><B>FINISHINGS_NONE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_PUNCH"><B>FINISHINGS_PUNCH</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_SADDLE_STITCH"><B>FINISHINGS_SADDLE_STITCH</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE"><B>FINISHINGS_STAPLE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_BOTTOM_LEFT"><B>FINISHINGS_STAPLE_BOTTOM_LEFT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_BOTTOM_RIGHT"><B>FINISHINGS_STAPLE_BOTTOM_RIGHT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_DUAL_BOTTOM"><B>FINISHINGS_STAPLE_DUAL_BOTTOM</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_DUAL_LEFT"><B>FINISHINGS_STAPLE_DUAL_LEFT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_DUAL_RIGHT"><B>FINISHINGS_STAPLE_DUAL_RIGHT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_DUAL_TOP"><B>FINISHINGS_STAPLE_DUAL_TOP</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_TOP_LEFT"><B>FINISHINGS_STAPLE_TOP_LEFT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_STAPLE_TOP_RIGHT"><B>FINISHINGS_STAPLE_TOP_RIGHT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FINISHINGS_TRIM"><B>FINISHINGS_TRIM</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#FORBIDDEN"><B>FORBIDDEN</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_G_"><!-- --></A><H2>
-<B>G</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#GET_JOB_ATTRIBUTES"><B>GET_JOB_ATTRIBUTES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#GET_JOBS"><B>GET_JOBS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#GET_NOTIFICATIONS"><B>GET_NOTIFICATIONS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#GET_PRINT_SUPPORT_FILES"><B>GET_PRINT_SUPPORT_FILES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#GET_PRINTER_ATTRIBUTES"><B>GET_PRINTER_ATTRIBUTES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#GET_PRINTER_SUPPORTED_VALUES"><B>GET_PRINTER_SUPPORTED_VALUES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#GET_SUBSCRIPTION_ATTRIBUTES"><B>GET_SUBSCRIPTION_ATTRIBUTES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#GET_SUBSCRIPTIONS"><B>GET_SUBSCRIPTIONS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getAttributes(com.easysw.cups.Cups)"><B>getAttributes(Cups)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer's attributes.
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#getBytes(int, int)"><B>getBytes(int, int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getCopiesDefault()"><B>getCopiesDefault()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer number of copies default.
-<DT><A HREF="com/easysw/cups/IPP.html#getCurrentAttribute()"><B>getCurrentAttribute()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>Get the current attribute pointed at by
- <code>current</code>.
-<DT><A HREF="com/easysw/cups/Cups.html#getEncrypt()"><B>getEncrypt()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Get the value of the <code>encrypt</code> member.
-<DT><A HREF="com/easysw/cups/IPPMD5.html#getInstance()"><B>getInstance()</B></A> -
-Static method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPMD5.html">IPPMD5</A>
-<DD>This returns the singleton instance
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getJobSheetsDefault()"><B>getJobSheetsDefault()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the default job sheets.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getJobSheetsSupported()"><B>getJobSheetsSupported()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer job sheets supported.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getLocation()"><B>getLocation()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer location.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getLowerCopiesSupported()"><B>getLowerCopiesSupported()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer lower copies supported.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getMakeAndModel()"><B>getMakeAndModel()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer make and model.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getOrientationDefault()"><B>getOrientationDefault()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the default orientation.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getOrientationSupported()"><B>getOrientationSupported()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer orientation supported.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getPageRangesSupported()"><B>getPageRangesSupported()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get whether the printer supports page ranges.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getPrinterName()"><B>getPrinterName()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer name.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getStateReasons()"><B>getStateReasons()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer state reasons.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getStateText()"><B>getStateText()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer state text.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getStatus(com.easysw.cups.Cups)"><B>getStatus(Cups)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer's status.
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#getUpperCopiesSupported()"><B>getUpperCopiesSupported()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Get the printer upper copies supported.
-<DT><A HREF="com/easysw/cups/IPPDefs.html#GONE"><B>GONE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_H_"><!-- --></A><H2>
-<B>H</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPMD5.html#hashData(byte[])"><B>hashData(byte[])</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPMD5.html">IPPMD5</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#HEADER"><B>HEADER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPMD5.html#hexStringFromBytes(byte[])"><B>hexStringFromBytes(byte[])</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPMD5.html">IPPMD5</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#HOLD_JOB"><B>HOLD_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#HOLD_NEW_JOBS"><B>HOLD_NEW_JOBS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#hostname"><B>hostname</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_0_9"><B>HTTP_0_9</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_1_0"><B>HTTP_1_0</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_1_1"><B>HTTP_1_1</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_ACCEPTED"><B>HTTP_ACCEPTED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_AUTH_BASIC"><B>HTTP_AUTH_BASIC</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_AUTH_MD5"><B>HTTP_AUTH_MD5</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_AUTH_MD5_INT"><B>HTTP_AUTH_MD5_INT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_AUTH_MD5_SESS"><B>HTTP_AUTH_MD5_SESS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_AUTH_MD5_SESS_INT"><B>HTTP_AUTH_MD5_SESS_INT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_AUTH_NONE"><B>HTTP_AUTH_NONE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_BAD_GATEWAY"><B>HTTP_BAD_GATEWAY</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_BAD_REQUEST"><B>HTTP_BAD_REQUEST</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_CLOSE"><B>HTTP_CLOSE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_CONFLICT"><B>HTTP_CONFLICT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#http_content_length"><B>http_content_length</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_CONTINUE"><B>HTTP_CONTINUE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_CREATED"><B>HTTP_CREATED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_DELETE"><B>HTTP_DELETE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_ENCODE_CHUNKED"><B>HTTP_ENCODE_CHUNKED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_ENCODE_LENGTH"><B>HTTP_ENCODE_LENGTH</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_ENCRYPT_ALWAYS"><B>HTTP_ENCRYPT_ALWAYS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_ENCRYPT_IF_REQUESTED"><B>HTTP_ENCRYPT_IF_REQUESTED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_ENCRYPT_NEVER"><B>HTTP_ENCRYPT_NEVER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_ENCRYPT_REQUIRED"><B>HTTP_ENCRYPT_REQUIRED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_ERROR"><B>HTTP_ERROR</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_ACCEPT_LANGUAGE"><B>HTTP_FIELD_ACCEPT_LANGUAGE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_ACCEPT_RANGES"><B>HTTP_FIELD_ACCEPT_RANGES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_AUTHORIZATION"><B>HTTP_FIELD_AUTHORIZATION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONNECTION"><B>HTTP_FIELD_CONNECTION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_ENCODING"><B>HTTP_FIELD_CONTENT_ENCODING</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_LANGUAGE"><B>HTTP_FIELD_CONTENT_LANGUAGE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_LENGTH"><B>HTTP_FIELD_CONTENT_LENGTH</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_LOCATION"><B>HTTP_FIELD_CONTENT_LOCATION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_MD5"><B>HTTP_FIELD_CONTENT_MD5</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_RANGE"><B>HTTP_FIELD_CONTENT_RANGE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_TYPE"><B>HTTP_FIELD_CONTENT_TYPE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_CONTENT_VERSION"><B>HTTP_FIELD_CONTENT_VERSION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_DATE"><B>HTTP_FIELD_DATE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_HOST"><B>HTTP_FIELD_HOST</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_IF_MODIFIED_SINCE"><B>HTTP_FIELD_IF_MODIFIED_SINCE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_IF_UNMODIFIED_SINCE"><B>HTTP_FIELD_IF_UNMODIFIED_SINCE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_KEEP_ALIVE"><B>HTTP_FIELD_KEEP_ALIVE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_LAST_MODIFIED"><B>HTTP_FIELD_LAST_MODIFIED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_LINK"><B>HTTP_FIELD_LINK</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_LOCATION"><B>HTTP_FIELD_LOCATION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_MAX"><B>HTTP_FIELD_MAX</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_RANGE"><B>HTTP_FIELD_RANGE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_REFERER"><B>HTTP_FIELD_REFERER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_RETRY_AFTER"><B>HTTP_FIELD_RETRY_AFTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_TRANSFER_ENCODING"><B>HTTP_FIELD_TRANSFER_ENCODING</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_UNKNOWN"><B>HTTP_FIELD_UNKNOWN</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_UPGRADE"><B>HTTP_FIELD_UPGRADE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_USER_AGENT"><B>HTTP_FIELD_USER_AGENT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FIELD_WWW_AUTHENTICATE"><B>HTTP_FIELD_WWW_AUTHENTICATE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#http_fields"><B>http_fields</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_FORBIDDEN"><B>HTTP_FORBIDDEN</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_GATEWAY_TIMEOUT"><B>HTTP_GATEWAY_TIMEOUT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_GET"><B>HTTP_GET</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_GET_SEND"><B>HTTP_GET_SEND</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_GONE"><B>HTTP_GONE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_HEAD"><B>HTTP_HEAD</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_KEEPALIVE_OFF"><B>HTTP_KEEPALIVE_OFF</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_KEEPALIVE_ON"><B>HTTP_KEEPALIVE_ON</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_LENGTH_REQUIRED"><B>HTTP_LENGTH_REQUIRED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_METHOD_NOT_ALLOWED"><B>HTTP_METHOD_NOT_ALLOWED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_MOVED_PERMANENTLY"><B>HTTP_MOVED_PERMANENTLY</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_MOVED_TEMPORARILY"><B>HTTP_MOVED_TEMPORARILY</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_MULTIPLE_CHOICES"><B>HTTP_MULTIPLE_CHOICES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_NO_CONTENT"><B>HTTP_NO_CONTENT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_NOT_ACCEPTABLE"><B>HTTP_NOT_ACCEPTABLE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_NOT_AUTHORITATIVE"><B>HTTP_NOT_AUTHORITATIVE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_NOT_FOUND"><B>HTTP_NOT_FOUND</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_NOT_IMPLEMENTED"><B>HTTP_NOT_IMPLEMENTED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_NOT_MODIFIED"><B>HTTP_NOT_MODIFIED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_NOT_SUPPORTED"><B>HTTP_NOT_SUPPORTED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_OK"><B>HTTP_OK</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_OPTIONS"><B>HTTP_OPTIONS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_PARTIAL_CONTENT"><B>HTTP_PARTIAL_CONTENT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_PAYMENT_REQUIRED"><B>HTTP_PAYMENT_REQUIRED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_POST"><B>HTTP_POST</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_POST_RECV"><B>HTTP_POST_RECV</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_POST_SEND"><B>HTTP_POST_SEND</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_PRECONDITION"><B>HTTP_PRECONDITION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_PROXY_AUTHENTICATION"><B>HTTP_PROXY_AUTHENTICATION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_PUT"><B>HTTP_PUT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_PUT_RECV"><B>HTTP_PUT_RECV</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#http_request"><B>http_request</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_REQUEST_TIMEOUT"><B>HTTP_REQUEST_TIMEOUT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_REQUEST_TOO_LARGE"><B>HTTP_REQUEST_TOO_LARGE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_RESET_CONTENT"><B>HTTP_RESET_CONTENT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_SEE_OTHER"><B>HTTP_SEE_OTHER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_SERVER_ERROR"><B>HTTP_SERVER_ERROR</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_SERVICE_UNAVAILABLE"><B>HTTP_SERVICE_UNAVAILABLE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_STATUS"><B>HTTP_STATUS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_SWITCHING_PROTOCOLS"><B>HTTP_SWITCHING_PROTOCOLS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_TRACE"><B>HTTP_TRACE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_UNAUTHORIZED"><B>HTTP_UNAUTHORIZED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_UNSUPPORTED_MEDIATYPE"><B>HTTP_UNSUPPORTED_MEDIATYPE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_UPGRADE_REQUIRED"><B>HTTP_UPGRADE_REQUIRED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_URI_TOO_LONG"><B>HTTP_URI_TOO_LONG</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_USE_PROXY"><B>HTTP_USE_PROXY</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#HTTP_WAITING"><B>HTTP_WAITING</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Class constants - most not in use yet.
-</DL>
-<HR>
-<A NAME="_I_"><!-- --></A><H2>
-<B>I</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#IDLE"><B>IDLE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#IGNORED_ALL_NOTIFICATIONS"><B>IGNORED_ALL_NOTIFICATIONS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#IGNORED_ALL_SUBSCRIPTIONS"><B>IGNORED_ALL_SUBSCRIPTIONS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#INTERNAL_ERROR"><B>INTERNAL_ERROR</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPP.html"><B>IPP</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>.<DD>An <code>IPP</code> object is used to hold the various
- attributes and status of an ipp request..<DT><A HREF="com/easysw/cups/IPP.html#IPP()"><B>IPP()</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPAttribute.html"><B>IPPAttribute</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>.<DD> <DT><A HREF="com/easysw/cups/IPPAttribute.html#IPPAttribute(int, int, java.lang.String)"><B>IPPAttribute(int, int, String)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPValue.html#IPPDateToTime()"><B>IPPDateToTime()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>
-<DD>Convert an IPP Date value to Unix Time.
-<DT><A HREF="com/easysw/cups/IPPDefs.html"><B>IPPDefs</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>.<DD><code>IPPDefs</code> is a collection of constants for use
- in the <code>IPP</code> and <code>CUPS</code> classes.<DT><A HREF="com/easysw/cups/IPPDefs.html#IPPDefs()"><B>IPPDefs()</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPError.html"><B>IPPError</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/IPPError.html">IPPError</A>.<DD> <DT><A HREF="com/easysw/cups/IPPError.html#IPPError(int)"><B>IPPError(int)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPError.html">IPPError</A>
-<DD>Constructor that sets <code>error_string</code> after creation.
-<DT><A HREF="com/easysw/cups/IPP.html#ippFindAttribute(java.lang.String, int)"><B>ippFindAttribute(String, int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>Find the named attribute of the correct type.
-<DT><A HREF="com/easysw/cups/IPP.html#ippFindNextAttribute(java.lang.String, int)"><B>ippFindNextAttribute(String, int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>Find the named attribute of the correct type.
-<DT><A HREF="com/easysw/cups/IPPHttp.html"><B>IPPHttp</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>.<DD> <DT><A HREF="com/easysw/cups/IPPHttp.html#IPPHttp(java.lang.String)"><B>IPPHttp(String)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Constructor using <code>URL</code>.
-<DT><A HREF="com/easysw/cups/IPPHttp.html#IPPHttp(java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>IPPHttp(String, String, String, String)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Constructor using <code>URL, user and pass</code>.
-<DT><A HREF="com/easysw/cups/IPPMD5.html"><B>IPPMD5</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/IPPMD5.html">IPPMD5</A>.<DD> <DT><A HREF="com/easysw/cups/IPPRequest.html"><B>IPPRequest</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/IPPRequest.html">IPPRequest</A>.<DD>An <code>IPPRequest</code> object is used to hold the
- status and id's of a request.<DT><A HREF="com/easysw/cups/IPPRequest.html#IPPRequest()"><B>IPPRequest()</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPRequest.html">IPPRequest</A>
-<DD>Constructor
-<DT><A HREF="com/easysw/cups/IPPRequest.html#IPPRequest(int, short)"><B>IPPRequest(int, short)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPRequest.html">IPPRequest</A>
-<DD>Constructor using request id and operation id.
-<DT><A HREF="com/easysw/cups/IPPStatus.html"><B>IPPStatus</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/IPPStatus.html">IPPStatus</A>.<DD>Class to convert a status code to text.<DT><A HREF="com/easysw/cups/IPPStatus.html#IPPStatus(int)"><B>IPPStatus(int)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPStatus.html">IPPStatus</A>
-<DD>Constructor, access the <code>status_text</code> member
- after creation.
-<DT><A HREF="com/easysw/cups/IPPURLConnection.html"><B>IPPURLConnection</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/IPPURLConnection.html">IPPURLConnection</A>.<DD> <DT><A HREF="com/easysw/cups/IPPURLConnection.html#IPPURLConnection(java.net.URL)"><B>IPPURLConnection(URL)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPURLConnection.html">IPPURLConnection</A>
-<DD>Constructor.
-<DT><A HREF="com/easysw/cups/IPPValue.html"><B>IPPValue</B></A> - class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>.<DD> <DT><A HREF="com/easysw/cups/IPPValue.html#IPPValue(boolean)"><B>IPPValue(boolean)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>
-<DD>Boolean constructor.
-<DT><A HREF="com/easysw/cups/IPPValue.html#IPPValue(byte)"><B>IPPValue(byte)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>
-<DD>Byte constructor.
-<DT><A HREF="com/easysw/cups/IPPValue.html#IPPValue(byte, int, int)"><B>IPPValue(byte, int, int)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>
-<DD>Resolution constructor.
-<DT><A HREF="com/easysw/cups/IPPValue.html#IPPValue(char[])"><B>IPPValue(char[])</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>
-<DD>Date constructor.
-<DT><A HREF="com/easysw/cups/IPPValue.html#IPPValue(int)"><B>IPPValue(int)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>
-<DD>Integer constructor.
-<DT><A HREF="com/easysw/cups/IPPValue.html#IPPValue(int, boolean)"><B>IPPValue(int, boolean)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>
-<DD>Enum constructor.
-<DT><A HREF="com/easysw/cups/IPPValue.html#IPPValue(int, char[])"><B>IPPValue(int, char[])</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>
-<DD>Raw data constructor.
-<DT><A HREF="com/easysw/cups/IPPValue.html#IPPValue(int, int)"><B>IPPValue(int, int)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>
-<DD>Range constructor.
-<DT><A HREF="com/easysw/cups/IPPValue.html#IPPValue(short)"><B>IPPValue(short)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>
-<DD>Short constructor.
-<DT><A HREF="com/easysw/cups/IPPValue.html#IPPValue(java.lang.String, java.lang.String)"><B>IPPValue(String, String)</B></A> -
-Constructor for class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html">IPPValue</A>
-<DD>String constructor.
-<DT><A HREF="com/easysw/cups/IPPHttp.html#is"><B>is</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_J_"><!-- --></A><H2>
-<B>J</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#JOB_ABORTED"><B>JOB_ABORTED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#JOB_CANCELLED"><B>JOB_CANCELLED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#JOB_COMPLETED"><B>JOB_COMPLETED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#JOB_HELD"><B>JOB_HELD</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_hold_until"><B>job_hold_until</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_id"><B>job_id</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_k_octets"><B>job_k_octets</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_media_sheets_completed"><B>job_media_sheets_completed</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_more_info"><B>job_more_info</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_name"><B>job_name</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_originating_host_name"><B>job_originating_host_name</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_originating_user_name"><B>job_originating_user_name</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#JOB_PENDING"><B>JOB_PENDING</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_printer_up_time"><B>job_printer_up_time</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_printer_uri"><B>job_printer_uri</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_priority"><B>job_priority</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#JOB_PROCESSING"><B>JOB_PROCESSING</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_sheets"><B>job_sheets</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_state"><B>job_state</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_state_reasons"><B>job_state_reasons</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#JOB_STOPPED"><B>JOB_STOPPED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#job_uri"><B>job_uri</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#jobStatusText()"><B>jobStatusText()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>Convert a job status to a string.
-</DL>
-<HR>
-<A NAME="_L_"><!-- --></A><H2>
-<B>L</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#LANDSCAPE"><B>LANDSCAPE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_M_"><!-- --></A><H2>
-<B>M</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#MAX_NAME"><B>MAX_NAME</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#MAX_VALUES"><B>MAX_VALUES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPMD5.html#md"><B>md</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPMD5.html">IPPMD5</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPMD5.html#MD5Digest(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)"><B>MD5Digest(String, String, String, String, String, String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPMD5.html">IPPMD5</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#method"><B>method</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#months"><B>months</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#MULTIPLE_JOBS_NOT_SUPPORTED"><B>MULTIPLE_JOBS_NOT_SUPPORTED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_N_"><!-- --></A><H2>
-<B>N</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#nonce"><B>nonce</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#NOT_ACCEPTING"><B>NOT_ACCEPTING</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#NOT_AUTHENTICATED"><B>NOT_AUTHENTICATED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#NOT_AUTHORIZED"><B>NOT_AUTHORIZED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#NOT_FOUND"><B>NOT_FOUND</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#NOT_POSSIBLE"><B>NOT_POSSIBLE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_O_"><!-- --></A><H2>
-<B>O</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#OK"><B>OK</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#OK_BUT_CANCEL_SUBSCRIPTION"><B>OK_BUT_CANCEL_SUBSCRIPTION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#OK_CONFLICT"><B>OK_CONFLICT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#OK_IGNORED_NOTIFICATIONS"><B>OK_IGNORED_NOTIFICATIONS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#OK_IGNORED_SUBSCRIPTIONS"><B>OK_IGNORED_SUBSCRIPTIONS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#OK_SUBST"><B>OK_SUBST</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#OK_TOO_MANY_EVENTS"><B>OK_TOO_MANY_EVENTS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#opaque"><B>opaque</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#OPERATION_NOT_SUPPORTED"><B>OPERATION_NOT_SUPPORTED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#os"><B>os</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_P_"><!-- --></A><H2>
-<B>P</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#parseAuthenticate(java.lang.String)"><B>parseAuthenticate(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#passwd"><B>passwd</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#path"><B>path</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PAUSE_PRINTER"><B>PAUSE_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PAUSE_PRINTER_AFTER_CURRENT_JOB"><B>PAUSE_PRINTER_AFTER_CURRENT_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#port"><B>port</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PORT"><B>PORT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PORTRAIT"><B>PORTRAIT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PRINT_JOB"><B>PRINT_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PRINT_SUPPORT_FILE_NOT_FOUND"><B>PRINT_SUPPORT_FILE_NOT_FOUND</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PRINT_URI"><B>PRINT_URI</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PRINTER_BUSY"><B>PRINTER_BUSY</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PRINTER_IDLE"><B>PRINTER_IDLE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PRINTER_IS_DEACTIVATED"><B>PRINTER_IS_DEACTIVATED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PRINTER_PROCESSING"><B>PRINTER_PROCESSING</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PRINTER_STOPPED"><B>PRINTER_STOPPED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PRIVATE"><B>PRIVATE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#processResponse()"><B>processResponse()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Process the HTTP response from the server.
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PROMOTE_JOB"><B>PROMOTE_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#PURGE_JOBS"><B>PURGE_JOBS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_Q_"><!-- --></A><H2>
-<B>Q</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#QUALITY_DRAFT"><B>QUALITY_DRAFT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#QUALITY_HIGH"><B>QUALITY_HIGH</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#QUALITY_NORMAL"><B>QUALITY_NORMAL</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_R_"><!-- --></A><H2>
-<B>R</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#read_buffer"><B>read_buffer</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#read_header_charset"><B>read_header_charset</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#read_header_content_language"><B>read_header_content_language</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#read_header_content_length"><B>read_header_content_length</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#read_header_content_type"><B>read_header_content_type</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#read_header_date"><B>read_header_date</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#read_header_server"><B>read_header_server</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#read_header()"><B>read_header()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Read the HTTP header from the input stream.
-<DT><A HREF="com/easysw/cups/IPPHttp.html#read_line()"><B>read_line()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Read a line from the input stream.
-<DT><A HREF="com/easysw/cups/IPPHttp.html#read(int)"><B>read(int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Read up to <code>count</code> bytes from the input stream.
-<DT><A HREF="com/easysw/cups/IPPHttp.html#realm"><B>realm</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#reConnect()"><B>reConnect()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Re-establish a dropped connection.
-<DT><A HREF="com/easysw/cups/IPPDefs.html#REDIRECTION_OTHER_SITE"><B>REDIRECTION_OTHER_SITE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#RELEASE_HELD_NEW_JOBS"><B>RELEASE_HELD_NEW_JOBS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#RELEASE_JOB"><B>RELEASE_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#RENEW_SUBSCRIPTION"><B>RENEW_SUBSCRIPTION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#REPROCESS_JOB"><B>REPROCESS_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPP.html#request"><B>request</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#REQUEST_ENTITY"><B>REQUEST_ENTITY</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#REQUEST_VALUE"><B>REQUEST_VALUE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#RES_PER_CM"><B>RES_PER_CM</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#RES_PER_INCH"><B>RES_PER_INCH</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#resource"><B>resource</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#RESTART_JOB"><B>RESTART_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#RESTART_PRINTER"><B>RESTART_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#RESUME_JOB"><B>RESUME_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#RESUME_PRINTER"><B>RESUME_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#REVERSE_LANDSCAPE"><B>REVERSE_LANDSCAPE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#REVERSE_PORTRAIT"><B>REVERSE_PORTRAIT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_S_"><!-- --></A><H2>
-<B>S</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#SCHEDULE_JOB_AFTER"><B>SCHEDULE_JOB_AFTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#SEND_DOCUMENT"><B>SEND_DOCUMENT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#SEND_NOTIFICATIONS"><B>SEND_NOTIFICATIONS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#SEND_URI"><B>SEND_URI</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#SERVICE_UNAVAILABLE"><B>SERVICE_UNAVAILABLE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#SET_JOB_ATTRIBUTES"><B>SET_JOB_ATTRIBUTES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#SET_PRINTER_ATTRIBUTES"><B>SET_PRINTER_ATTRIBUTES</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#setDefaults()"><B>setDefaults()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Initialize the members with mostly sane values.
-<DT><A HREF="com/easysw/cups/Cups.html#setDest(java.lang.String)"><B>setDest(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Set the value of the <code>dest</code> member.
-<DT><A HREF="com/easysw/cups/Cups.html#setEncrypt(boolean)"><B>setEncrypt(boolean)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Set the value of the <code>encrypt</code> member.
-<DT><A HREF="com/easysw/cups/Cups.html#setInstance(java.lang.String)"><B>setInstance(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Set the value of the <code>instance</code> member.
-<DT><A HREF="com/easysw/cups/IPPRequest.html#setOpStatus(short)"><B>setOpStatus(short)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPRequest.html">IPPRequest</A>
-<DD>Set the operation status of a request.
-<DT><A HREF="com/easysw/cups/Cups.html#setPasswd(java.lang.String)"><B>setPasswd(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Set the value of the <code>passwd</code> member.
-<DT><A HREF="com/easysw/cups/IPPHttp.html#setPassword(java.lang.String)"><B>setPassword(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Set the password.
-<DT><A HREF="com/easysw/cups/Cups.html#setPath(java.lang.String)"><B>setPath(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Set the value of the <code>path</code> member.
-<DT><A HREF="com/easysw/cups/Cups.html#setPort(int)"><B>setPort(int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Set the value of the <code>port</code> member.
-<DT><A HREF="com/easysw/cups/Cups.html#setProtocol(java.lang.String)"><B>setProtocol(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Set the value of the <code>protocol</code> member.
-<DT><A HREF="com/easysw/cups/IPP.html#setRequestID(short)"><B>setRequestID(short)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>Set the <code>IPP</code> request ID.
-<DT><A HREF="com/easysw/cups/IPP.html#setRequestOperationID(short)"><B>setRequestOperationID(short)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>Set the <code>IPP</code> operation ID.
-<DT><A HREF="com/easysw/cups/Cups.html#setServer(java.lang.String)"><B>setServer(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Set the value of the <code>server</code> member.
-<DT><A HREF="com/easysw/cups/IPPRequest.html#setStatus(short)"><B>setStatus(short)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPRequest.html">IPPRequest</A>
-<DD>Set the current status of a request.
-<DT><A HREF="com/easysw/cups/IPPHttp.html#setUser(java.lang.String)"><B>setUser(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Set the user name.
-<DT><A HREF="com/easysw/cups/Cups.html#setUser(java.lang.String)"><B>setUser(String)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html">Cups</A>
-<DD>Set the value of the <code>user</code> member.
-<DT><A HREF="com/easysw/cups/IPPDefs.html#SHUTDOWN_PRINTER"><B>SHUTDOWN_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPP.html#sizeInBytes()"><B>sizeInBytes()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>Get the size in bytes of an <code>IPP</code> request.
-<DT><A HREF="com/easysw/cups/IPPAttribute.html#sizeInBytes(int)"><B>sizeInBytes(int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html">IPPAttribute</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#STARTUP_PRINTER"><B>STARTUP_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#status"><B>status</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPP.html#status"><B>status</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html">IPP</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#status_text"><B>status_text</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#SUSPEND_CURRENT_JOB"><B>SUSPEND_CURRENT_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_T_"><!-- --></A><H2>
-<B>T</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_ADMINDEFINE"><B>TAG_ADMINDEFINE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_BEGIN_COLLECTION"><B>TAG_BEGIN_COLLECTION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_BOOLEAN"><B>TAG_BOOLEAN</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_CHARSET"><B>TAG_CHARSET</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_COPY"><B>TAG_COPY</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_DATE"><B>TAG_DATE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_DEFAULT"><B>TAG_DEFAULT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_DELETEATTR"><B>TAG_DELETEATTR</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_END"><B>TAG_END</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_END_COLLECTION"><B>TAG_END_COLLECTION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_ENUM"><B>TAG_ENUM</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_EVENT_NOTIFICATION"><B>TAG_EVENT_NOTIFICATION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_INTEGER"><B>TAG_INTEGER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_JOB"><B>TAG_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_KEYWORD"><B>TAG_KEYWORD</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_LANGUAGE"><B>TAG_LANGUAGE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_MASK"><B>TAG_MASK</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_MEMBERNAME"><B>TAG_MEMBERNAME</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_MIMETYPE"><B>TAG_MIMETYPE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_NAME"><B>TAG_NAME</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_NAMELANG"><B>TAG_NAMELANG</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_NOTSETTABLE"><B>TAG_NOTSETTABLE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_NOVALUE"><B>TAG_NOVALUE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_OPERATION"><B>TAG_OPERATION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_PRINTER"><B>TAG_PRINTER</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_RANGE"><B>TAG_RANGE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_RESOLUTION"><B>TAG_RESOLUTION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_STRING"><B>TAG_STRING</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_SUBSCRIPTION"><B>TAG_SUBSCRIPTION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_TEXT"><B>TAG_TEXT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_TEXTLANG"><B>TAG_TEXTLANG</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_UNKNOWN"><B>TAG_UNKNOWN</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_UNSUPPORTED_GROUP"><B>TAG_UNSUPPORTED_GROUP</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_UNSUPPORTED_VALUE"><B>TAG_UNSUPPORTED_VALUE</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_URI"><B>TAG_URI</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_URISCHEME"><B>TAG_URISCHEME</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TAG_ZERO"><B>TAG_ZERO</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TEMPORARY_ERROR"><B>TEMPORARY_ERROR</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#time_at_completed"><B>time_at_completed</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#time_at_creation"><B>time_at_creation</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/CupsJob.html#time_at_processing"><B>time_at_processing</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TIMEOUT"><B>TIMEOUT</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#TOO_MANY_SUBSCRIPTIONS"><B>TOO_MANY_SUBSCRIPTIONS</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_U_"><!-- --></A><H2>
-<B>U</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/CupsPrinter.html#updateAttribute(com.easysw.cups.IPPAttribute)"><B>updateAttribute(IPPAttribute)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html">CupsPrinter</A>
-<DD>Process an attribute from the cups.doRequest() method and move
- the values into local members.
-<DT><A HREF="com/easysw/cups/CupsJob.html#updateAttribute(com.easysw.cups.IPPAttribute)"><B>updateAttribute(IPPAttribute)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html">CupsJob</A>
-<DD>Process an attribute from a cups.doRequest() call
- and move the value into a local member.
-<DT><A HREF="com/easysw/cups/IPPDefs.html#URI_SCHEME"><B>URI_SCHEME</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#user"><B>user</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPURLConnection.html#usingProxy()"><B>usingProxy()</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPURLConnection.html">IPPURLConnection</A>
-<DD>Determine if using proxy.
-</DL>
-<HR>
-<A NAME="_V_"><!-- --></A><H2>
-<B>V</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#VALIDATE_JOB"><B>VALIDATE_JOB</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#version"><B>version</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#VERSION"><B>VERSION</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPDefs.html#VERSION_NOT_SUPPORTED"><B>VERSION_NOT_SUPPORTED</B></A> -
-Static variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html">IPPDefs</A>
-<DD>
-</DL>
-<HR>
-<A NAME="_W_"><!-- --></A><H2>
-<B>W</B></H2>
-<DL>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#write_content_length"><B>write_content_length</B></A> -
-Variable in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>
-<DT><A HREF="com/easysw/cups/IPPHttp.html#write(byte[])"><B>write(byte[])</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Write bytes to the output stream.
-<DT><A HREF="com/easysw/cups/IPPHttp.html#write(byte[], int)"><B>write(byte[], int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Write bytes to the output stream.
-<DT><A HREF="com/easysw/cups/IPPHttp.html#writeHeader(java.lang.String, int)"><B>writeHeader(String, int)</B></A> -
-Method in class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html">IPPHttp</A>
-<DD>Write the request header bytes to the server.
-</DL>
-<HR>
-<A HREF="#_A_">A</A> <A HREF="#_B_">B</A> <A HREF="#_C_">C</A> <A HREF="#_D_">D</A> <A HREF="#_E_">E</A> <A HREF="#_F_">F</A> <A HREF="#_G_">G</A> <A HREF="#_H_">H</A> <A HREF="#_I_">I</A> <A HREF="#_J_">J</A> <A HREF="#_L_">L</A> <A HREF="#_M_">M</A> <A HREF="#_N_">N</A> <A HREF="#_O_">O</A> <A HREF="#_P_">P</A> <A HREF="#_Q_">Q</A> <A HREF="#_R_">R</A> <A HREF="#_S_">S</A> <A HREF="#_T_">T</A> <A HREF="#_U_">U</A> <A HREF="#_V_">V</A> <A HREF="#_W_">W</A>
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/easysw/cups/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Index</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="index-all.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd>
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003-->
-<TITLE>
-Generated Documentation (Untitled)
-</TITLE>
-</HEAD>
-<FRAMESET cols="20%,80%">
-<FRAME src="allclasses-frame.html" name="packageFrame">
-<FRAME src="com/easysw/cups/package-summary.html" name="classFrame">
-</FRAMESET>
-<NOFRAMES>
-<H2>
-Frame Alert</H2>
-
-<P>
-This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.
-<BR>
-Link to <A HREF="com/easysw/cups/package-summary.html">Non-frame version.</A></NOFRAMES>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-: Class Hierarchy
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="overview-tree.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<CENTER>
-<H2>
-Hierarchy For All Packages</H2>
-</CENTER>
-<DL>
-<DT><B>Package Hierarchies: </B><DD><A HREF="com/easysw/cups/package-tree.html">com.easysw.cups</A></DL>
-<HR>
-<H2>
-Class Hierarchy
-</H2>
-<UL>
-<LI TYPE="circle">class java.lang.Object<UL>
-<LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/Cups.html"><B>Cups</B></A><LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/CupsJob.html"><B>CupsJob</B></A><LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/CupsPrinter.html"><B>CupsPrinter</B></A><LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/IPP.html"><B>IPP</B></A><LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/IPPAttribute.html"><B>IPPAttribute</B></A><LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/IPPDefs.html"><B>IPPDefs</B></A><LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/IPPError.html"><B>IPPError</B></A><LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/IPPHttp.html"><B>IPPHttp</B></A><LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/IPPMD5.html"><B>IPPMD5</B></A><LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/IPPRequest.html"><B>IPPRequest</B></A><LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/IPPStatus.html"><B>IPPStatus</B></A><LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/IPPValue.html"><B>IPPValue</B></A><LI TYPE="circle">class java.net.URLConnection<UL>
-<LI TYPE="circle">class com.easysw.cups.<A HREF="com/easysw/cups/IPPURLConnection.html"><B>IPPURLConnection</B></A></UL>
-</UL>
-</UL>
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
- <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="overview-tree.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-com.easysw.cups
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<BR>
-
-<BR>
-
-<BR>
-<CENTER>
-The front page has been relocated.Please see:
-<BR>
- <A HREF="index.html">Frame version</A>
-<BR>
- <A HREF="com/easysw/cups/package-summary.html">Non-frame version.</A></CENTER>
-
-</BODY>
-</HTML>
+++ /dev/null
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN""http://www.w3.org/TR/REC-html40/frameset.dtd">
-<!--NewPage-->
-<HTML>
-<HEAD>
-<!-- Generated by javadoc on Tue Feb 11 14:29:07 PST 2003 -->
-<TITLE>
-Serialized Form
-</TITLE>
-<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
-</HEAD>
-<BODY BGCOLOR="white">
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_top"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_top_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/easysw/cups/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="serialized-form.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-<CENTER>
-<H1>
-Serialized Form</H1>
-</CENTER>
-<HR>
-
-<!-- ========== START OF NAVBAR ========== -->
-<A NAME="navbar_bottom"><!-- --></A>
-<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
-<TR>
-<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
-<A NAME="navbar_bottom_firstrow"><!-- --></A>
-<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
- <TR ALIGN="center" VALIGN="top">
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Package</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="com/easysw/cups/package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
- <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
- </TR>
-</TABLE>
-</TD>
-<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
-</EM>
-</TD>
-</TR>
-
-<TR>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- PREV
- NEXT</FONT></TD>
-<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
- <A HREF="index.html" TARGET="_top"><B>FRAMES</B></A>
- <A HREF="serialized-form.html" TARGET="_top"><B>NO FRAMES</B></A></FONT></TD>
-</TR>
-</TABLE>
-<!-- =========== END OF NAVBAR =========== -->
-
-<HR>
-
-</BODY>
-</HTML>
+++ /dev/null
-/* Javadoc style sheet */
-
-/* Define colors, fonts and other style attributes here to override the defaults */
-
-/* Page background color */
-body { background-color: #FFFFFF }
-
-/* Table colors */
-.TableHeadingColor { background: #CCCCFF } /* Dark mauve */
-.TableSubHeadingColor { background: #EEEEFF } /* Light mauve */
-.TableRowColor { background: #FFFFFF } /* White */
-
-/* Font used in left-hand frame lists */
-.FrameTitleFont { font-size: normal; font-family: normal }
-.FrameHeadingFont { font-size: normal; font-family: normal }
-.FrameItemFont { font-size: normal; font-family: normal }
-
-/* Example of smaller, sans-serif font in frames */
-/* .FrameItemFont { font-size: 10pt; font-family: Helvetica, Arial, sans-serif } */
-
-/* Navigation bar fonts and colors */
-.NavBarCell1 { background-color:#EEEEFF;}/* Light mauve */
-.NavBarCell1Rev { background-color:#00008B;}/* Dark Blue */
-.NavBarFont1 { font-family: Arial, Helvetica, sans-serif; color:#000000;}
-.NavBarFont1Rev { font-family: Arial, Helvetica, sans-serif; color:#FFFFFF;}
-
-.NavBarCell2 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
-.NavBarCell3 { font-family: Arial, Helvetica, sans-serif; background-color:#FFFFFF;}
-
+++ /dev/null
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import java.net.URL;
-import java.net.*;
-import java.io.*;
-import com.easysw.cups.*;
-
-public class GLP implements ActionListener
-{
- private JTabbedPane mainPanel = null;
-
- // Constructor
- public GLP()
- {
- GLPvars.init();
-
- GLPvars.mainGLPPanel = new JTabbedPane();
- GLPvars.tabs = new GLPtabs();
- GLPvars.mainGLPPanel = GLPvars.tabs.getPanel();
- }
-
- // Implementation of ActionListener interface.
- public void actionPerformed(ActionEvent event)
- {
- // if ("comboBoxChanged".equals(event.getActionCommand()))
- // {
- // update the icon to display the new phase
- // phaseIconLabel.setIcon(images[phaseChoices.getSelectedIndex()]);
- // }
- }
-
- // main method
- public static void main(String[] args)
- {
- // create a new instance of CupsApplet
- GLP app = new GLP();
-
- // Create a frame and container for the panels.
- JFrame glpFrame = new JFrame("Java GLP");
-
- // Set the look and feel.
- try {
- UIManager.setLookAndFeel(
- UIManager.getCrossPlatformLookAndFeelClassName());
- } catch(Exception e) {}
-
- glpFrame.setContentPane(GLPvars.mainGLPPanel);
-
- // Exit when the window is closed.
- glpFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- glpFrame.setSize(600,400);
-
- // Show the converter.
- // glpFrame.pack();
- glpFrame.setVisible(true);
- }
-}
+++ /dev/null
-
-import java.awt.*;
-import javax.swing.*;
-import com.easysw.cups.*;
-
-public class GLPcolors
-{
-
- public static Color backgroundColor = new Color(0xff,0xff,0xff);
- public static Color errorlightColor = new Color(0xcf,0x66,0x66);
- public static Color highlightColor = new Color(0x99,0x99,0x66);
- public static Color foregroundColor = new Color(0,0,0);
-
- public static Color labelBackgroundColor = new Color( 0x66, 0xcf, 0x66 );
-
- public static Color tabBackgroundColor = new Color(0x22,0x22,0x8f);
- public static Color tabForegroundColor = new Color(0xff,0xff,0xff);
-
- public static Color buttonForegroundColor = new Color(0xff,0xff,0xff);
- public static Color buttonBackgroundColor = new Color(0x22,0x22,0x8f);
-
-}
+++ /dev/null
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import java.net.URL;
-import java.net.*;
-import java.io.*;
-import com.easysw.cups.*;
-
-public class GLPdetail implements ActionListener
-{
- private JPanel mainPanel = null;
- private JPanel controlPanel = null;
- private JPanel detailPanel = null;
- private JScrollPane jobPanel = null;
- private BoxLayout mainLayout = null;
-
- private JLabel tmp = null;
-
- private JButton completedButton = null;
- private JButton myJobsButton = null;
- private JButton printFileButton = null;
-
- private String completedText = "Show Completed";
- private String myJobsText = "Show My Jobs";
- private String printFileText = "Print a file";
-
- private GLPprinterDetail detail = null;
- private GLPjobList joblist = null;
- private CupsPrinter printer = null;
- private Cups cups = null;
-
-
- public GLPdetail()
- {
- URL u;
-
- mainPanel = new JPanel();
- mainPanel.setBackground(GLPcolors.backgroundColor);
-
- // Create the buttons panel
- controlPanel = new JPanel();
- controlPanel.setLayout(new GridLayout(1,3,2,2));
- controlPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
- controlPanel.setBackground(GLPcolors.backgroundColor);
- completedButton = new JButton(completedText);
- myJobsButton = new JButton(myJobsText);
- printFileButton = new JButton(printFileText);
-
- completedButton.setActionCommand(completedText);
- completedButton.addActionListener(this);
-
- myJobsButton.setActionCommand(myJobsText);
- myJobsButton.addActionListener(this);
-
- printFileButton.setActionCommand(printFileText);
- printFileButton.addActionListener(this);
-
- completedButton.setBackground(GLPcolors.buttonBackgroundColor);
- completedButton.setForeground(GLPcolors.buttonForegroundColor);
-
- myJobsButton.setBackground(GLPcolors.buttonBackgroundColor);
- myJobsButton.setForeground(GLPcolors.buttonForegroundColor);
-
- printFileButton.setBackground(GLPcolors.buttonBackgroundColor);
- printFileButton.setForeground(GLPcolors.buttonForegroundColor);
-
- controlPanel.add(completedButton);
- controlPanel.add(myJobsButton);
- controlPanel.add(printFileButton);
-
- // -----------------------------------------------------------
- //
- // Now get the printer objects
- //
- if (GLPvars.selectedPrinterName != null)
- {
- try
- {
- u = new URL("http://" + GLPvars.getServerName() +
- ":631/printers/" + GLPvars.selectedPrinterName );
- cups = new Cups(u);
- cups.setUser(GLPvars.cupsUser);
- cups.setPasswd(GLPvars.cupsPasswd);
- printer = new CupsPrinter( cups, GLPvars.selectedPrinterName );
-
- detail = new GLPprinterDetail( printer );
- joblist = new GLPjobList(printer);
-
- detailPanel = detail.getPanel();
- jobPanel = joblist.getPanel();
-
- mainLayout = new BoxLayout(mainPanel, BoxLayout.Y_AXIS);
- mainPanel.setLayout(mainLayout);
- mainPanel.add(detailPanel);
- mainPanel.add(controlPanel);
- mainPanel.add(jobPanel);
- }
- catch (IOException e)
- {
- tmp = new JLabel("Error loading printer: " + GLPvars.selectedPrinterName);
- mainPanel.add(tmp);
- return;
- }
- }
- else
- {
- tmp = new JLabel("No printer selected.");
- mainPanel.add(tmp);
- }
-
-
- } //
-
-
-
- public void topDetail()
- {
- URL u;
-
- mainPanel = new JPanel();
- mainPanel.setBackground(GLPcolors.backgroundColor);
-
- // Create the buttons panel
- controlPanel = new JPanel();
- controlPanel.setLayout(new GridLayout(1,3,2,2));
- controlPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
- controlPanel.setBackground(GLPcolors.backgroundColor);
- completedButton = new JButton();
- myJobsButton = new JButton();
- printFileButton = new JButton(printFileText);
-
- if (GLPvars.showCompletedJobs)
- {
- completedButton.setText("Show Active");
- completedButton.setActionCommand("Show Active");
- }
- else
- {
- completedButton.setText("Show Completed");
- completedButton.setActionCommand("Show Completed");
- }
- completedButton.addActionListener(this);
-
- if (GLPvars.showMyJobs)
- {
- myJobsButton.setText("Show All Users");
- myJobsButton.setActionCommand("Show All Users");
- }
- else
- {
- myJobsButton.setText("Show My Jobs");
- myJobsButton.setActionCommand("Show My Jobs");
- }
- myJobsButton.addActionListener(this);
-
- printFileButton.setActionCommand(printFileText);
- printFileButton.addActionListener(this);
-
- completedButton.setBackground(GLPcolors.buttonBackgroundColor);
- completedButton.setForeground(GLPcolors.buttonForegroundColor);
-
- myJobsButton.setBackground(GLPcolors.buttonBackgroundColor);
- myJobsButton.setForeground(GLPcolors.buttonForegroundColor);
-
- printFileButton.setBackground(GLPcolors.buttonBackgroundColor);
- printFileButton.setForeground(GLPcolors.buttonForegroundColor);
-
- controlPanel.add(completedButton);
- controlPanel.add(myJobsButton);
- controlPanel.add(printFileButton);
-
- // -----------------------------------------------------------
- //
- // Now get the printer objects
- //
- if (GLPvars.selectedPrinterName != null)
- {
- try
- {
- //
- // Create connection
- //
- u = new URL("http://" + GLPvars.getServerName() +
- ":631/printers/" + GLPvars.selectedPrinterName );
- cups = new Cups(u);
- cups.setUser(GLPvars.cupsUser);
- cups.setPasswd(GLPvars.cupsPasswd);
- //
- //
-
- printer = new CupsPrinter( cups, GLPvars.selectedPrinterName );
- detail = new GLPprinterDetail( printer );
- joblist = new GLPjobList(printer);
-
- detailPanel = detail.getPanel();
-
- jobPanel = joblist.getPanel();
-
- mainLayout = new BoxLayout(mainPanel, BoxLayout.Y_AXIS);
- mainPanel.setLayout(mainLayout);
- mainPanel.add(detailPanel);
- mainPanel.add(controlPanel);
- mainPanel.add(jobPanel);
- }
- catch (IOException e)
- {
- tmp = new JLabel("IOException while loading printer: " +
- GLPvars.selectedPrinterName);
- mainPanel.add(tmp);
- return;
- }
- }
- else
- {
- tmp = new JLabel("No printer selected.");
- mainPanel.add(tmp);
- }
- }
-
- public JPanel getPanel()
- {
- return(mainPanel);
- }
-
- public void actionPerformed(ActionEvent e)
- {
- // String source = e.getActionCommand();
- Object source = e.getSource();
- if (source == completedButton)
- {
- if (GLPvars.showCompletedJobs)
- {
- GLPvars.showCompletedJobs = !GLPvars.showCompletedJobs;
- completedButton.setText("Show Active");
- completedButton.setActionCommand("Show Active");
- GLPvars.tabs.updateDetailPanel();
- GLPvars.tabs.tabPanel.setSelectedIndex(2);
- }
- else
- {
- completedButton.setText("Show Completed");
- completedButton.setActionCommand("Show Completed");
- GLPvars.showCompletedJobs = !GLPvars.showCompletedJobs;
- GLPvars.tabs.updateDetailPanel();
- GLPvars.tabs.tabPanel.setSelectedIndex(2);
- }
- }
- else if (source == myJobsButton)
- {
- if (GLPvars.showMyJobs)
- {
- GLPvars.showMyJobs = !GLPvars.showMyJobs;
- myJobsButton.setText("Show All Users");
- myJobsButton.setActionCommand("Show All Users");
- GLPvars.tabs.updateDetailPanel();
- GLPvars.tabs.tabPanel.setSelectedIndex(2);
- }
- else
- {
- GLPvars.showMyJobs = !GLPvars.showMyJobs;
- myJobsButton.setText("Show My Jobs");
- myJobsButton.setActionCommand("Show My Jobs");
- GLPvars.tabs.updateDetailPanel();
- GLPvars.tabs.tabPanel.setSelectedIndex(2);
- }
- }
- else if (source == printFileButton)
- {
- if (printer != null)
- {
- GLPvars.tabs.updateOptionsPanel(printer);
- GLPvars.tabs.tabPanel.setSelectedIndex(3);
- }
- }
- }
-
-}
-
+++ /dev/null
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import java.net.URL;
-import java.net.*;
-import java.io.*;
-import java.util.*;
-import com.easysw.cups.*;
-
-public class GLPjobList implements ActionListener
-{
- Cups cups = null;
- GridLayout mainLayout = null;
- JPanel errorPanel = null;
- JScrollPane jobPane = null;
-
- public GLPjobList(CupsPrinter cp)
- {
- load(cp);
- }
-
- // Constructor
- public void load(CupsPrinter cp)
- {
- URL u;
- CupsJob[] jobs;
- int num_jobs = 0;
-
- try
- {
- u = new URL("http://" + GLPvars.cupsServerName + ":631/printers/" +
- cp.getPrinterName());
- cups = new Cups(u);
- cups.setUser(GLPvars.cupsUser);
- cups.setPasswd(GLPvars.cupsPasswd);
-
- jobs = cups.cupsGetJobs(GLPvars.showMyJobs,
- GLPvars.showCompletedJobs );
- }
- catch (IOException e)
- {
- GLPjobTableModel tm = new GLPjobTableModel(1,1);
- tm.setValueAt("Error getting job list(IOException)",0,0);
- JTable table = new JTable(tm);
- jobPane = new JScrollPane(table);
- jobPane.setBackground(GLPcolors.backgroundColor);
- return;
- }
-
- if (jobs == null)
- {
- String job_user = "";
- String job_type = "";
- if (GLPvars.showCompletedJobs)
- job_type = "No completed jobs";
- else
- job_type = "No active jobs";
- if (GLPvars.showMyJobs)
- job_user = " for " + GLPvars.cupsUser;
-
- GLPjobTableModel tm = new GLPjobTableModel(1,1);
- tm.setValueAt(job_type + job_user + ".",0,0);
- JTable table = new JTable(tm);
- jobPane = new JScrollPane(table);
- jobPane.setBackground(GLPcolors.backgroundColor);
- return;
- }
-
- num_jobs = jobs.length;
- int jobcount = 0;
- for (int i=0; i < num_jobs; i++)
- {
- if (jobs[i].job_id < 0)
- continue;
- jobcount++;
- }
-
- if (jobcount < 1)
- {
- GLPjobTableModel tm = new GLPjobTableModel(1,1);
- String comp_str = "active";
- if (GLPvars.showCompletedJobs)
- comp_str = "completed";
-
- tm.setValueAt("No " + comp_str + " jobs on " +
- cp.getPrinterName(),0,0);
- JTable table = new JTable(tm);
- jobPane = new JScrollPane(table);
- jobPane.setBackground(GLPcolors.backgroundColor);
- return;
- }
-
- GLPjobTableModel tm = new GLPjobTableModel(jobcount,6);
- tm.setColumnName(0,"ID");
- tm.setColumnName(1,"Name");
- tm.setColumnName(2,"User");
- tm.setColumnName(3,"Create Time");
- tm.setColumnName(4,"Size");
- tm.setColumnName(5,"Status");
-
- String szString;
- Date date = new Date();
- int currjob = 0;
- for (int i=0; i < num_jobs; i++)
- {
- //
- // Bug in cupsGetJobs?
- //
- if (jobs[i].job_id < 0)
- continue;
-
- tm.setValueAt( new Integer( jobs[i].job_id), currjob, 0 );
- tm.setValueAt( (Object)jobs[i].job_name, currjob, 1 );
- tm.setValueAt( (Object)jobs[i].job_originating_user_name,currjob,2);
-
- date.setTime(jobs[i].time_at_creation * 1000);
- tm.setValueAt( date.toString(), currjob, 3 );
-
- if (jobs[i].job_k_octets < 1000)
- szString = Integer.toString(jobs[i].job_k_octets) + "k";
- else
- szString = Double.toString((float)jobs[i].job_k_octets / 1000.0) + "mb";
- tm.setValueAt( szString, currjob, 4 );
- tm.setValueAt( jobs[i].jobStatusText(), currjob, 5 );
- currjob++;
- }
-
- JTable table = new JTable( tm );
-
- jobPane = new JScrollPane(table);
- jobPane.setBackground(GLPcolors.backgroundColor);
- jobPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
- jobPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
- }
-
- public void actionPerformed(ActionEvent e)
- {
- // if (e.getActionCommand().equals(maskFieldString))
- // {
- // }
- }
-
-
- public JScrollPane getPanel()
- {
- return(jobPane);
- }
-
-}
+++ /dev/null
-
-import javax.swing.table.*;
-import javax.swing.event.TableModelListener;
-import javax.swing.event.TableModelEvent;
-import com.easysw.cups.*;
-
-public class GLPjobTableModel extends AbstractTableModel
- implements TableModelListener
-{
- protected TableModel model;
- private final Object[][] rowData;
- private final String[] colNames;
- private int rowCount = 0;
- private int colCount = 0;
-
- public GLPjobTableModel( int num_rows, int num_cols )
- {
- rowData = new Object[num_rows][num_cols];
- colNames = new String[num_cols];
- rowCount = num_rows;
- colCount = num_cols;
- }
-
- public TableModel getModel()
- {
- return model;
- }
-
- public void setModel(TableModel model)
- {
- this.model = model;
- model.addTableModelListener(this);
- }
-
- // By default, implement TableModel by forwarding all messages
- // to the model.
-
- public Object getValueAt(int aRow, int aColumn)
- {
- if (rowCount >= aRow && colCount >= aColumn)
- return (rowData[aRow][aColumn]);
- else
- return(null);
- }
-
- public void setValueAt(Object aValue, int aRow, int aColumn)
- {
- if (rowCount >= aRow && colCount >= aColumn)
- rowData[aRow][aColumn] = aValue;
- }
-
- public int getRowCount()
- {
- return (rowCount);
- }
-
- public int getColumnCount()
- {
- return (colCount);
- }
-
- public void setColumnName(int aColumn, String aName)
- {
- if (colCount >= aColumn)
- {
- colNames[aColumn] = aName;
- }
- }
-
- public String getColumnName(int aColumn)
- {
- if (colCount >= aColumn)
- return (colNames[aColumn]);
- else
- return("");
- }
-
- public Class getColumnClass(int aColumn)
- {
- if (colCount >= aColumn)
- {
- if (rowData[0][aColumn] != null)
- return (rowData[0][aColumn].getClass());
- else
- return( null );
- }
- else return(null);
- }
-
- public boolean isCellEditable(int row, int column)
- {
- return(false);
- }
-
-
-//
-// Implementation of the TableModelListener interface,
-//
- // By default forward all events to all the listeners.
- public void tableChanged(TableModelEvent e)
- {
- fireTableChanged(e);
- }
-}
+++ /dev/null
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.filechooser.*;
-import java.net.URL;
-import java.net.*;
-import java.io.*;
-import com.easysw.cups.*;
-
-public class GLPoptions implements ActionListener
-{
- Cups cups = null;
- CupsJob job = null;
- CupsPrinter printer = null;
-
- String fileName = "";
-
- JPanel mainPanel;
- JTextField fileTextField;
- JButton printButton;
- GridBagLayout mainLayout;
- GridBagConstraints mainConst;
-
- //
- // Print options;
- //
- String[] jobSheetsNames;
- String[] orientationNames;
- int[] orientationValues;
- String[] qualityNames;
- int[] qualityValues;
-
- String jobSheetsOption = "";
- int orientationOption = -1;
- int qualityOption = -1;
-
- int pageLowerOption = 0;
- int pageUpperOption = 0;
- boolean pagePrintAll = true;
-
- int numCopiesOption = 1;
- int numLowerCopiesOption = -1;
- int numUpperCopiesOption = -1;
-
- int selectedJobSheets = 0;
- int selectedOrientation = 0;
- int selectedQuality = 0;
-
- JComboBox orientationBox;
- JComboBox jobSheetsBox;
- JTextField numCopiesField;
- JCheckBox printAllCheckBox;
- JTextField pageLowerField;
- JTextField pageUpperField;
- MyTextListener textListener = new MyTextListener();
-
-
- // Constructor
- public GLPoptions()
- {
- mainPanel = new JPanel();
- mainPanel.setLayout(new BorderLayout());
- mainPanel.setBackground(GLPcolors.backgroundColor);
- JLabel label = new JLabel("No printer selected");
- label.setForeground(GLPcolors.foregroundColor);
- mainPanel.add(label,BorderLayout.CENTER);
- }
-
- // Constructor
- public GLPoptions(CupsPrinter cp)
- {
- printer = cp;
- if (printer != null)
- {
- load(printer);
- }
- else
- {
- mainPanel = new JPanel();
- mainPanel.setLayout(new BorderLayout());
- mainPanel.setBackground(GLPcolors.backgroundColor);
- JLabel label = new JLabel("No printer selected");
- label.setForeground(GLPcolors.foregroundColor);
- mainPanel.add(label,BorderLayout.CENTER);
- }
- }
-
-
- private void load( CupsPrinter cp )
- {
-
- fillOptionValues();
-
- // Create the main panel to contain the two sub panels.
- mainPanel = new JPanel();
- mainLayout = new GridBagLayout();
- mainConst = new GridBagConstraints();
-
- mainPanel.setLayout(mainLayout);
- mainPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
- mainPanel.setBackground(GLPcolors.backgroundColor);
-
- String tmp_s = "Printing to " + printer.getPrinterName() +
- " on " + GLPvars.cupsServerName;
- JLabel printerNameText = new JLabel(tmp_s);
- printerNameText.setForeground(GLPcolors.foregroundColor);
- mainConst.gridwidth = GridBagConstraints.RELATIVE;
- mainConst.gridx = 0;
- mainConst.gridy = 0;
- mainConst.fill = GridBagConstraints.NONE;
- mainConst.weightx = 0.0;
- mainConst.weighty = 0.0;
- mainConst.ipady = 4;
- mainLayout.setConstraints( printerNameText, mainConst );
- mainPanel.add(printerNameText);
-
- JPanel filePanel = buildFilePanel();
- mainConst.gridwidth = GridBagConstraints.RELATIVE;
- mainConst.gridx = 0;
- mainConst.gridy = 1;
- mainConst.fill = GridBagConstraints.HORIZONTAL;
- mainConst.weightx = 1.0;
- mainConst.weighty = 0.1;
- mainConst.ipady = 4;
- mainLayout.setConstraints( filePanel, mainConst );
- mainPanel.add(filePanel);
-
- JPanel orientationPanel = buildOrientationComboBox();
- mainConst.gridwidth = GridBagConstraints.RELATIVE;
- mainConst.gridx = 0;
- mainConst.gridy = 2;
- mainConst.fill = GridBagConstraints.NONE;
- mainConst.weightx = 0.8;
- mainConst.weighty = 0.1;
- mainConst.ipady = 4;
- mainLayout.setConstraints( orientationPanel, mainConst );
- mainPanel.add(orientationPanel);
-
- JPanel jobSheetsPanel = buildJobSheetsComboBox();
- mainConst.gridwidth = GridBagConstraints.RELATIVE;
- mainConst.gridx = 0;
- mainConst.gridy = 3;
- mainConst.fill = GridBagConstraints.NONE;
- mainConst.weightx = 0.8;
- mainConst.weighty = 0.1;
- mainConst.ipady = 4;
- mainLayout.setConstraints( jobSheetsPanel, mainConst );
- mainPanel.add(jobSheetsPanel);
-
- JPanel numCopiesPanel = buildNumCopiesPanel();
- mainConst.gridwidth = GridBagConstraints.RELATIVE;
- mainConst.gridx = 0;
- mainConst.gridy = 4;
- mainConst.fill = GridBagConstraints.HORIZONTAL;
- mainConst.weightx = 1.0;
- mainConst.weighty = 0.1;
- mainConst.ipady = 4;
- mainLayout.setConstraints( numCopiesPanel, mainConst );
- mainPanel.add(numCopiesPanel);
-
- JPanel pageRangePanel = buildPageRangePanel();
- mainConst.gridwidth = GridBagConstraints.RELATIVE;
- mainConst.gridx = 0;
- mainConst.gridy = 5;
- mainConst.fill = GridBagConstraints.HORIZONTAL;
- mainConst.weightx = 1.0;
- mainConst.weighty = 0.1;
- mainConst.ipady = 4;
- mainLayout.setConstraints( pageRangePanel, mainConst );
- mainPanel.add(pageRangePanel);
-
- JPanel buttonPanel = buildButtonPanel();
- mainConst.gridwidth = GridBagConstraints.RELATIVE;
- mainConst.gridx = 0;
- mainConst.gridy = 6;
- mainConst.fill = GridBagConstraints.NONE;
- mainConst.weightx = 1.0;
- mainConst.weighty = 0.1;
- mainConst.ipady = 4;
- mainLayout.setConstraints( buttonPanel, mainConst );
- mainPanel.add(buttonPanel);
-
- }
-
-
- // --------------------------------------------------------------
- //
- // Filename / Browse panel
- //
- public JPanel buildFilePanel()
- {
- JPanel localPanel = new JPanel();
- final JFileChooser fc = new JFileChooser();
-
- localPanel.setBackground(GLPcolors.backgroundColor);
- localPanel.setLayout(new BorderLayout());
-
- //Create a regular text field.
- fileTextField = new JTextField(50);
- fileTextField.addActionListener(this);
-
- //Create some labels for the fields.
- JLabel fileFieldLabel = new JLabel(" File to print: ");
- fileFieldLabel.setForeground(GLPcolors.foregroundColor);
- // fileFieldLabel.setLabelFor(fileTextField);
-
- localPanel.add( fileFieldLabel, BorderLayout.WEST );
- localPanel.add( fileTextField, BorderLayout.CENTER );
-
- //Create the open button
- JButton openButton = new JButton("Browse ..." );
- openButton.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- int returnVal = fc.showOpenDialog(mainPanel);
- if (returnVal == JFileChooser.APPROVE_OPTION)
- {
- File file = fc.getSelectedFile();
- // fileTextField.setText(file.getPath() + file.getName());
- fileTextField.setText(file.getPath());
- fileName = file.getPath();
- }
- }
- });
- openButton.setBackground(GLPcolors.buttonBackgroundColor);
- openButton.setForeground(GLPcolors.buttonForegroundColor);
- localPanel.add(openButton, BorderLayout.EAST );
- return(localPanel);
- }
-
-
-
- public JPanel buildOrientationComboBox()
- {
- JPanel localPanel = new JPanel();
- localPanel.setLayout(new BorderLayout());
- localPanel.setBackground(GLPcolors.backgroundColor);
-
- JLabel localLabel = new JLabel("Page Orientation: ");
- localLabel.setBackground(GLPcolors.backgroundColor);
- localLabel.setForeground(GLPcolors.foregroundColor);
-
- orientationBox = new JComboBox(orientationNames);
- if (selectedOrientation > 0)
- orientationBox.setSelectedIndex(selectedOrientation);
- orientationBox.addActionListener(this);
- orientationBox.setBackground(GLPcolors.backgroundColor);
-
- localPanel.add(localLabel,BorderLayout.WEST);
- localPanel.add(orientationBox,BorderLayout.CENTER);
-
- return(localPanel);
- }
-
-
- public JPanel buildJobSheetsComboBox()
- {
- JPanel localPanel = new JPanel();
- localPanel.setLayout(new BorderLayout());
- localPanel.setBackground(GLPcolors.backgroundColor);
-
- JLabel localLabel = new JLabel("Job Sheets: ");
- localLabel.setBackground(GLPcolors.backgroundColor);
- localLabel.setForeground(GLPcolors.foregroundColor);
-
- jobSheetsBox = new JComboBox(jobSheetsNames);
- if (selectedJobSheets > 0)
- jobSheetsBox.setSelectedIndex(selectedJobSheets);
- jobSheetsBox.addActionListener(this);
- jobSheetsBox.setBackground(GLPcolors.backgroundColor);
-
- localPanel.add(localLabel,BorderLayout.WEST);
- localPanel.add(jobSheetsBox,BorderLayout.CENTER);
-
- return(localPanel);
- }
-
- public JPanel buildNumCopiesPanel()
- {
- JPanel localPanel = new JPanel();
- localPanel.setLayout(new FlowLayout());
- localPanel.setBackground(GLPcolors.backgroundColor);
-
- JLabel localLabel = new JLabel("Number of copies: ");
- localLabel.setBackground(GLPcolors.backgroundColor);
- localLabel.setForeground(GLPcolors.foregroundColor);
-
- numCopiesField = new JTextField(3);
- if (numCopiesOption > 0)
- numCopiesField.setText(new Integer(numCopiesOption).toString());
- numCopiesField.addActionListener(this);
- numCopiesField.addFocusListener(textListener);
- numCopiesField.setBackground(GLPcolors.backgroundColor);
-
- localPanel.add(localLabel);
- localPanel.add(numCopiesField);
-
- return(localPanel);
- }
-
-
- public JPanel buildPageRangePanel()
- {
- JPanel localPanel = new JPanel();
- localPanel.setLayout(new FlowLayout());
- localPanel.setBackground(GLPcolors.backgroundColor);
-
- printAllCheckBox = new JCheckBox("Print all", pagePrintAll );
- printAllCheckBox.setBackground(GLPcolors.backgroundColor);
- printAllCheckBox.setForeground(GLPcolors.foregroundColor);
- printAllCheckBox.addActionListener(this);
-
- JLabel localLabel = new JLabel("-or- pages: ");
- localLabel.setBackground(GLPcolors.backgroundColor);
- localLabel.setForeground(GLPcolors.foregroundColor);
-
- JLabel localLabel2 = new JLabel(" to ");
- localLabel2.setBackground(GLPcolors.backgroundColor);
- localLabel2.setForeground(GLPcolors.foregroundColor);
-
- pageLowerField = new JTextField(4);
- pageUpperField = new JTextField(4);
-
- pageLowerField.addActionListener(this);
- pageUpperField.addActionListener(this);
- pageLowerField.addFocusListener(textListener);
- pageUpperField.addFocusListener(textListener);
-
- pageLowerField.setBackground(GLPcolors.backgroundColor);
- pageUpperField.setBackground(GLPcolors.backgroundColor);
- pageLowerField.setEnabled(false);
- pageUpperField.setEnabled(false);
-
- localPanel.add(printAllCheckBox);
- localPanel.add(localLabel);
- localPanel.add(pageLowerField);
- localPanel.add(localLabel2);
- localPanel.add(pageUpperField);
-
- return(localPanel);
- }
-
-
-
-
- public JPanel buildTextPanel()
- {
- JPanel localPanel = new JPanel();
- return(localPanel);
- }
-
- public JPanel buildButtonPanel()
- {
- JPanel localPanel = new JPanel();
- localPanel.setLayout(new BorderLayout());
- printButton = new JButton(" Print ");
- printButton.setBackground(GLPcolors.buttonBackgroundColor);
- printButton.setForeground(GLPcolors.buttonForegroundColor);
- printButton.addActionListener( this );
- localPanel.add(printButton, BorderLayout.WEST );
- return(localPanel);
- }
-
-
-
- public void updateOptions(CupsPrinter cp)
- {
- printer = cp;
- if (printer != null)
- {
- load(printer);
- }
- else
- {
- mainPanel = new JPanel();
- mainPanel.setLayout(new BorderLayout());
- mainPanel.setBackground(GLPcolors.backgroundColor);
- JLabel label = new JLabel("No printer selected");
- label.setForeground(GLPcolors.foregroundColor);
- mainPanel.add(label,BorderLayout.CENTER);
- }
- }
-
- public JPanel getPanel()
- {
- return(mainPanel);
- }
-
-
-
-
- public CupsJob printFile( String filename )
- {
- Cups cups;
- CupsJob job;
- URL u;
- IPPAttribute attrs[];
-
- attrs = buildPrintAttributes();
-
- // for (int i=0; i < attrs.length; i++)
- // attrs[i].dump_values();
-
- try
- {
- u = new URL("http://" + GLPvars.getServerName() +
- ":631/printers/" + printer.getPrinterName() );
- cups = new Cups(u);
- cups.setUser(GLPvars.cupsUser);
- cups.setPasswd(GLPvars.cupsPasswd);
-
- job = cups.cupsPrintFile(filename,attrs);
- return(job);
- }
- catch (IOException e)
- {
- return(null);
- }
- }
-
-
-
-
- private void fillOptionValues()
- {
- IPPAttribute a;
- int i, n;
-
- //
- // Job sheets ....
- //
- jobSheetsNames = printer.getJobSheetsSupported();
- if (printer.getJobSheetsDefault() != "none")
- {
- for (i=0; i < jobSheetsNames.length; i++)
- if (jobSheetsNames[i] == printer.getJobSheetsDefault())
- selectedJobSheets = i;
- }
-
- //
- // Orientation ....
- //
- orientationNames = new String[printer.getOrientationSupported().length];
- orientationValues = printer.getOrientationSupported();
- for (i=0; i < printer.getOrientationSupported().length; i++)
- {
- if (orientationValues[i] == printer.getOrientationDefault())
- selectedOrientation = i;
- switch( orientationValues[i] )
- {
- case IPPDefs.PORTRAIT:
- orientationNames[i] = "Portrait";
- break;
- case IPPDefs.LANDSCAPE:
- orientationNames[i] = "Landscape";
- break;
- case IPPDefs.REVERSE_LANDSCAPE:
- orientationNames[i] = "Reverse Landscape";
- break;
- case IPPDefs.REVERSE_PORTRAIT:
- orientationNames[i] = "Reverse Portrait";
- break;
- }
- }
-
- if (printer.getLowerCopiesSupported() ==
- printer.getUpperCopiesSupported())
- {
- numCopiesOption = printer.getCopiesDefault();
- }
- else
- {
- numCopiesOption = printer.getLowerCopiesSupported();
- numLowerCopiesOption = printer.getLowerCopiesSupported();
- numUpperCopiesOption = printer.getUpperCopiesSupported();
- }
- }
-
-
- private IPPAttribute[] buildPrintAttributes()
- {
- IPPAttribute a;
- IPPAttribute[] attrs;
- int num_attrs = 0;
-
- if (orientationOption >= 0)
- num_attrs++;
- if (jobSheetsOption.length() > 0)
- num_attrs++;
- if (numCopiesOption > 1)
- num_attrs++;
- if ((pageLowerOption > 0) && (pageUpperOption > 0) && (!pagePrintAll))
- num_attrs++;
-
- if (num_attrs > 0)
- attrs = new IPPAttribute[num_attrs];
- else
- return(null);
-
- int i = 0;
- if (jobSheetsOption.length() > 0)
- {
- attrs[i] = new IPPAttribute( IPPDefs.TAG_JOB,
- IPPDefs.TAG_NAME,
- "job-sheets" );
- attrs[i].addString( "", jobSheetsOption );
- i++;
- }
- if (orientationOption >= IPPDefs.PORTRAIT)
- {
- attrs[i] = new IPPAttribute( IPPDefs.TAG_JOB,
- IPPDefs.TAG_ENUM,
- "orientation-requested" );
- attrs[i].addEnum( orientationOption );
- i++;
- }
- if (numCopiesOption > 1)
- {
- attrs[i] = new IPPAttribute( IPPDefs.TAG_JOB,
- IPPDefs.TAG_INTEGER,
- "copies" );
- attrs[i].addInteger( numCopiesOption );
- i++;
- }
- if ((pageLowerOption > 0) && (pageUpperOption > 0) && (!pagePrintAll))
- {
- attrs[i] = new IPPAttribute( IPPDefs.TAG_JOB,
- IPPDefs.TAG_RANGE,
- "page-ranges" );
- attrs[i].addRange( pageLowerOption, pageUpperOption );
- i++;
- }
- return(attrs);
- }
-
-
-
- // Implementation of ActionListener interface.
- public void actionPerformed(ActionEvent e)
- {
- Object source = e.getSource();
-
- //
- // Name typed in
- //
- if (source == printAllCheckBox)
- {
- JCheckBox cb = (JCheckBox)source;
- pagePrintAll = cb.isSelected();
- pageLowerField.setEnabled(!pagePrintAll);
- pageUpperField.setEnabled(!pagePrintAll);
- }
- else if (source == pageLowerField)
- {
- String s = pageLowerField.getText();
- if (s.length() > 1)
- {
- pageLowerOption = new Integer(s).intValue();
- // if (pageLowerOption > 0)
- // printAllCheckBox.setChecked(false);
- }
- }
- else if (source == pageUpperField)
- {
- String s = pageUpperField.getText();
- if (s.length() > 1)
- {
- pageUpperOption = new Integer(s).intValue();
- // if (pageUpperOption > 0)
- // printAllCheckBox.setChecked(false);
- }
- }
- else if (source == orientationBox)
- {
- JComboBox cb = (JComboBox)source;
- selectedOrientation = cb.getSelectedIndex();
- orientationOption = orientationValues[selectedOrientation];
- }
- else if (source == jobSheetsBox)
- {
- JComboBox cb = (JComboBox)source;
- selectedJobSheets = cb.getSelectedIndex();
- jobSheetsOption = jobSheetsNames[selectedJobSheets];
- }
- else if (source == numCopiesField)
- {
- String s = numCopiesField.getText();
- if (s.length() >= 1)
- {
- numCopiesOption = new Integer(s).intValue();
- }
- }
- else if (source == fileTextField)
- {
- String s = fileTextField.getText();
- if (s.length() > 1)
- {
- fileName = s;
- }
- }
- else if (source == printButton)
- {
- if (fileName.length() > 1)
- {
- job = printFile( fileName );
- if (job != null)
- {
- fileName = "";
- fileTextField.setText("");
- JOptionPane.showMessageDialog(mainPanel,
- "Job " + printer.getPrinterName() + "-" +
- new Integer(job.job_id).toString() +
- " queued.");
- }
- }
- }
- }
-
-
-
-
-
- public class MyTextListener implements FocusListener
- {
-
- public void focusGained(FocusEvent e)
- {
- }
-
- public void focusLost(FocusEvent e)
- {
- JTextField txtField = (JTextField)e.getSource();
- if (txtField == numCopiesField)
- {
- String s = numCopiesField.getText();
- if (s.length() >= 1)
- {
- numCopiesOption = new Integer(s).intValue();
- }
- }
- else if (txtField == pageLowerField)
- {
- String s = pageLowerField.getText();
- if (s.length() >= 1)
- {
- pageLowerOption = new Integer(s).intValue();
- }
- }
- else if (txtField == pageUpperField)
- {
- String s = pageUpperField.getText();
- if (s.length() >= 1)
- {
- pageUpperOption = new Integer(s).intValue();
- }
- }
- }
- }
-
-}
+++ /dev/null
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import java.net.URL;
-import java.net.*;
-import java.io.*;
-import com.easysw.cups.*;
-
-public class GLPprinterDetail
-{
-
- private CupsPrinter printer = null;
- private JScrollPane scrollPane = null;
- private JPanel mainPanel = null;
-
-
- // Constructor
- public GLPprinterDetail( CupsPrinter cp )
- {
- printer = cp;
- load();
- }
-
- public void load()
- {
- mainPanel = new JPanel();
- mainPanel = printerInfoPanel( printer );
- }
-
-
-
- // -----------------------------------------------------------
- //
- // Build an info panel for an individual printer.
- //
- private JPanel printerInfoPanel( CupsPrinter cp )
- {
- JPanel printerPanel = new JPanel();
- BoxLayout printerBox;
-
- JPanel leftHeader = new JPanel();
- JPanel rightHeader = new JPanel();
-
- JPanel leftPane = new JPanel();
- JPanel rightPane = new JPanel();
-
- GridBagLayout leftLayout = new GridBagLayout();
- GridBagLayout rightLayout = new GridBagLayout();
-
- GridBagConstraints leftConst = new GridBagConstraints();
- GridBagConstraints rightConst = new GridBagConstraints();
-
-
- JLabel printerIconLabel = null;
- JLabel printerInfoLabel = null;
- JLabel printerNameLabel = null;
- JLabel printerMakeLabel = null;
-
- JTable printerStatusTable = null;
-
- printerBox = new BoxLayout(printerPanel, BoxLayout.X_AXIS);
- printerPanel.setLayout(printerBox);
- printerPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
- printerPanel.setBackground(GLPcolors.backgroundColor);
-
- // Add border around the panel.
-
-
- // ------------------------------------------------------------
- // Left pane
- // ------------------------------------------------------------
- leftPane.setLayout(leftLayout);
- leftPane.setBackground(GLPcolors.backgroundColor);
-
- leftHeader.setLayout(new BorderLayout());
- leftHeader.setBackground(GLPcolors.highlightColor);
- leftHeader.setBorder(BorderFactory.createEmptyBorder(3,3,3,3));
-
- printerNameLabel = new JLabel(cp.getPrinterName());
- printerNameLabel.setForeground(Color.black);
- leftHeader.add( printerNameLabel, BorderLayout.WEST);
- leftConst.gridwidth = GridBagConstraints.RELATIVE;
- leftConst.gridx = 0;
- leftConst.gridy = 0;
- leftConst.fill = GridBagConstraints.HORIZONTAL;
- leftConst.weightx = 0.0;
- leftConst.weighty = 0.0;
- leftConst.ipady = 4;
- leftLayout.setConstraints( leftHeader, leftConst );
- leftPane.add(leftHeader);
-
- String imageName = "./images/printer-" +
- cp.getStateText() + ".gif";
- JButton printerButton;
- try
- {
- URL iconURL = ClassLoader.getSystemResource(imageName);
- ImageIcon icon = new ImageIcon(iconURL);
- printerButton = new JButton( "<html><center><b>" +
- cp.getPrinterName() +
- "</b></center></html>",
- icon );
- }
- catch (NullPointerException e)
- {
- printerButton = new JButton( "<html><center><b>" +
- cp.getPrinterName() +
- "</b></center></html>");
- }
- printerButton.setBorder(BorderFactory.createEmptyBorder(3,3,3,3));
- printerButton.setBackground(GLPcolors.backgroundColor);
- printerButton.setActionCommand( cp.getPrinterName() );
- // printerButton.addActionListener(this);
- printerButton.setToolTipText("Click to go to " + cp.getPrinterName() +
- "'s extended informtion page.");
-
- leftConst.gridwidth = GridBagConstraints.REMAINDER;
- leftConst.gridx = 0;
- leftConst.gridy = 1;
- leftConst.fill = GridBagConstraints.BOTH;
- leftConst.weightx = 1.0;
- leftConst.weighty = 1.0;
- leftConst.ipady = 4;
- leftLayout.setConstraints( printerButton, leftConst );
- leftPane.add(printerButton);
-
-
- // ------------------------------------------------------------
- // Right pane
- // ------------------------------------------------------------
- rightPane.setLayout(rightLayout);
- rightPane.setBackground(GLPcolors.backgroundColor);
-
- rightHeader.setLayout(new BorderLayout());
- rightHeader.setBackground(GLPcolors.highlightColor);
- rightHeader.setBorder(BorderFactory.createEmptyBorder(3,3,3,3));
-
- printerMakeLabel = new JLabel(cp.getMakeAndModel());
- printerMakeLabel.setForeground(Color.black);
- rightHeader.add( printerMakeLabel, BorderLayout.WEST);
-
- rightConst.gridwidth = GridBagConstraints.RELATIVE;
- rightConst.gridx = 0;
- rightConst.gridy = 0;
- rightConst.fill = GridBagConstraints.HORIZONTAL;
- rightConst.weightx = 0.0;
- rightConst.weighty = 0.0;
- rightConst.ipady = 4;
- rightLayout.setConstraints( rightHeader, rightConst );
- rightPane.add(rightHeader);
-
-
- Font labelFont = new Font("Serif",Font.BOLD, 12 );
- // Font textFont = new Font("Serif", Font.NORMAL, 12 );
- Font messageFont = new Font("Serif", Font.ITALIC, 12 );
-
- JLabel pdServerLabel = new JLabel("Server");
- JLabel pdNameLabel = new JLabel("Name");
- JLabel pdLocationLabel = new JLabel("Location");
- JLabel pdStatusLabel = new JLabel("Status");
- JLabel pdMessageLabel = new JLabel("Message");
-
- JLabel pdServerText = new JLabel(GLPvars.cupsServerName);
- JLabel pdNameText = new JLabel(cp.getPrinterName());
- JLabel pdLocationText = new JLabel(cp.getLocation());
- JLabel pdStatusText = new JLabel(cp.getStateText());
- JLabel pdMessageText = new JLabel(cp.getStateReasons());
-
- pdServerLabel.setFont(labelFont);
- pdNameLabel.setFont(labelFont);
- pdLocationLabel.setFont(labelFont);
- pdStatusLabel.setFont(labelFont);
- pdMessageLabel.setFont(labelFont);
- pdMessageText.setFont(messageFont);
-
- pdServerLabel.setForeground(Color.black);
- pdNameLabel.setForeground(Color.black);
- pdLocationLabel.setForeground(Color.black);
- pdStatusLabel.setForeground(Color.black);
- pdMessageLabel.setForeground(Color.black);
-
-
- JPanel tablePane;
- if ((cp.getStateReasons().length() > 0) &&
- (!cp.getStateReasons().equals("none")))
- {
- tablePane = new JPanel(new GridLayout(5,2,2,2));
- tablePane.add(pdServerLabel);
- tablePane.add(pdServerText);
-
- tablePane.add(pdNameLabel);
- tablePane.add(pdNameText);
-
- tablePane.add(pdLocationLabel);
- tablePane.add(pdLocationText);
-
- tablePane.add(pdStatusLabel);
- tablePane.add(pdStatusText);
-
- tablePane.add(pdMessageLabel);
- tablePane.add(pdMessageText);
- }
- else
- {
- tablePane = new JPanel(new GridLayout(4,2,2,2));
- tablePane.add(pdServerLabel);
- tablePane.add(pdServerText);
-
- tablePane.add(pdNameLabel);
- tablePane.add(pdNameText);
-
- tablePane.add(pdLocationLabel);
- tablePane.add(pdLocationText);
-
- tablePane.add(pdStatusLabel);
- tablePane.add(pdStatusText);
-
- }
- tablePane.setBackground(GLPcolors.backgroundColor);
-
- // printerStatusTable.setShowGrid(false);
- rightConst.gridwidth = GridBagConstraints.REMAINDER;
- rightConst.gridx = 0;
- rightConst.gridy = 1;
- rightConst.fill = GridBagConstraints.BOTH;
- rightConst.weightx = 1.0;
- rightConst.weighty = 1.0;
- rightConst.ipady = 4;
- rightLayout.setConstraints( tablePane, rightConst );
- rightPane.add(tablePane);
-
- printerPanel.add(leftPane);
- printerPanel.add(rightPane);
-
- return(printerPanel);
- }
-
-
- public JPanel getPanel()
- {
- return(mainPanel);
- }
-}
+++ /dev/null
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import java.net.URL;
-import java.net.*;
-import java.io.*;
-import com.easysw.cups.*;
-
-public class GLPprinters implements ActionListener
-{
-
- private Cups cups = null;
- public String cupsServerName = "";
-
- private JScrollPane scrollPane = null;
- private JPanel mainPanel = null;
- private JPanel serverPanel = null;
- private JPanel maskPanel = null;
-
- private GridBagLayout mainLayout = null;
- private GridBagConstraints mainConst = null;
- private GridBagLayout maskLayout = null;
- private GridBagConstraints maskConst = null;
-
- private JLabel serverLabel = null;
-
- JTextField nameTextField = null;
- protected static final String maskFieldString = "Printer Name:";
- protected static final String maskButtonString = "Apply";
-
- private String currentMask = "";
-
-
- // Constructor
- public GLPprinters()
- {
- cupsServerName = GLPvars.getServerName();
- load();
- }
-
- public void load()
- {
- String[] printer_names;
- String default_printer;
- int num_printers = 0;
- int y = 0, i = 0;
- URL u;
- CupsPrinter cp;
-
-
- // -----------------------------------------------------------
- //
- // First get a list of printer names.
- //
- try
- {
- u = new URL("http://" + GLPvars.getServerName() + ":631/");
- cups = new Cups(u);
-
- // If authorization is required ....
- cups.setUser(GLPvars.cupsUser);
- cups.setPasswd(GLPvars.cupsPasswd);
-
- printer_names = cups.cupsGetPrinters();
- if (printer_names != null)
- num_printers = printer_names.length;
- else
- num_printers = 0;
- }
- catch (IOException e)
- {
- mainPanel = new JPanel();
- mainPanel.setLayout(new BorderLayout());
- mainPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
- mainPanel.setBackground(GLPcolors.backgroundColor);
- JLabel errorLabel = new JLabel("Error loading printers from " +
- GLPvars.getServerName());
- errorLabel.setForeground(Color.red);
- mainPanel.add( errorLabel, BorderLayout.CENTER );
- scrollPane = new JScrollPane(mainPanel);
- return;
- }
-
- // -----------------------------------------------------------
- //
- // Now get the printer objects
- //
- CupsPrinter[] printers = new CupsPrinter[num_printers];
- for (i=0; i < num_printers; i++)
- {
- try
- {
- u = new URL("http://" + GLPvars.getServerName() +
- ":631/printers/" + printer_names[i] );
- cups = new Cups(u);
-
- // If authorization is required ....
- cups.setUser(GLPvars.cupsUser);
- cups.setPasswd(GLPvars.cupsPasswd);
-
- printers[i] = new CupsPrinter( cups, printer_names[i] );
- }
- catch (IOException e)
- {
- // System.out.println("GLPprinters: IOException");
- // return(null);
- }
- }
-
-
- //
- // Keep track in case it changes.
- //
- cupsServerName = GLPvars.getServerName();
-
- if (printer_names != null)
- num_printers = printer_names.length;
- else
- num_printers = 0;
-
- // default_printer = c.cupsGetDefault();
-
- // Create the main panel to contain the two sub panels.
- mainPanel = new JPanel();
- mainLayout = new GridBagLayout();
- mainConst = new GridBagConstraints();
-
- mainPanel.setLayout(mainLayout);
- mainPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
- mainPanel.setBackground(GLPcolors.backgroundColor);
-
- // --------------------------------------------------------------
- //
- // Add the server name label
- //
- serverPanel = new JPanel();
- serverPanel.setLayout( new BorderLayout());
- serverPanel.setBackground(GLPcolors.backgroundColor);
- serverLabel = new JLabel("Printers on " + GLPvars.getServerName());
- serverLabel.setForeground(GLPcolors.foregroundColor);
- serverPanel.add(serverLabel, BorderLayout.NORTH );
-
- mainConst.gridwidth = GridBagConstraints.RELATIVE;
- mainConst.gridx = 0;
- mainConst.gridy = y++;
- mainConst.fill = GridBagConstraints.BOTH;
- mainConst.weightx = 0.0;
- mainConst.weighty = 0.0;
- mainConst.ipadx = 4;
- mainConst.ipady = 4;
- mainLayout.setConstraints( serverPanel, mainConst );
- mainPanel.add(serverPanel);
-
- // --------------------------------------------------------------
- //
- // Add the printer masking panel
- //
- maskPanel = new JPanel();
- maskLayout = new GridBagLayout();
- maskConst = new GridBagConstraints();
-
- maskPanel.setLayout(maskLayout);
- maskPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
- maskPanel.setBackground(GLPcolors.backgroundColor);
-
- JPanel localMaskPanel = buildMaskPanel();
- maskConst.gridwidth = GridBagConstraints.RELATIVE;
- maskConst.gridx = 0;
- maskConst.gridy = 0;
- maskConst.fill = GridBagConstraints.NONE;
- maskConst.weightx = 0.0;
- maskConst.weighty = 0.0;
- maskConst.ipadx = 4;
- maskConst.ipady = 4;
- maskLayout.setConstraints( localMaskPanel, maskConst );
- maskPanel.add(localMaskPanel);
-
- //
- // Add the masking panel to the main panel.
- //
- mainConst.gridwidth = GridBagConstraints.RELATIVE;
- mainConst.gridx = 0;
- mainConst.gridy = y++;
- mainConst.fill = GridBagConstraints.BOTH;
- mainConst.weightx = 0.0;
- mainConst.weighty = 0.0;
- mainConst.ipadx = 4;
- mainConst.ipady = 4;
- mainLayout.setConstraints( maskPanel, mainConst );
- mainPanel.add(maskPanel);
-
-
-
- // --------------------------------------------------------------
- //
- // Add the printers
- //
- double weight = 1.0 / (double)printers.length;
- for (i=0; i < printers.length; i++)
- {
- JPanel subPanel = printerInfoPanel( printers[i] );
- mainConst.gridwidth = GridBagConstraints.RELATIVE;
- mainConst.gridx = 0;
- mainConst.gridy = y++;
- mainConst.fill = GridBagConstraints.BOTH;
- mainConst.weightx = 1.0;
- mainConst.weighty = weight;
- mainConst.ipady = 4;
- mainLayout.setConstraints( subPanel, mainConst );
- mainPanel.add(subPanel);
- }
-
- // ------------------------------------------------
- //
- // Put the whole thing into a scroll pane.
- //
- scrollPane = new JScrollPane(mainPanel);
- }
-
-
-
- // -----------------------------------------------------------
- //
- // Build an info panel for an individual printer.
- //
- private JPanel printerInfoPanel( CupsPrinter cp )
- {
- JPanel printerPanel = new JPanel();
- BoxLayout printerBox;
-
- JPanel leftHeader = new JPanel();
- JPanel rightHeader = new JPanel();
-
- JPanel leftPane = new JPanel();
- JPanel rightPane = new JPanel();
-
- GridBagLayout leftLayout = new GridBagLayout();
- GridBagLayout rightLayout = new GridBagLayout();
-
- GridBagConstraints leftConst = new GridBagConstraints();
- GridBagConstraints rightConst = new GridBagConstraints();
-
-
- JLabel printerIconLabel = null;
- JLabel printerInfoLabel = null;
- JLabel printerNameLabel = null;
- JLabel printerMakeLabel = null;
-
- JTable printerStatusTable = null;
-
- printerBox = new BoxLayout(printerPanel, BoxLayout.X_AXIS);
- printerPanel.setLayout(printerBox);
- printerPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
- printerPanel.setBackground(GLPcolors.backgroundColor);
-
- // Add border around the panel.
-
-
- // ------------------------------------------------------------
- // Left pane
- // ------------------------------------------------------------
- leftPane.setLayout(leftLayout);
- leftPane.setBackground(GLPcolors.backgroundColor);
-
- leftHeader.setLayout(new BorderLayout());
- leftHeader.setBackground(GLPcolors.highlightColor);
- leftHeader.setBorder(BorderFactory.createEmptyBorder(3,3,3,3));
-
- printerNameLabel = new JLabel(cp.getPrinterName());
- printerNameLabel.setForeground(Color.black);
- leftHeader.add( printerNameLabel, BorderLayout.WEST);
- leftConst.gridwidth = GridBagConstraints.RELATIVE;
- leftConst.gridx = 0;
- leftConst.gridy = 0;
- leftConst.fill = GridBagConstraints.HORIZONTAL;
- leftConst.weightx = 0.0;
- leftConst.weighty = 0.0;
- leftConst.ipady = 4;
- leftLayout.setConstraints( leftHeader, leftConst );
- leftPane.add(leftHeader);
-
- String imageName = "./images/printer-" + cp.getStateText() + ".gif";
- URL iconURL = ClassLoader.getSystemResource(imageName);
- ImageIcon icon = new ImageIcon(iconURL);
- JButton printerButton = new JButton( "<html><center><b>" +
- cp.getPrinterName() +
- "</b></center></html>",
- icon );
- printerButton.setBorder(BorderFactory.createEmptyBorder(3,3,3,3));
- printerButton.setBackground(GLPcolors.backgroundColor);
- printerButton.setActionCommand( cp.getPrinterName() );
- printerButton.addActionListener(this);
- printerButton.setToolTipText("Click to go to " + cp.getPrinterName() +
- "'s extended informtion page.");
-
- leftConst.gridwidth = GridBagConstraints.REMAINDER;
- leftConst.gridx = 0;
- leftConst.gridy = 1;
- leftConst.fill = GridBagConstraints.BOTH;
- leftConst.weightx = 1.0;
- leftConst.weighty = 1.0;
- leftConst.ipady = 4;
- leftLayout.setConstraints( printerButton, leftConst );
- leftPane.add(printerButton);
-
-
- // ------------------------------------------------------------
- // Right pane
- // ------------------------------------------------------------
- rightPane.setLayout(rightLayout);
- rightPane.setBackground(GLPcolors.backgroundColor);
-
- rightHeader.setLayout(new BorderLayout());
- rightHeader.setBackground(GLPcolors.highlightColor);
- rightHeader.setBorder(BorderFactory.createEmptyBorder(3,3,3,3));
-
- printerMakeLabel = new JLabel(cp.getMakeAndModel());
- printerMakeLabel.setForeground(Color.black);
- rightHeader.add( printerMakeLabel, BorderLayout.WEST);
-
- rightConst.gridwidth = GridBagConstraints.RELATIVE;
- rightConst.gridx = 0;
- rightConst.gridy = 0;
- rightConst.fill = GridBagConstraints.HORIZONTAL;
- rightConst.weightx = 0.0;
- rightConst.weighty = 0.0;
- rightConst.ipady = 4;
- rightLayout.setConstraints( rightHeader, rightConst );
- rightPane.add(rightHeader);
-
-
- Font labelFont = new Font("Serif",Font.BOLD, 12 );
- // Font textFont = new Font("Serif", Font.NORMAL, 12 );
- Font messageFont = new Font("Serif", Font.ITALIC, 12 );
-
- JLabel pdNameLabel = new JLabel("Name");
- JLabel pdLocationLabel = new JLabel("Location");
- JLabel pdStatusLabel = new JLabel("Status");
- JLabel pdMessageLabel = new JLabel("Message");
-
- JLabel pdNameText = new JLabel(cp.getPrinterName());
- JLabel pdLocationText = new JLabel(cp.getLocation());
- JLabel pdStatusText = new JLabel(cp.getStateText());
- JLabel pdMessageText = new JLabel(cp.getStateReasons());
-
- pdNameLabel.setFont(labelFont);
- pdLocationLabel.setFont(labelFont);
- pdStatusLabel.setFont(labelFont);
- pdMessageLabel.setFont(labelFont);
- pdMessageText.setFont(messageFont);
-
- pdNameLabel.setForeground(Color.black);
- pdLocationLabel.setForeground(Color.black);
- pdStatusLabel.setForeground(Color.black);
- pdMessageLabel.setForeground(Color.black);
-
- JPanel tablePane;
- if ((cp.getStateReasons().length() > 0) &&
- (!cp.getStateReasons().equals("none")))
- {
- tablePane = new JPanel(new GridLayout(4,2,2,2));
- tablePane.add(pdNameLabel);
- tablePane.add(pdNameText);
-
- tablePane.add(pdLocationLabel);
- tablePane.add(pdLocationText);
-
- tablePane.add(pdStatusLabel);
- tablePane.add(pdStatusText);
-
- tablePane.add(pdMessageLabel);
- tablePane.add(pdMessageText);
- }
- else
- {
- tablePane = new JPanel(new GridLayout(3,2,2,2));
- tablePane.add(pdNameLabel);
- tablePane.add(pdNameText);
-
- tablePane.add(pdLocationLabel);
- tablePane.add(pdLocationText);
-
- tablePane.add(pdStatusLabel);
- tablePane.add(pdStatusText);
-
- }
- tablePane.setBackground(GLPcolors.backgroundColor);
-
- // printerStatusTable.setShowGrid(false);
- rightConst.gridwidth = GridBagConstraints.REMAINDER;
- rightConst.gridx = 0;
- rightConst.gridy = 1;
- rightConst.fill = GridBagConstraints.BOTH;
- rightConst.weightx = 1.0;
- rightConst.weighty = 1.0;
- rightConst.ipady = 4;
- rightLayout.setConstraints( tablePane, rightConst );
- rightPane.add(tablePane);
-
- printerPanel.add(leftPane);
- printerPanel.add(rightPane);
-
- return(printerPanel);
- }
-
-
-
-
-
- public JPanel buildMaskPanel()
- {
-
- // Create the main panel to contain the two sub panels.
- JPanel namePanel = new JPanel();
- GridBagLayout nameLayout = new GridBagLayout();
- GridBagConstraints nameConst = new GridBagConstraints();
-
- namePanel.setLayout(nameLayout);
- namePanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
- namePanel.setBackground(GLPcolors.backgroundColor);
-
-
- //Create a regular text field.
- nameTextField = new JTextField(16);
- nameTextField.setActionCommand(maskFieldString);
- nameTextField.addActionListener(this);
- nameTextField.setText("");
-
- //Create some labels for the fields.
- JLabel nameFieldLabel = new JLabel(maskFieldString);
- nameFieldLabel.setForeground(GLPcolors.foregroundColor);
- nameFieldLabel.setLabelFor(nameTextField);
-
- // Text
- nameConst.gridwidth = GridBagConstraints.RELATIVE;
- nameConst.gridx = 0;
- nameConst.gridy = 0;
- nameConst.fill = GridBagConstraints.HORIZONTAL;
- nameConst.weightx = 0.0;
- nameConst.weighty = 0.0;
- nameConst.ipadx = 4;
- nameConst.ipady = 4;
- nameLayout.setConstraints( nameFieldLabel, nameConst );
- namePanel.add(nameFieldLabel);
-
- nameConst.gridwidth = GridBagConstraints.RELATIVE;
- nameConst.gridx = 1;
- nameConst.gridy = 0;
- nameConst.fill = GridBagConstraints.HORIZONTAL;
- nameConst.weightx = 0.0;
- nameConst.weighty = 0.0;
- nameConst.ipadx = 4;
- nameConst.ipady = 4;
- nameLayout.setConstraints( nameTextField, nameConst );
- namePanel.add(nameTextField);
-
- JButton applyButton = new JButton(maskButtonString);
- applyButton.setBorder(BorderFactory.createCompoundBorder(
- BorderFactory.createRaisedBevelBorder(),
- BorderFactory.createEmptyBorder(2,2,2,2)));
- applyButton.setActionCommand(maskButtonString);
- applyButton.addActionListener(this);
- nameConst.gridx = 2;
- nameConst.gridy = 0;
- nameConst.fill = GridBagConstraints.NONE;
- nameLayout.setConstraints( applyButton, nameConst );
- nameConst.weightx = 0.0;
- nameConst.weighty = 0.0;
- nameConst.ipadx = 4;
- nameConst.ipady = 4;
- namePanel.add(applyButton);
-
- return(namePanel);
- }
-
-
- public void actionPerformed(ActionEvent e)
- {
- if (e.getActionCommand().equals(maskFieldString))
- {
- String s = nameTextField.getText();
- if (s.length() > 1)
- {
- currentMask = s;
- }
- }
- else if (e.getActionCommand().equals(maskButtonString))
- {
- String s = nameTextField.getText();
- if (s.length() > 1)
- {
- currentMask = s;
- }
- }
- else
- {
- GLPvars.selectedPrinterName = e.getActionCommand();
- GLPvars.tabs.updateDetailPanel();
- GLPvars.tabs.tabPanel.setSelectedIndex(2);
- }
- }
-
-
- public JScrollPane getPanel()
- {
- return(scrollPane);
- }
-}
+++ /dev/null
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import java.net.URL;
-import java.net.*;
-import java.io.*;
-import com.easysw.cups.*;
-
-public class GLPsearch extends Thread
-{
- String localHostName = null;
- String localHostIP = null;
- String localSubNet = null;
- InetAddress localHostAddress = null;
-
- private int current_octet = 1;
- private int count = 0;
- private int thread_num = 0;
- private boolean is_done = false;
- private boolean is_completed = false;
-
-
- // Constructor
- public GLPsearch( int t_num )
- {
- thread_num = t_num;
- try
- {
- localHostAddress = InetAddress.getLocalHost();
- }
- catch (UnknownHostException e)
- {
- }
- localHostName = localHostAddress.getHostName();
- // localHostIP = localHostAddress.getHostAddress();
- localHostIP = "192.168.1.100";
- int i = localHostIP.lastIndexOf(".");
- localSubNet = localHostIP.substring(0,i);
- }
-
-
-
- // Constructor
- public GLPsearch(int t_num, String subnet)
- {
- thread_num = t_num;
- try
- {
- localHostAddress = InetAddress.getLocalHost();
- }
- catch (UnknownHostException e)
- {
- }
- localHostName = localHostAddress.getHostName();
- localHostIP = localHostAddress.getHostAddress();
- localSubNet = subnet;
- }
-
-
- public void run()
- {
- Cups cups = null;
- String host = "";
- String test = "";
- InetAddress lookupAddress;
- URL u = null;
-
- is_done = false;
- for (int x = thread_num+1; x < 255 && !is_done; x += 8 )
- {
- count++;
- current_octet = x;
- host = localSubNet + "." + x;
- try
- {
- u = new URL("http://" + host + ":631/printers");
- cups = new Cups(u);
- cups.setUser(GLPvars.cupsUser);
- cups.setPasswd(GLPvars.cupsPasswd);
-
- test = cups.cupsGetDefault();
- if ((test != null) && (test.length() > 0))
- {
- lookupAddress = InetAddress.getByName(host);
- GLPvars.addToServerList(lookupAddress.getHostName());
- }
- else
- {
- }
- }
- catch (IOException e)
- {
- }
- }
- if (!is_done)
- is_completed = true;
- is_done = true;
- }
-
- public void interrupt()
- {
- is_done = true;
- }
-
- public boolean completed()
- {
- return(is_completed);
- }
-
- public boolean done()
- {
- return(is_done);
- }
-
- public int getValue()
- {
- return(count);
- }
-
-}
+++ /dev/null
-import javax.swing.JTable;
-import javax.swing.ListSelectionModel;
-import javax.swing.event.ListSelectionListener;
-import javax.swing.event.ListSelectionEvent;
-import javax.swing.JScrollPane;
-import javax.swing.JPanel;
-import javax.swing.JFrame;
-import javax.swing.*;
-import java.awt.*;
-import java.awt.event.*;
-import com.easysw.cups.*;
-
-public class GLPsearchProgressPanel
-{
- private JProgressBar progressBar;
- private Timer timer;
- private JButton searchButton;
- private JLabel progressLabel;
- private GLPsearch tasks[];
- private JPanel panel = null;
-
- public GLPsearchProgressPanel()
- {
- //Create the demo's UI.
- searchButton = new JButton("Search");
- searchButton.setActionCommand("Search");
- searchButton.addActionListener(new ButtonListener());
-
- progressLabel = new JLabel("Search your local subnet for CUPS servers");
- progressLabel.setBackground(GLPcolors.backgroundColor);
- progressLabel.setForeground(GLPcolors.foregroundColor);
-
- progressBar = new JProgressBar(0, 254);
- progressBar.setValue(0);
- progressBar.setBorderPainted(true);
- progressBar.setOrientation(JProgressBar.HORIZONTAL);
- progressBar.setBackground(GLPcolors.backgroundColor);
- progressBar.setForeground( Color.blue );
- progressBar.setStringPainted(true);
-
- panel = new JPanel();
- panel.setLayout(new BorderLayout());
- panel.setBackground(GLPcolors.backgroundColor);
-
- panel.add(progressLabel,BorderLayout.NORTH);
- panel.add(progressBar, BorderLayout.CENTER);
- panel.add(searchButton, BorderLayout.EAST);
-
- //Create a timer.
- timer = new Timer(300, new ActionListener()
- {
-
- public void actionPerformed(ActionEvent evt)
- {
- int n = 0;
- for (int i=0; i < 8; i++)
- {
- if (tasks[i] != null)
- n += tasks[i].getValue();
- }
- progressBar.setValue(n);
-
-
- //
- // See if all the threads completed yet.
- //
- int d = 0;
- for (int j=0; j < 8; j++ )
- {
- if (tasks[j] != null)
- {
- if (tasks[j].done())
- {
- d++;
- }
- }
- else d++; // Thread removed ???
- }
-
- if (d >= 8)
- {
- timer.stop();
- progressBar.setValue(progressBar.getMinimum());
- searchButton.setActionCommand("Search");
- searchButton.setText("Search");
- progressLabel.setText("Search local subnet for CUPS servers");
-
- String[] servers = GLPvars.getServerList();
- if ((servers != null) && (servers.length > 0))
- {
- GLPvars.searchTM = new GLPjobTableModel(servers.length,1);
- GLPvars.searchTM.setColumnName(0,"Search Results");
- for (int i=0; i < servers.length; i++)
- GLPvars.searchTM.setValueAt(servers[i],i,0);
- GLPvars.searchTable = new JTable(GLPvars.searchTM);
-
-
- GLPvars.searchTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
- ListSelectionModel rowSM = GLPvars.searchTable.getSelectionModel();
- rowSM.addListSelectionListener(new ListSelectionListener()
- {
- public void valueChanged(ListSelectionEvent e)
- {
- //Ignore extra messages.
- if (e.getValueIsAdjusting()) return;
-
- ListSelectionModel lsm =
- (ListSelectionModel)e.getSource();
- if (lsm.isSelectionEmpty())
- {
- //no rows are selected
- }
- else
- {
- int selectedRow = lsm.getMinSelectionIndex();
- String newServer = (String)GLPvars.searchTM.getValueAt(selectedRow,0);
- GLPvars.setServerName(newServer);
- GLPvars.tabs.updateServerPanel(GLPvars.cupsServerName);
- }
- }
- });
- GLPvars.tabs.updateServerPanel(GLPvars.cupsServerName);
- }
- // DEBUG
-
- } // threads complete?
-
-
-
- }
- });
- }
-
-
-
-
- /**
- * The actionPerformed method in this class
- * is called when the user presses the start button.
- */
- class ButtonListener implements ActionListener
- {
-
- public void actionPerformed(ActionEvent evt)
- {
-
- if (evt.getActionCommand().equals("Search"))
- {
- progressLabel.setText("Searching .....");
- //
- // Create the search threads ....
- //
- tasks = new GLPsearch[8];
- for (int i=0; i < 8; i++)
- tasks[i] = new GLPsearch(i+1);
-
- searchButton.setActionCommand("Stop");
- searchButton.setText("Stop");
- for (int i=0; i < 8; i++)
- {
- if (tasks[i] != null)
- {
- tasks[i].start();
- }
- }
- timer.start();
- }
- else if (evt.getActionCommand().equals("Stop"))
- {
- progressLabel.setText("Search local subnet for CUPS servers");
-
- for (int i=0; i < 8; i++)
- {
- if (tasks[i] != null)
- {
- tasks[i].interrupt();
- }
- // tasks[i] = null;
- }
-
- searchButton.setActionCommand("Search");
- searchButton.setText("Search");
-
- } // Stop event
-
- } // actionPerformed
- } // end of class
-
- public JPanel getPanel()
- {
- return(panel);
- }
-
-
-}
+++ /dev/null
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import java.net.URL;
-import java.net.*;
-import java.io.*;
-import com.easysw.cups.*;
-
-public class GLPserver implements ActionListener
-{
-
- private JPanel serverPanel = null;
- private JPanel searchPanel = null;
-
- private GLPjobTableModel tm = null;
- private JTable table = null;
-
- protected JLabel currentLabel;
- protected JLabel currentLabelValue;
- protected JLabel actionLabel;
- protected JTextField serverTextField;
-
- protected static final String serverFieldString = "New Server Name:";
- protected static final String applyButtonString = "Apply Changes";
-
-
- // Constructor
- public GLPserver()
- {
- GLPvars.searchTM = new GLPjobTableModel(1,1);
- GLPvars.searchTM.setColumnName( 0, "Search Results" );
- GLPvars.searchTM.setValueAt("No search results",0,0);
- GLPvars.searchTable = new JTable(GLPvars.searchTM);
-
- load();
- }
-
- public void load()
- {
- GridBagLayout serverLayout;
- GridBagConstraints serverConst;
-
- // Create the main panel to contain the two sub panels.
- serverPanel = new JPanel();
- serverLayout = new GridBagLayout();
- serverConst = new GridBagConstraints();
-
- serverPanel.setLayout(serverLayout);
- serverPanel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
- serverPanel.setBackground(GLPcolors.backgroundColor);
-
-
- //Create a regular text field.
- serverTextField = new JTextField(32);
- serverTextField.setActionCommand(serverFieldString);
- serverTextField.addActionListener(this);
-
- //Create some labels for the fields.
- JLabel serverFieldLabel = new JLabel(serverFieldString);
- serverFieldLabel.setForeground(GLPcolors.foregroundColor);
- serverFieldLabel.setLabelFor(serverTextField);
-
- currentLabel = new JLabel("Current Server Name: ");
- currentLabel.setForeground(GLPcolors.foregroundColor);
- currentLabelValue = new JLabel(GLPvars.getServerName());
-
- serverConst.gridwidth = GridBagConstraints.RELATIVE;
- serverConst.gridx = 0;
- serverConst.gridy = 0;
- serverConst.fill = GridBagConstraints.HORIZONTAL;
- serverConst.weightx = 0.4;
- serverConst.weighty = 0.0;
- serverConst.ipadx = 4;
- serverConst.ipady = 4;
- serverLayout.setConstraints( currentLabel, serverConst );
- serverPanel.add(currentLabel);
-
- serverConst.gridwidth = GridBagConstraints.RELATIVE;
- serverConst.gridx = 1;
- serverConst.gridy = 0;
- serverConst.fill = GridBagConstraints.HORIZONTAL;
- serverConst.weightx = 0.4;
- serverConst.weighty = 0.0;
- serverConst.ipadx = 4;
- serverConst.ipady = 4;
- serverLayout.setConstraints( currentLabelValue, serverConst );
- serverPanel.add(currentLabelValue);
-
- // Text
- serverConst.gridwidth = GridBagConstraints.RELATIVE;
- serverConst.gridx = 0;
- serverConst.gridy = 1;
- serverConst.fill = GridBagConstraints.HORIZONTAL;
- serverConst.weightx = 0.4;
- serverConst.weighty = 0.0;
- serverConst.ipadx = 4;
- serverConst.ipady = 4;
- serverLayout.setConstraints( serverFieldLabel, serverConst );
- serverPanel.add(serverFieldLabel);
-
- serverConst.gridwidth = GridBagConstraints.RELATIVE;
- serverConst.gridx = 1;
- serverConst.gridy = 1;
- serverConst.fill = GridBagConstraints.HORIZONTAL;
- serverConst.weightx = 0.4;
- serverConst.weighty = 0.0;
- serverConst.ipadx = 4;
- serverConst.ipady = 4;
- serverLayout.setConstraints( serverTextField, serverConst );
- serverPanel.add(serverTextField);
-
- JButton applyButton = new JButton(applyButtonString);
- applyButton.setBorder(BorderFactory.createCompoundBorder(
- BorderFactory.createRaisedBevelBorder(),
- BorderFactory.createEmptyBorder(5,5,5,5)));
- applyButton.setActionCommand(applyButtonString);
- applyButton.addActionListener(this);
- serverConst.gridx = 1;
- serverConst.gridy = 2;
- serverConst.fill = GridBagConstraints.NONE;
- serverLayout.setConstraints( applyButton, serverConst );
- serverConst.weightx = 0.4;
- serverConst.weighty = 0.0;
- serverConst.ipadx = 4;
- serverConst.ipady = 4;
- serverPanel.add(applyButton);
-
- GLPsearchProgressPanel progress = new GLPsearchProgressPanel();
- searchPanel = progress.getPanel();
- serverConst.gridx = 1;
- serverConst.gridy = 3;
- serverConst.fill = GridBagConstraints.HORIZONTAL;
- serverConst.weightx = 0.6;
- serverConst.weighty = 0.3;
- serverConst.ipadx = 4;
- serverConst.ipady = 4;
- serverLayout.setConstraints( searchPanel, serverConst );
- serverPanel.add(searchPanel);
-
- serverConst.gridx = 1;
- serverConst.gridy = 4;
- serverConst.fill = GridBagConstraints.HORIZONTAL;
- serverConst.weightx = 1.0;
- serverConst.weighty = 0.5;
- serverConst.ipadx = 4;
- serverConst.ipady = 4;
- serverLayout.setConstraints( GLPvars.searchTable, serverConst );
- serverPanel.add(GLPvars.searchTable);
-
- }
-
-
- public void actionPerformed(ActionEvent e)
- {
- if (e.getActionCommand().equals(serverFieldString))
- {
- String s = serverTextField.getText();
- if (s.length() > 1)
- {
- GLPvars.setServerName(s);
- serverTextField.setText("");
- currentLabelValue.setText(GLPvars.getServerName());
- }
- }
- else if (e.getActionCommand().equals(applyButtonString))
- {
- String s = serverTextField.getText();
- if (s.length() > 1)
- {
- GLPvars.setServerName(s);
- serverTextField.setText("");
- currentLabelValue.setText(GLPvars.getServerName());
- }
- }
- }
-
- public void updateServer( String server )
- {
- GLPvars.setServerName(server);
- load();
- serverTextField.setText("");
- currentLabelValue.setText(GLPvars.getServerName());
- }
-
-
- public JPanel getPanel()
- {
- return(serverPanel);
- }
-
-}
+++ /dev/null
-
-import java.awt.*;
-import java.awt.event.*;
-import javax.swing.*;
-import javax.swing.event.*;
-import java.net.URL;
-import java.net.*;
-import java.io.*;
-import com.easysw.cups.*;
-
-public class GLPtabs extends JPanel
-{
- JTabbedPane tabPanel = null;
-
- //
- // Panels for the various tabs.
- //
- JPanel serverPanel = null;
- JScrollPane printersPanel = null;
- JPanel detailPanel = null;
- JPanel optionsPanel = null;
-
- GLPserver server = null;
- GLPprinters printers = null;
- GLPdetail detail = null;
- GLPoptions options = null;
-
-
-
- // Constructor
- public GLPtabs()
- {
- tabPanel = new JTabbedPane();
- tabPanel.setBackground(Color.white);
-
- serverPanel = new JPanel();
- server = new GLPserver();
- serverPanel = server.getPanel();
- tabPanel.add("Server", serverPanel);
- tabPanel.setBackgroundAt(0,GLPcolors.tabBackgroundColor);
- tabPanel.setForegroundAt(0,GLPcolors.tabForegroundColor);
-
- printersPanel = new JScrollPane();
- printers = new GLPprinters();
- printersPanel = printers.getPanel();
- tabPanel.add( "Printers", printersPanel );
- tabPanel.setBackgroundAt(1,GLPcolors.tabBackgroundColor);
- tabPanel.setForegroundAt(1,GLPcolors.tabForegroundColor);
-
-
- detail = new GLPdetail();
- detailPanel = detail.getPanel();
- tabPanel.add( "Destination", detailPanel );
- tabPanel.setBackgroundAt(2,GLPcolors.tabBackgroundColor);
- tabPanel.setForegroundAt(2,GLPcolors.tabForegroundColor);
-
- options = new GLPoptions();
- optionsPanel = new JPanel();
- optionsPanel.setBackground(GLPcolors.backgroundColor);
- tabPanel.add( "Options", optionsPanel );
- tabPanel.setBackgroundAt(3,GLPcolors.tabBackgroundColor);
- tabPanel.setForegroundAt(3,GLPcolors.tabForegroundColor);
-
- tabPanel.setSelectedIndex(0);
-
- tabPanel.addChangeListener(new ChangeListener()
- {
- public void stateChanged( ChangeEvent e )
- {
- Object source = e.getSource();
- if (!printers.cupsServerName.equals(GLPvars.getServerName()))
- {
- printers.load();
- printersPanel = printers.getPanel();
- tabPanel.setComponentAt(1,printersPanel);
- }
- }
- });
-
- JPanel jobsPanel = new JPanel();
- JPanel filePanel = new JPanel();
- }
-
-
-
- public void updateServerPanel(String s)
- {
- server.updateServer(s);
- serverPanel = server.getPanel();
- tabPanel.setComponentAt(0,serverPanel);
- }
-
- public void updateDetailPanel()
- {
- detail.topDetail();
- detailPanel = detail.getPanel();
- tabPanel.setComponentAt(2,detailPanel);
- }
-
- public void updateOptionsPanel(CupsPrinter cp)
- {
- options.updateOptions(cp);
- optionsPanel = options.getPanel();
- tabPanel.setComponentAt(3,optionsPanel);
- }
-
- public boolean updatePrintersTab()
- {
- return(true);
- }
-
- public JTabbedPane getPanel()
- {
- return(tabPanel);
- }
-
-}
+++ /dev/null
-
-import java.util.*;
-import javax.swing.*;
-import com.easysw.cups.*;
-
-public class GLPvars
-{
- // Current selected server name or address.
- public static String cupsServerName = null;
-
- // Current selected printer name.
- public static String selectedPrinterName = null;
-
- // Current user name and password.
- public static String cupsUser = "root";
- public static String cupsPasswd = "Frak998";
-
- // So we can access the tabs from other classes.
- public static JTabbedPane mainGLPPanel = null;
- public static GLPtabs tabs = null;
-
- // List of servers found using search.
- protected static List serverList = null;
-
- // So we can update the search results from the search classes.
- public static GLPjobTableModel searchTM = null;
- public static JTable searchTable = null;
-
- // What kind of jobs to list.
- public static boolean showMyJobs = false;
- public static boolean showCompletedJobs = false;
-
- // Constructor
- public GLPvars()
- {
- cupsServerName = "localhost";
- serverList = new ArrayList();
- }
-
- public static void init()
- {
- cupsServerName = "localhost";
- serverList = new ArrayList();
- }
-
-
- public static String getServerName()
- {
- return(cupsServerName);
- }
-
- public static void setServerName( String name )
- {
- cupsServerName = name;
- }
-
-
- //
- // Reset the server list.
- //
- public static void clearServerList()
- {
- serverList = null;
- }
-
-
- //
- // Add a cups server to the server list.
- //
- public static void addToServerList( String serverName )
- {
- if (serverList != null)
- serverList.add(serverName);
- }
-
- //
- // Get the full server list (if any).
- //
- public static String[] getServerList()
- {
- if (serverList != null)
- {
- String[] servers = new String[serverList.size()];
- for (int i=0; i < serverList.size(); i++)
- servers[i] = (String)serverList.get(i);
- return(servers);
- }
- return(null);
- }
-
-
-
-}
+++ /dev/null
-#!/bin/sh
-for x in `cat class.list`; do
- javac $x
-done
+++ /dev/null
-GLPcolors.java
-GLPdetail.java
-GLP.java
-GLPjobList.java
-GLPjobTableModel.java
-GLPoptions.java
-GLPprinterDetail.java
-GLPprinters.java
-GLPsearch.java
-GLPsearchProgressPanel.java
-GLPserver.java
-GLPtabs.java
-GLPvars.java
+++ /dev/null
-#!/bin/sh
-java GLP
+++ /dev/null
-package com.easysw.cups;
-
-/**
-* A Base64 Encoder/Decoder.
-*
-* <p>
-* This class is used to encode and decode data in Base64 format as described in RFC 1521.
-*
-* <p>
-* This is "Open Source" software and released under the <a href="http://www.gnu.org/licenses/lgpl.html">GNU/LGPL</a> license.<br>
-* It is provided "as is" without warranty of any kind.<br>
-* Copyright 2003: Christian d'Heureuse, Inventec Informatik AG, Switzerland.<br>
-* Home page: <a href="http://www.source-code.biz">www.source-code.biz</a><br>
-*
-* <p>
-* Version history:<br>
-* 2003-07-22 Christian d'Heureuse (chdh): Module created.<br>
-* 2005-08-11 chdh: Lincense changed from GPL to LGPL.<br>
-* 2006-11-21 chdh:<br>
-* Method encode(String) renamed to encodeString(String).<br>
-* Method decode(String) renamed to decodeString(String).<br>
-* New method encode(byte[],int) added.<br>
-* New method decode(String) added.<br>
-*/
-
-public class Base64Coder {
-
-// Mapping table from 6-bit nibbles to Base64 characters.
-private static char[] map1 = new char[64];
- static {
- int i=0;
- for (char c='A'; c<='Z'; c++) map1[i++] = c;
- for (char c='a'; c<='z'; c++) map1[i++] = c;
- for (char c='0'; c<='9'; c++) map1[i++] = c;
- map1[i++] = '+'; map1[i++] = '/'; }
-
-// Mapping table from Base64 characters to 6-bit nibbles.
-private static byte[] map2 = new byte[128];
- static {
- for (int i=0; i<map2.length; i++) map2[i] = -1;
- for (int i=0; i<64; i++) map2[map1[i]] = (byte)i; }
-
-/**
-* Encodes a string into Base64 format.
-* No blanks or line breaks are inserted.
-* @param s a String to be encoded.
-* @return A String with the Base64 encoded data.
-*/
-public static String encodeString (String s) {
- return new String(encode(s.getBytes())); }
-
-/**
-* Encodes a byte array into Base64 format.
-* No blanks or line breaks are inserted.
-* @param in an array containing the data bytes to be encoded.
-* @return A character array with the Base64 encoded data.
-*/
-public static char[] encode (byte[] in) {
- return encode(in,in.length); }
-
-/**
-* Encodes a byte array into Base64 format.
-* No blanks or line breaks are inserted.
-* @param in an array containing the data bytes to be encoded.
-* @param iLen number of bytes to process in <code>in</code>.
-* @return A character array with the Base64 encoded data.
-*/
-public static char[] encode (byte[] in, int iLen) {
- int oDataLen = (iLen*4+2)/3; // output length without padding
- int oLen = ((iLen+2)/3)*4; // output length including padding
- char[] out = new char[oLen];
- int ip = 0;
- int op = 0;
- while (ip < iLen) {
- int i0 = in[ip++] & 0xff;
- int i1 = ip < iLen ? in[ip++] & 0xff : 0;
- int i2 = ip < iLen ? in[ip++] & 0xff : 0;
- int o0 = i0 >>> 2;
- int o1 = ((i0 & 3) << 4) | (i1 >>> 4);
- int o2 = ((i1 & 0xf) << 2) | (i2 >>> 6);
- int o3 = i2 & 0x3F;
- out[op++] = map1[o0];
- out[op++] = map1[o1];
- out[op] = op < oDataLen ? map1[o2] : '='; op++;
- out[op] = op < oDataLen ? map1[o3] : '='; op++; }
- return out; }
-
-/**
-* Decodes a string from Base64 format.
-* @param s a Base64 String to be decoded.
-* @return A String containing the decoded data.
-* @throws IllegalArgumentException if the input is not valid Base64 encoded data.
-*/
-public static String decodeString (String s) {
- return new String(decode(s)); }
-
-/**
-* Decodes a byte array from Base64 format.
-* @param s a Base64 String to be decoded.
-* @return An array containing the decoded data bytes.
-* @throws IllegalArgumentException if the input is not valid Base64 encoded data.
-*/
-public static byte[] decode (String s) {
- return decode(s.toCharArray()); }
-
-/**
-* Decodes a byte array from Base64 format.
-* No blanks or line breaks are allowed within the Base64 encoded data.
-* @param in a character array containing the Base64 encoded data.
-* @return An array containing the decoded data bytes.
-* @throws IllegalArgumentException if the input is not valid Base64 encoded data.
-*/
-public static byte[] decode (char[] in) {
- int iLen = in.length;
- if (iLen%4 != 0) throw new IllegalArgumentException ("Length of Base64 encoded input string is not a multiple of 4.");
- while (iLen > 0 && in[iLen-1] == '=') iLen--;
- int oLen = (iLen*3) / 4;
- byte[] out = new byte[oLen];
- int ip = 0;
- int op = 0;
- while (ip < iLen) {
- int i0 = in[ip++];
- int i1 = in[ip++];
- int i2 = ip < iLen ? in[ip++] : 'A';
- int i3 = ip < iLen ? in[ip++] : 'A';
- if (i0 > 127 || i1 > 127 || i2 > 127 || i3 > 127)
- throw new IllegalArgumentException ("Illegal character in Base64 encoded data.");
- int b0 = map2[i0];
- int b1 = map2[i1];
- int b2 = map2[i2];
- int b3 = map2[i3];
- if (b0 < 0 || b1 < 0 || b2 < 0 || b3 < 0)
- throw new IllegalArgumentException ("Illegal character in Base64 encoded data.");
- int o0 = ( b0 <<2) | (b1>>>4);
- int o1 = ((b1 & 0xf)<<4) | (b2>>>2);
- int o2 = ((b2 & 3)<<6) | b3;
- out[op++] = (byte)o0;
- if (op<oLen) out[op++] = (byte)o1;
- if (op<oLen) out[op++] = (byte)o2; }
- return out; }
-
-// Dummy constructor.
-private Base64Coder() {}
-
-} // end class Base64Coder
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 1.2 26-FEB-2006
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007-2008 by Apple Inc.
- * Copyright 1997-2006 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-/**
- * An <code>Cups</code> object is used for connecting to servers,
- * reading and writing data, and performing common CUPS operations.
- *
- * @author TDB
- * @version 1.2
- * @since JDK1.3
- */
-
-import java.io.*;
-import java.util.*;
-import java.net.*;
-
-public class Cups
-{
-
- static final int REQ_STATE_CREATE_HTTP = 0;
- static final int REQ_STATE_WRITE_HTTP_HEADER = 1;
- static final int REQ_STATE_WRITE_IPP_HEADER = 2;
- static final int REQ_STATE_WRITE_IPP_ATTRS = 3;
- static final int REQ_STATE_FINISH_IPP_ATTRS = 4;
- static final int REQ_STATE_READ_RESPONSE = 5;
- static final int REQ_STATE_DONE = 6;
- static final String[] req_state_names =
- { "Create HTTP",
- "Write Http Header",
- "Write IPP Header",
- "Write IPP Attrs",
- "Finish IPP Attrs",
- "Read Response",
- "Done"
- };
-
-
- static final int FILEREQ_STATE_CREATE_HTTP = 0;
- static final int FILEREQ_STATE_WRITE_HTTP_HEADER = 1;
- static final int FILEREQ_STATE_WRITE_IPP_HEADER = 2;
- static final int FILEREQ_STATE_WRITE_IPP_ATTRS = 3;
- static final int FILEREQ_STATE_FINISH_IPP_ATTRS = 4;
- static final int FILEREQ_STATE_WRITE_FILE_DATA = 5;
- static final int FILEREQ_STATE_READ_RESPONSE = 6;
- static final int FILEREQ_STATE_DONE = 7;
- static final String[] filereq_state_names =
- { "Create HTTP",
- "Write Http Header",
- "Write IPP Header",
- "Write IPP Attrs",
- "Finish IPP Attrs",
- "Write File Data",
- "Read Response",
- "Done"
- };
-
-
- IPP ipp; // IPP Request
- IPPHttp http; // Connection to server
-
-
- String protocol; // Protocol name
- String address; // address/name of server
- int port; // Port #
- String path; // Path ....
- String dest; // Name of destination printer
- String instance; // Instance of printer
-
- //
- // encrypt, user, and passwd are not fully implemented!
- //
- boolean encrypt; // Open encrypted connection.
- String user; // User to login as.
- String passwd; // Password if needed.
-
- String site; // URL of site.
-
- int last_error; // Last error #
- String error_text; // Text for error
-
- /**
- * Void constructor.
- */
- public Cups()
- {
- http = null;
- ipp = null;
-
- protocol = "http";
- address = "localhost";
- port = 631;
- path = "/";
- site = "http://localhost:631/";
- dest = "";
- instance = "";
- user = "";
- passwd = "";
- encrypt = false;
- }
-
- /**
- * Constructor using a <code>URL</code>.
- *
- * @param <code>p_url</code> A <code>URL</code> object.
- */
- public Cups( URL p_url )
- {
- http = null;
- ipp = null;
-
- protocol = p_url.getProtocol() + "://";
- address = p_url.getHost();
- port = p_url.getPort();
- path = p_url.getPath();
-
- site = protocol + address;
- if (port > 0)
- site = site + ":" + port;
-
- if (path.length() > 0)
- site = site + path;
-
- dest = "";
- instance = "";
- user = "";
- passwd = "";
- encrypt = false;
- }
-
-
- /**
- * Set the value of the <code>protocol</code> member. Valid values
- * are ipp or http.
- *
- * @param <code>p_protocol</code> String with protocol.
- */
- public void setProtocol( String p_protocol )
- {
- protocol = p_protocol;
- site = protocol + "://" + address + ":" + port + path;
- }
-
- /**
- * Set the value of the <code>server</code> member. This is an
- * IP address or a hostname.
- *
- * @param <code>p_server</code> IP address or hostname.
- */
- public void setServer( String p_server )
- {
- address = p_server;
- site = protocol + "://" + address + ":" + port + path;
- }
-
-
- /**
- * Set the value of the <code>port</code> member.
- *
- * @param <code>p_port</code> Port number.
- */
- public void setPort( int p_port )
- {
- port = p_port;
- site = protocol + "://" + address + ":" + port + path;
- }
-
-
- /**
- * Set the value of the <code>user</code> member.
- *
- * @param <code>p_user</code> User name.
- */
- public void setUser( String p_user )
- {
- user = p_user;
- }
-
-
- /**
- * Set the value of the <code>passwd</code> member.
- *
- * @param <code>p_passwd</code> Password.
- */
- public void setPasswd( String p_passwd )
- {
- passwd = p_passwd;
- }
-
-
- /**
- * Set the value of the <code>dest</code> member.
- *
- * @param <code>p_dest</code> Destination.
- */
- public void setDest( String p_dest )
- {
- dest = p_dest;
- }
-
-
- /**
- * Set the value of the <code>instance</code> member.
- *
- * @param <code>p_instance</code> Instance.
- */
- public void setInstance( String p_instance)
- {
- instance = p_instance;
- }
-
-
- /**
- * Set the value of the <code>encrypt</code> member.
- *
- * @param <code>p_enrypt</code> Yes or no.
- */
- public void setEncrypt( boolean p_encrypt )
- {
- encrypt = p_encrypt;
- }
-
-
- /**
- * Get the value of the <code>encrypt</code> member.
- *
- * @return <code>boolean</code> Encryption on or off.
- */
- public boolean getEncrypt()
- {
- return(encrypt);
- }
-
-
- /**
- * Set the value of the <code>path</code> member. This is the
- * path that will be used in the POST method.
- *
- * @param <code>p_path</code> Path on server.
- */
- public void setPath( String p_path )
- {
- path = p_path;
- site = protocol + "://" + address + ":" + port + path;
- }
-
-
-
- public boolean doRequest(String from) throws IOException
- {
- // System.out.println("doRequest From: " + from );
- return(doRequest());
- }
-
-
-
- /**
- * Do a CUPS request to the server.
- *
- * @param <code>p_dest</code> Destination name.
- * @return <code>boolean</code> True on success, false otherwise
- * @throw <code>IOException</code>
- */
- public boolean doRequest() throws IOException
- {
- IPPAttribute attr;
- int state = REQ_STATE_CREATE_HTTP;
- int errors = 0;
-
- while (true)
- {
- switch( state )
- {
-
- case REQ_STATE_CREATE_HTTP:
- String url_str = site + dest;
-
- try
- {
- if (user.length() > 0 && passwd.length() > 0)
- http = new IPPHttp(url_str, "", user, passwd );
- else
- http = new IPPHttp(url_str);
- state++;
- }
- catch (IOException e)
- {
- throw(e);
- }
- break;
-
-
-
- case REQ_STATE_WRITE_HTTP_HEADER:
- //
- // Send the HTTP header.
- //
- switch( http.writeHeader( http.path, ipp.sizeInBytes() ))
- {
- case IPPHttp.HTTP_FORBIDDEN:
- case IPPHttp.HTTP_NOT_FOUND:
- case IPPHttp.HTTP_BAD_REQUEST:
- case IPPHttp.HTTP_METHOD_NOT_ALLOWED:
- case IPPHttp.HTTP_PAYMENT_REQUIRED:
- case IPPHttp.HTTP_UPGRADE_REQUIRED:
- case IPPHttp.HTTP_ERROR:
- case IPPHttp.HTTP_UNAUTHORIZED:
- errors++;
- if (errors < 5)
- {
- if (!http.reConnect())
- {
- System.out.println("Could not reConnect(0)!");
- return(false);
- }
- }
- else
- {
- return(false);
- }
- break;
-
- default: state++;
- }
- break;
-
-
-
- case REQ_STATE_WRITE_IPP_HEADER:
- //
- // Send the request header.
- //
- byte[] header = new byte[8];
- header[0] = (byte)1;
- header[1] = (byte)1;
- header[2] = (byte)((ipp.request.operation_id & 0xff00) >> 8);
- header[3] = (byte)(ipp.request.operation_id & 0xff);
- header[4] = (byte)((ipp.request.request_id & 0xff000000) >> 24);
- header[5] = (byte)((ipp.request.request_id & 0xff0000) >> 16);
- header[6] = (byte)((ipp.request.request_id & 0xff00) >> 8);
- header[7] = (byte)(ipp.request.request_id & 0xff);
- http.write( header );
- if (http.checkForResponse() >= IPPHttp.HTTP_BAD_REQUEST)
- {
- errors++;
- if (errors < 5)
- {
- if (http.reConnect())
- state = REQ_STATE_WRITE_HTTP_HEADER;
- else
- {
- System.out.println("Could not reConnect(1)\n");
- return(false);
- }
- }
- else
- {
- return(false);
- }
- }
- else state++;
- break;
-
-
- case REQ_STATE_WRITE_IPP_ATTRS:
- //
- // Send the attributes list.
- //
- byte[] bytes;
- int sz;
- int last_group = -1;
- boolean auth_error = false;
- for (int i=0; i < ipp.attrs.size() && !auth_error; i++)
- {
- attr = (IPPAttribute)ipp.attrs.get(i);
- sz = attr.sizeInBytes(last_group);
- bytes = attr.getBytes(sz,last_group);
- last_group = attr.group_tag;
- http.write(bytes);
-
- //
- // Check for server response between each attribute.
- //
- if (http.checkForResponse() >= IPPHttp.HTTP_BAD_REQUEST)
- {
- errors++;
- if (errors < 5)
- {
- if (!http.reConnect())
- {
- System.out.println("Could not reConnect(2)");
- return(false);
- }
- state = REQ_STATE_WRITE_HTTP_HEADER;
- auth_error = true;
- }
- else
- {
- return(false);
- }
- }
-
- }
- if (!auth_error)
- state++;
- break;
-
-
-
- case REQ_STATE_FINISH_IPP_ATTRS:
- //
- // Send the end of attributes tag.
- //
- byte[] footer = new byte[1];
- footer[0] = (byte)IPPDefs.TAG_END;
- http.write( footer );
-
- //
- // Keep checking .....
- //
- if (http.checkForResponse() >= IPPHttp.HTTP_BAD_REQUEST)
- {
- errors++;
- if (errors < 5)
- {
- if (!http.reConnect())
- {
- System.out.println("Could not reConnect(3)");
- return(false);
- }
- state = REQ_STATE_WRITE_HTTP_HEADER;
- }
- else
- {
- return(false);
- }
- }
- else state++;
- break;
-
-
-
- case REQ_STATE_READ_RESPONSE:
- //
- // Now read back response
- //
- int read_length;
- read_length = http.read_header();
- switch( http.status )
- {
- case IPPHttp.HTTP_OK:
- break;
-
- case IPPHttp.HTTP_UNAUTHORIZED:
- http.reConnect();
- state = REQ_STATE_WRITE_HTTP_HEADER;
- errors = 0;
- break;
-
- default:
- errors++;
- if (errors < 5)
- {
- if (!http.reConnect())
- {
- System.out.println("Could not reConnect(4)");
- return(false);
- }
- state = REQ_STATE_WRITE_HTTP_HEADER;
- }
- else
- {
- System.out.println("Too many errors: " + errors );
- return(false);
- }
- break;
- }
-
- if ((read_length > 0) && (state == REQ_STATE_READ_RESPONSE))
- {
- http.read_buffer = http.read(read_length);
- ipp = http.processResponse();
- state++;
- }
- break;
-
- case REQ_STATE_DONE:
- //
- // success.
- //
- http.conn.close();
- http = null;
- return(true);
- }
- }
-
- } // End of doRequest
-
-
-
- /**
- * Send a FILE to the CUPS server.
- *
- * @param <code>file</code> File to send.
- * @return <code>boolean</code> True on success, false otherwise
- * @throw <code>IOException</code>
- */
- public boolean doRequest(File file) throws IOException
- {
- IPPAttribute attr;
- int state = FILEREQ_STATE_CREATE_HTTP;
- int errors = 0;
- FileInputStream fis = null;
-
- while (true)
- {
- switch( state )
- {
-
- case FILEREQ_STATE_CREATE_HTTP:
- String url_str = site + dest;
- try
- {
- if (user.length() > 0 && passwd.length() > 0)
- http = new IPPHttp(url_str, "", user, passwd );
- else
- http = new IPPHttp(url_str);
- state++;
- }
- catch (IOException e)
- {
- throw(e);
- }
- break;
-
-
-
- case FILEREQ_STATE_WRITE_HTTP_HEADER:
-
- if (fis != null)
- {
- fis.close();
- }
-
- //
- // Open an input stream to the file.
- //
- try
- {
- fis = new FileInputStream(file);
- }
- catch (IOException e)
- {
- last_error = -1;
- error_text = "Error opening file input stream.";
- throw(e);
- }
-
- //
- // Send the HTTP header.
- //
- int ippSz = ipp.sizeInBytes() + (int)file.length();
- switch( http.writeHeader( http.path, ippSz ))
- {
- case IPPHttp.HTTP_FORBIDDEN:
- case IPPHttp.HTTP_NOT_FOUND:
- case IPPHttp.HTTP_BAD_REQUEST:
- case IPPHttp.HTTP_METHOD_NOT_ALLOWED:
- case IPPHttp.HTTP_PAYMENT_REQUIRED:
- case IPPHttp.HTTP_UPGRADE_REQUIRED:
- case IPPHttp.HTTP_ERROR:
- case IPPHttp.HTTP_UNAUTHORIZED:
- errors++;
- if (errors < 5)
- {
- http.reConnect();
- }
- else
- return(false);
- break;
-
- default: state++;
- }
- break;
-
-
-
- case FILEREQ_STATE_WRITE_IPP_HEADER:
- //
- // Send the request header.
- //
- byte[] header = new byte[8];
- header[0] = (byte)1;
- header[1] = (byte)1;
- header[2] = (byte)((ipp.request.operation_id & 0xff00) >> 8);
- header[3] = (byte)(ipp.request.operation_id & 0xff);
- header[4] = (byte)((ipp.request.request_id & 0xff000000) >> 24);
- header[5] = (byte)((ipp.request.request_id & 0xff0000) >> 16);
- header[6] = (byte)((ipp.request.request_id & 0xff00) >> 8);
- header[7] = (byte)(ipp.request.request_id & 0xff);
- http.write( header );
- if (http.checkForResponse() >= IPPHttp.HTTP_BAD_REQUEST)
- {
- errors++;
- if (errors < 5)
- {
- http.reConnect();
- state = FILEREQ_STATE_WRITE_HTTP_HEADER;
- }
- else
- return(false);
- }
- else state++;
- break;
-
-
- case FILEREQ_STATE_WRITE_IPP_ATTRS:
- //
- // Send the attributes list.
- //
- byte[] bytes;
- int sz;
- int last_group = -1;
- boolean auth_error = false;
- for (int i=0; i < ipp.attrs.size() && !auth_error; i++)
- {
- attr = (IPPAttribute)ipp.attrs.get(i);
- sz = attr.sizeInBytes(last_group);
- bytes = attr.getBytes(sz,last_group);
- last_group = attr.group_tag;
- http.write(bytes);
-
- //
- // Check for server response between each attribute.
- //
- if (http.checkForResponse() >= IPPHttp.HTTP_BAD_REQUEST)
- {
- errors++;
- if (errors < 5)
- {
- http.reConnect();
- state = FILEREQ_STATE_WRITE_HTTP_HEADER;
- auth_error = true;
- }
- else
- return(false);
- }
-
- }
- if (!auth_error)
- state++;
- break;
-
-
-
- case FILEREQ_STATE_FINISH_IPP_ATTRS:
- //
- // Send the end of attributes tag.
- //
- byte[] footer = new byte[1];
- footer[0] = (byte)IPPDefs.TAG_END;
- http.write( footer );
-
- //
- // Keep checking .....
- //
- if (http.checkForResponse() >= IPPHttp.HTTP_BAD_REQUEST)
- {
- errors++;
- if (errors < 5)
- {
- http.reConnect();
- state = FILEREQ_STATE_WRITE_HTTP_HEADER;
- }
- else
- return(false);
- }
- else state++;
- break;
-
-
-
- case FILEREQ_STATE_WRITE_FILE_DATA:
- //
- // Send the file data - this could be improved on ALOT.
- //
- int count;
- byte[] b = new byte[1024];
- while ((state == FILEREQ_STATE_WRITE_FILE_DATA) &&
- ((count = fis.read(b)) != -1))
- {
- //
- // Keep checking .....
- //
- if (http.checkForResponse() >= IPPHttp.HTTP_BAD_REQUEST)
- {
- errors++;
- if (errors < 5)
- {
- http.reConnect();
- state = FILEREQ_STATE_WRITE_HTTP_HEADER;
- }
- else
- {
- return(false);
- }
- }
- else
- {
- if (count > 0)
- http.write( b, count );
- }
-
- } // while
-
- if (state == FILEREQ_STATE_WRITE_FILE_DATA)
- {
- fis.close();
- fis = null;
- state++;
- }
- break;
-
-
-
- case FILEREQ_STATE_READ_RESPONSE:
- //
- // Now read back response
- //
- int read_length;
- read_length = http.read_header();
- switch( http.status )
- {
- case IPPHttp.HTTP_OK:
- break;
-
- case IPPHttp.HTTP_UNAUTHORIZED:
- http.reConnect();
- state = FILEREQ_STATE_WRITE_HTTP_HEADER;
- errors = 0;
- break;
-
- default:
- errors++;
- if (errors < 5)
- {
- http.reConnect();
- state = FILEREQ_STATE_WRITE_HTTP_HEADER;
- }
- else
- {
- return(false);
- }
- break;
- }
-
- if ((read_length > 0) && (state == FILEREQ_STATE_READ_RESPONSE))
- {
- http.read_buffer = http.read(read_length);
- ipp = http.processResponse();
- state++;
- }
- break;
-
- case FILEREQ_STATE_DONE:
- //
- // success.
- //
- http.conn.close();
- http = null;
- return(true);
- }
- }
-
- } // End of doRequest(file)
-
-
-
-
-
-
-
- /**
- * Get a list of jobs.
- *
- * @param <code>showMyJobs</code> Show only jobs for user.
- * @param <code>showCompleted</code> Show completed OR active jobs.
- *
- * @return <code>CupsJob[]</code> Array of job objects, or null.
- * @throw <code>IOException</code>
- */
- public CupsJob[] cupsGetJobs( boolean showMyJobs, boolean showCompleted )
- throws IOException
- {
-
- IPPAttribute a;
-
- String req_attrs[] = /* Requested attributes */
- {
- "job-id",
- "job-priority",
- "job-k-octets",
- "job-state",
- "time-at-completed",
- "time-at-creation",
- "time-at-processing",
- "job-printer-uri",
- "document-format",
- "job-name",
- "job-originating-user-name"
- };
-
-
- ipp = new IPP();
- ipp.request = new IPPRequest( 1, (short)IPPDefs.GET_JOBS );
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_CHARSET,
- "attributes-charset" );
- a.addString( "", "utf-8" );
- ipp.addAttribute(a);
-
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_LANGUAGE,
- "attributes-natural-language" );
- a.addString( "", "en" );
- ipp.addAttribute(a);
-
-
- //
- // Add the printer uri
- //
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_URI,
- "printer-uri" );
-
- if (site != null)
- a.addString( "", site );
- else
- a.addString( "", "ipp://localhost/jobs" ); // Default ...
- // a.dump_values();
- ipp.addAttribute(a);
-
-
- //
- // Add the requesting user name
- // **FIX** This should be fixed to use the user member.
- //
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_NAME,
- "requesting-user-name" );
- a.addString( "", "root" );
- ipp.addAttribute(a);
-
- //
- // Show only my jobs?
- //
- if (showMyJobs)
- {
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_BOOLEAN,
- "my-jobs" );
- a.addBoolean( true );
- ipp.addAttribute(a);
- }
-
- //
- // Show completed jobs?
- //
- if (showCompleted)
- {
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_KEYWORD,
- "which-jobs" );
- a.addString( "", "completed" );
- ipp.addAttribute(a);
- }
-
- //
- // Get ALL attributes - to get only listed ones,
- // uncomment this and fill in req_attrs.
- //
- // a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_KEYWORD,
- // "requested-attributes" );
- // a.addStrings( "", req_attrs );
- // ipp.addAttribute(a);
-
- //
- // Do the request and process the response.
- //
- if (doRequest("cupsGetJobs"))
- {
-
-
- //
- // First we have to figure out how many jobs there are
- // so we can create the array.
- //
-
- //
- // Skip past leading attributes
- //
- int i = 0;
- int group_tag = -1;
- while ((i < ipp.attrs.size()) && (group_tag != IPPDefs.TAG_JOB))
- {
- a = (IPPAttribute)ipp.attrs.get(i);
- group_tag = a.group_tag;
- if (group_tag != IPPDefs.TAG_JOB)
- i++;
- }
-
- int num_jobs = 0;
- group_tag = IPPDefs.TAG_JOB;
- while ((i < ipp.attrs.size()) && (group_tag == IPPDefs.TAG_JOB))
- {
- a = (IPPAttribute)ipp.attrs.get(i++);
- if ((a != null) && (a.name.compareTo("job-id") == 0))
- num_jobs++;
- // a.dump_values();
- }
-
- if (num_jobs < 1)
- return(null);
-
-
- //
- // Now create the array of the proper size.
- //
- int n = 0;
- CupsJob[] jobs = new CupsJob[num_jobs];
- for (n=0; n < num_jobs; n++)
- {
- jobs[n] = new CupsJob();
- }
-
-
-
-
- //
- // Skip past leading attributes
- //
- group_tag = -1;
- i = 0;
- while ((i < ipp.attrs.size()) && (group_tag != IPPDefs.TAG_JOB))
- {
- a = (IPPAttribute)ipp.attrs.get(i);
- group_tag = a.group_tag;
- if (group_tag != IPPDefs.TAG_JOB)
- i++;
- }
-
- //
- // Now we actually fill the array with the job data.
- //
- n = 0;
- for (;i < ipp.attrs.size(); i++)
- {
- a = (IPPAttribute)ipp.attrs.get(i);
-
- if (a.group_tag == IPPDefs.TAG_ZERO)
- {
- n++;
- continue;
- }
- else
- {
- try
- {
- jobs[n].updateAttribute( a );
- }
- catch (ArrayIndexOutOfBoundsException e)
- {
- return(jobs);
- }
- }
- }
- return( jobs );
- }
- return(null);
-
- } // End of cupsGetJobs
-
-
-
- /**
- * Get a list of printers.
- *
- * @return <code>String[]</code> Array of printers, or null.
- * @throw <code>IOException</code>
- */
- public String[] cupsGetPrinters()
- throws IOException
- {
-
- IPPAttribute a;
-
- ipp = new IPP();
-
- //
- // Fill in the required attributes
- //
- ipp.request = new IPPRequest( 1, (short)IPPDefs.CUPS_GET_PRINTERS );
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_CHARSET,
- "attributes-charset" );
- a.addString( "", "utf-8" );
- ipp.addAttribute(a);
-
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_LANGUAGE,
- "attributes-natural-language" );
- a.addString( "", "en" );
- ipp.addAttribute(a);
-
-
- if (doRequest("cupsGetPrinters"))
- {
- int num_printers = 0;
- for (int i=0; i < ipp.attrs.size(); i++)
- {
- a = (IPPAttribute)ipp.attrs.get(i);
- if ((a.name.compareTo("printer-name") == 0) &&
- (a.value_tag == IPPDefs.TAG_NAME))
- {
- num_printers++;
- }
- }
- if (num_printers < 1)
- return(null);
-
- String[] printers = new String[num_printers];
- IPPValue val;
- int n = 0;
- for (int i=0; i < ipp.attrs.size(); i++)
- {
- a = (IPPAttribute)ipp.attrs.get(i);
- if (a.group_tag < 2)
- continue;
-
- if ((a.name.compareTo("printer-name") == 0) &&
- (a.value_tag == IPPDefs.TAG_NAME))
- {
- val = (IPPValue)a.values.get(0);
- if (val != null)
- {
- printers[n] = val.text;
- n++;
- }
- }
- }
- return( printers );
-
- } // if doRequest ...
-
- return(null);
-
- } // End of cupsGetPrinters
-
-
-
-
- /**
- * Get default destination.
- *
- * @return <code>String</code> Name of default printer, or null.
- * @throw <code>IOException</code>
- */
- public String cupsGetDefault()
- throws IOException
- {
-
- IPPAttribute a;
-
-
- ipp = new IPP();
- //
- // Fill in the required attributes
- //
- ipp.request = new IPPRequest( 1, (short)IPPDefs.CUPS_GET_DEFAULT);
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_CHARSET,
- "attributes-charset" );
- a.addString( "", "utf-8" );
- ipp.addAttribute(a);
-
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_LANGUAGE,
- "attributes-natural-language" );
- a.addString( "", "en" );
- ipp.addAttribute(a);
-
-
- if (doRequest("cupsGetDefault"))
- {
- if ((ipp == null) || (ipp.attrs == null))
- return(null);
-
- int num_printers = 0;
- for (int i=0; i < ipp.attrs.size(); i++)
- {
- a = (IPPAttribute)ipp.attrs.get(i);
- if ((a.name.compareTo("printer-name") == 0) &&
- (a.value_tag == IPPDefs.TAG_NAME))
- {
- IPPValue val = (IPPValue)a.values.get(0);
- if (val != null)
- {
- return( val.text );
- }
- }
- }
- } // if doRequest ...
-
- return(null);
-
- } // End of cupsGetDefault
-
-
-
-
-
-
- /**
- * Get printer attributes
- *
- * @param <code>printer_name</code> Name of printer to get info for.
- * @return <code>List</code> List of attributes.
- * @throw <code>IOException</code>
- *
- * @see <code>CupsPrinter</code>
- */
- public List cupsGetPrinterAttributes( String printer_name )
- throws IOException
- {
-
- IPPAttribute a;
-
- ipp = new IPP();
-
- //
- // Fill in the required attributes
- //
- ipp.request = new IPPRequest( 1, (short)IPPDefs.GET_PRINTER_ATTRIBUTES );
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_CHARSET,
- "attributes-charset" );
- a.addString( "", "utf-8" );
- ipp.addAttribute(a);
-
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_LANGUAGE,
- "attributes-natural-language" );
- a.addString( "", "en" );
- ipp.addAttribute(a);
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_URI,
- "printer-uri" );
- String p_uri = "ipp://" + address + ":" +
- port + "/printers/" + printer_name;
- a.addString( "", p_uri );
- ipp.addAttribute(a);
-
- if (doRequest("cupsGetPrinterAttributes"))
- {
- return(ipp.attrs);
- }
-
- return(null);
-
- } // End of cupsGetPrinterAttributes
-
-
-
-
- /**
- * Print a file.
- *
- * @param <code>p_filename</code> Path of file to print.
- * @param <code>p_attrs[]</code> Array of print job attributes.
- *
- * @return <code>CupsJob</code> Object with job info.
- *
- * @throw <code>IOException</code>
- *
- * @see <code>CupsJob</code>
- */
- public CupsJob cupsPrintFile( String p_filename,
- IPPAttribute p_attrs[] )
- throws IOException
- {
-
- CupsJob job;
- IPPAttribute a;
- File file;
-
-
- file = new File(p_filename);
- if (!file.exists())
- {
- last_error = -1;
- error_text = "File does not exist.";
- return(null);
- }
-
- if (!file.canRead())
- {
- last_error = -1;
- error_text = "File cannot be read.";
- return(null);
- }
-
-
- ipp = new IPP();
- //
- // Fill in the required attributes
- //
- ipp.request = new IPPRequest( 1, (short)IPPDefs.PRINT_JOB );
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_CHARSET,
- "attributes-charset" );
- a.addString( "", "utf-8" );
- ipp.addAttribute(a);
-
- // ------------
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_LANGUAGE,
- "attributes-natural-language" );
- a.addString( "", "en" );
- ipp.addAttribute(a);
-
- // ------------
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_URI,
- "printer-uri" );
- a.addString( "", site + dest );
- ipp.addAttribute(a);
-
- // ------------
- // **FIX** Fix this later.
-/*
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_NAME,
- "requesting-user-name" );
- // a.addString( "", p_username );
- a.addString( "", "root");
- ipp.addAttribute(a);
-*/
-
- // ------------
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_NAME,
- "job-name" );
- a.addString( "", file.getName() );
- ipp.addAttribute(a);
-
- if (p_attrs != null)
- {
- for (int i=0; i < p_attrs.length; i++)
- {
- a = p_attrs[i];
- ipp.addAttribute(a);
- }
- }
-
- if (doRequest(file))
- {
- job = new CupsJob();
- for (int i=0; i < ipp.attrs.size(); i++)
- {
- a = (IPPAttribute)ipp.attrs.get(i);
- job.updateAttribute(a);
- }
- return(job);
-
- } // if doRequest ...
-
- return(null);
-
- } // End of cupsPrintFile
-
-
-
-
-
- /**
- * Cancel a job - send a job cancel request to the server.
- *
- * @param <code>printer_name</code> Destination.
- * @param <code>p_job_id</code> ID of job.
- * @param <code>p_user_name</code> Requesting user name.
- *
- * @throw <code>IOException</code>
- */
- public int cupsCancelJob( String printer_name,
- int p_job_id,
- String p_user_name )
- throws IOException
- {
-
- IPPAttribute a;
-
- ipp = new IPP();
-
- //
- // Fill in the required attributes
- //
- ipp.request = new IPPRequest( 1, (short)IPPDefs.CANCEL_JOB );
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_CHARSET,
- "attributes-charset" );
- a.addString( "", "utf-8" );
- ipp.addAttribute(a);
-
- // ------------
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_LANGUAGE,
- "attributes-natural-language" );
- a.addString( "", "en" );
- ipp.addAttribute(a);
-
- // ------------
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_URI,
- "printer-uri" );
- a.addString( "", site + dest );
- ipp.addAttribute(a);
-
- // ------------
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_INTEGER,
- "job-id" );
- a.addInteger( p_job_id );
- ipp.addAttribute(a);
-
- // ------------
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_NAME,
- "requesting-user-name" );
- a.addString( "", p_user_name );
- ipp.addAttribute(a);
-
- if (doRequest("cupsCancelJob"))
- {
- for (int i=0; i < ipp.attrs.size(); i++)
- {
- a = (IPPAttribute)ipp.attrs.get(i);
- a.dump_values();
- }
- return(0);
-
- } // if doRequest ...
-
- return(0);
-
- } // End of cupsCancelJob
-
-
-
-
- public List cupsGetPrinterStatus(String printer_name)
- throws IOException
- {
- IPPAttribute a;
- String p_uri;
-
- ipp = new IPP();
-
- //
- // Fill in the required attributes
- //
- ipp.request = new IPPRequest(1,(short)IPPDefs.GET_PRINTER_ATTRIBUTES);
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_CHARSET,
- "attributes-charset" );
- a.addString( "", "utf-8" );
- ipp.addAttribute(a);
-
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_LANGUAGE,
- "attributes-natural-language" );
- a.addString( "", "en" );
- ipp.addAttribute(a);
-
- a = new IPPAttribute( IPPDefs.TAG_OPERATION, IPPDefs.TAG_URI,
- "printer-uri" );
- p_uri = "ipp://" + address + ":" +
- port + "/printers/" + printer_name;
- a.addString( "", p_uri );
- ipp.addAttribute(a);
-
- if (doRequest("cupsGetPrinterStatus"))
- {
- return(ipp.attrs);
- }
- return(null);
- }
-
-
-
-
-
-} // End of Cups class
-
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-
-/**
- * A <code>CupsJob</code> object holds job data, and has methods to
- * process cups job list responses into a usable form.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-
-//
-import java.io.*;
-import java.net.*;
-
-public class CupsJob
-{
- public int job_id;
- public String job_more_info;
- public String job_uri;
- public String job_printer_uri;
- public long job_printer_up_time;
- public String job_name;
- public String job_originating_user_name;
- public String document_format;
- public String job_originating_host_name;
- public int job_priority;
- public int job_state;
- public int job_media_sheets_completed;
- public int job_k_octets;
- public long time_at_creation;
- public long time_at_processing;
- public long time_at_completed;
- public String job_hold_until;
- public String job_sheets;
- public String job_state_reasons;
-
-
- /**
- * Constructor - set some default values.
- */
- public CupsJob()
- {
- job_id = -1;
- job_more_info = "";
- job_uri = "";
- job_printer_uri = "";
- job_printer_up_time = 0;
- job_name = "";
- job_originating_user_name = "";
- document_format = "";
- job_originating_host_name = "";
- job_priority = -1;
- job_state = 0;
- job_media_sheets_completed = 0;
- job_k_octets = 0;
- time_at_creation = 0;
- time_at_processing = 0;
- time_at_completed = 0;
- job_hold_until = "";
- job_sheets = "";
- job_state_reasons = "";
- }
-
-
-
-
- /**
- * Process an attribute from a cups.doRequest() call
- * and move the value into a local member.
- *
- * @see <code>IPPDefs</code>
- * @see <code>IPPValues</code>
- * @see <code>IPPAttributes</code>
- */
- public void updateAttribute( IPPAttribute a )
- {
- IPPValue val;
-
- //
- // Kick out if no values are present.
- //
- if (a.values.size() < 1)
- return;
-
- val = (IPPValue)a.values.get(0);
- if (a.name.compareTo("job-more-info") == 0)
- {
- job_more_info = val.text;
- }
- else if (a.name.compareTo("job-uri") == 0)
- {
- job_uri = val.text;
- }
- else if (a.name.compareTo("job-printer-up-time") == 0)
- {
- job_printer_up_time = val.integer_value;
- }
- else if (a.name.compareTo("job-originating-user-name") == 0)
- {
- job_originating_user_name = val.text;
- }
- else if (a.name.compareTo("document-format") == 0)
- {
- document_format = val.text;
- }
- else if (a.name.compareTo("job-priority") == 0)
- {
- job_priority = val.integer_value;
- }
- else if (a.name.compareTo("job-originating-host-name") == 0)
- {
- job_originating_host_name = val.text;
- }
- else if (a.name.compareTo("job-id") == 0)
- {
- job_id = val.integer_value;
- }
- else if (a.name.compareTo("job-state") == 0)
- {
- job_state = val.integer_value;
- }
- else if (a.name.compareTo("job-media-sheets-completed") == 0)
- {
- job_media_sheets_completed = val.integer_value;
- }
- else if (a.name.compareTo("job-printer-uri") == 0)
- {
- job_printer_uri = val.text;
- }
- else if (a.name.compareTo("job-name") == 0)
- {
- job_name = val.text;
- }
- else if (a.name.compareTo("job-k-octets") == 0)
- {
- job_k_octets = val.integer_value;
- }
- else if (a.name.compareTo("time-at-creation") == 0)
- {
- time_at_creation = val.integer_value;
- }
- else if (a.name.compareTo("time-at-processing") == 0)
- {
- time_at_processing = val.integer_value;
- }
- else if (a.name.compareTo("time-at-completed") == 0)
- {
- time_at_completed = val.integer_value;
- }
- else if (a.name.compareTo("job-hold-until") == 0)
- {
- job_hold_until = val.text;
- }
- else if (a.name.compareTo("job-sheets") == 0)
- {
- job_sheets = val.text;
- }
- else if (a.name.compareTo("job-state-reasons") == 0)
- {
- job_state_reasons = val.text;
- }
- }
-
-
- /**
- * Convert a job status to a string.
- *
- * @see <code>IPPDefs</code>
- */
- public String jobStatusText()
- {
- switch( job_state )
- {
- case 3: return("Pending");
- case 4: return("Held");
- case 5: return("Processing");
- case 6: return("Stopped");
- case 7: return("Cancelled");
- case 8: return("Aborted");
- case 9: return("Completed");
- }
- return("Unknown");
- }
-
-
-}
-
-// eof ....
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-/**
- * A <code>CupsPrinter</code> holds printer attribute / status information,
- * and has methods to process CUPS server responses.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-
-import java.io.*;
-import java.net.*;
-import java.util.*;
-
-public class CupsPrinter
-{
-
- //
- // Printer attributes / status members.
- //
- String printer_name;
-
- String printer_location;
- String printer_info;
- String printer_more_info;
-
- String[] printer_uri_supported; // Strings
- String[] uri_authentication_supported; // Strings
- String[] uri_security_supported; // Strings
-
- String attributes_charset;
- String attributes_natural_language;
-
- int printer_state;
- String printer_state_text;
- String printer_state_reasons;
-
- boolean printer_is_accepting_jobs;
-
- long printer_up_time;
- long printer_current_time;
-
- int queued_job_count;
-
- String[] pdl_override_supported;
- String[] ipp_versions_supported;
-
- int[] operations_supported; // Integers
-
- boolean multiple_document_jobs_supported;
- int multiple_operation_time_out;
- int[] multiple_document_handling_supported; // Integers
-
- String charset_configured;
- String natural_language_configured;
- String generated_natural_language_supported;
- String[] charset_supported; // Strings
-
- String document_format_default;
- String[] document_format_supported; // Strings
-
- String[] compression_supported; // Strings
-
- int job_priority_default;
- int job_priority_supported;
-
- int copies_default;
- int lower_copies_supported;
- int upper_copies_supported;
-
- boolean page_ranges_supported;
-
- int number_up_default;
- int[] number_up_supported; // integers
-
-
- int orientation_requested_default;
- int[] orientation_requested_supported; // Integers
-
- int job_quota_period;
- int job_k_limit;
- int job_page_limit;
-
- String job_sheets_default; // Should this be a list too?
- String[] job_sheets_supported; // Strings
-
- String device_uri;
-
- boolean color_supported;
- int pages_per_minute;
-
- String printer_make_and_model;
-
- String media_default;
- String[] media_supported; // Strings
-
- int finishings_default;
- int[] finishings_supported; // Integers
-
- int printer_type;
-
-
-
- /**
- * Constructor. Does not get status or attributes.
- *
- * @param <code>c</code> Cups object.
- *
- * @see <code>Cups</code>
- */
- public CupsPrinter(Cups c)
- {
- setDefaults();
- }
-
- /**
- * Constructor with name. Get status and attributes.
- *
- * @param <code>c</code> Cups object.
- * @param <code>name</code> Name of printer.
- *
- * @see <code>Cups</code>
- */
- public CupsPrinter(Cups c, String name)
- {
- setDefaults();
- printer_name = name;
-
- //
- //
- getStatus(c);
- getAttributes(c);
- }
-
-
-
- /**
- * Initialize the members with mostly sane values.
- *
- */
- public void setDefaults()
- {
- printer_name = "";
- printer_location = "";
- printer_info = "";
- printer_more_info = "";
- printer_uri_supported = null;
- uri_authentication_supported = null;
- uri_security_supported = null;
- attributes_charset = "us-ascii";
- attributes_natural_language = "en";
- printer_state = -1;
- printer_state_text = "";
- printer_state_reasons = "";
- printer_is_accepting_jobs = false;
- printer_up_time = 0;
- printer_current_time = 0;
- queued_job_count = 0;
- pdl_override_supported = null;
- ipp_versions_supported = null;
- operations_supported = null;
- multiple_document_jobs_supported = false;
- multiple_operation_time_out = 0;
- multiple_document_handling_supported = null;
- charset_configured = "";
- natural_language_configured = "";
- generated_natural_language_supported = "";
- charset_supported = null;
- document_format_default = "";
- document_format_supported = null;
- compression_supported = null;
- job_priority_default = -1;
- job_priority_supported = -1;
- copies_default = 1;
- lower_copies_supported = 1;
- upper_copies_supported = 1;
- page_ranges_supported = false;
- number_up_default = 0;
- number_up_supported = null;
- orientation_requested_default = 0;
- orientation_requested_supported = null;
- job_quota_period = 0;
- job_k_limit = 0;
- job_page_limit = 0;
- job_sheets_default = "none,none";
- job_sheets_supported = null;
- device_uri = "";
- color_supported = false;
- pages_per_minute = 0;
- printer_make_and_model = "";
- media_default = "";
- media_supported = null;
- finishings_default = 0;
- finishings_supported = null;
- printer_type = 0;
- }
-
-
- /**
- * Get the printer's status.
- *
- * @param <code>c</code> Cups object.
- *
- * @return <code>Boolean</code> True on success.
- *
- * @see <code>Cups</code>
- */
- public boolean getStatus(Cups c)
- {
- List attrs;
- IPPAttribute a;
- String p_uri;
-
- try
- {
- attrs = c.cupsGetPrinterStatus(printer_name);
- for (int i=0; i < attrs.size(); i++)
- {
- a = (IPPAttribute)attrs.get(i);
- updateAttribute(a);
- }
- return(true);
- }
- catch (IOException e)
- {
- return(false);
- }
- }
-
-
-
- /**
- * Get the printer's attributes.
- *
- * @param <code>c</code> Cups object.
- *
- * @return <code>Boolean</code> True on success.
- *
- * @see <code>Cups</code>
- */
- public boolean getAttributes(Cups c)
- {
- List attrs;
- IPPAttribute a;
- String p_uri;
-
- try
- {
- attrs = c.cupsGetPrinterAttributes(printer_name);
- for (int i=0; i < attrs.size(); i++)
- {
- a = (IPPAttribute)attrs.get(i);
- updateAttribute(a);
- }
- return(true);
- }
- catch (IOException e)
- {
- return(false);
- }
- }
-
-
-
-
- /**
- * Process an attribute from the cups.doRequest() method and move
- * the values into local members.
- *
- * @param <code>a</code> IPPAttribute.
- *
- * @see <code>IPPAttributes</code>
- * @see <code>IPPValues</code>
- */
- public void updateAttribute( IPPAttribute a )
- {
- IPPValue v;
- int i;
-
- // a.dump_values();
-
- if (a.name.compareTo("printer-name") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_name = v.text;
- }
- else if (a.name.compareTo("printer-location") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_location = v.text;
- }
- else if (a.name.compareTo("printer-info") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_info = v.text;
- }
- else if (a.name.compareTo("printer-more-info") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_more_info = v.text;
- }
- else if (a.name.compareTo("printer-uri-supported") == 0)
- {
- printer_uri_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- printer_uri_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("uri-authentication-supported") == 0)
- {
- uri_authentication_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- uri_authentication_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("uri-security-supported") == 0)
- {
- uri_security_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- uri_security_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("attributes-charset") == 0)
- {
- v = (IPPValue)a.values.get(0);
- attributes_charset = v.text;
- }
- else if (a.name.compareTo("attributes-natural-language") == 0)
- {
- v = (IPPValue)a.values.get(0);
- attributes_natural_language = v.text;
- }
- else if (a.name.compareTo("printer-state") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_state = v.integer_value;
- switch( printer_state )
- {
- case 3: printer_state_text = "idle";
- break;
- case 4: printer_state_text = "processing";
- break;
- case 5: printer_state_text = "stopped";
- break;
- }
- }
- else if (a.name.compareTo("printer-state-reasons") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_state_reasons = v.text;
- }
- else if (a.name.compareTo("printer-is-accepting-jobs") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_is_accepting_jobs = v.boolean_value;
- }
- else if (a.name.compareTo("printer-up-time") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_up_time = v.integer_value;
- }
- else if (a.name.compareTo("printer-current-time") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_current_time = v.unix_time; // *** FIX ***
- }
- else if (a.name.compareTo("queue-job-count") == 0)
- {
- v = (IPPValue)a.values.get(0);
- queued_job_count = v.integer_value;
- }
- else if (a.name.compareTo("pdl-override-supported") == 0)
- {
- pdl_override_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- pdl_override_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("ipp-versions-supported") == 0)
- {
- ipp_versions_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- ipp_versions_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("operations-supported") == 0)
- {
- operations_supported = new int[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- operations_supported[i] = v.integer_value;
- }
- }
- else if (a.name.compareTo("multiple-document-jobs-supported") == 0)
- {
- v = (IPPValue)a.values.get(0);
- multiple_document_jobs_supported = v.boolean_value;
- }
- else if (a.name.compareTo("multiple-operation-time-out") == 0)
- {
- v = (IPPValue)a.values.get(0);
- multiple_operation_time_out = v.integer_value;
- }
- else if (a.name.compareTo("multiple-document-handling-supported") == 0)
- {
- multiple_document_handling_supported = new int[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- multiple_document_handling_supported[i] = v.integer_value;
- }
- }
- else if (a.name.compareTo("charset-configured") == 0)
- {
- v = (IPPValue)a.values.get(0);
- charset_configured = v.text;
- }
- else if (a.name.compareTo("natural-language-configured") == 0)
- {
- v = (IPPValue)a.values.get(0);
- natural_language_configured = v.text;
- }
- else if (a.name.compareTo("generated-natural-language-supported") == 0)
- {
- // *** Should this be a list too?
- v = (IPPValue)a.values.get(0);
- generated_natural_language_supported = v.text;
- }
- else if (a.name.compareTo("charset-supported") == 0)
- {
- charset_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- charset_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("document-format-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- document_format_default = v.text;
- }
- else if (a.name.compareTo("document-format-supported") == 0)
- {
- document_format_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- document_format_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("compression-supported") == 0)
- {
- compression_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- compression_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("job-priority-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- job_priority_default = v.integer_value;
- }
- else if (a.name.compareTo("job-priority-supported") == 0)
- {
- // *** Should be a list? ***
- v = (IPPValue)a.values.get(0);
- job_priority_supported = v.integer_value;
- }
- else if (a.name.compareTo("copies-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- copies_default = v.integer_value;
- }
- else if (a.name.compareTo("copies-supported") == 0)
- {
- v = (IPPValue)a.values.get(0);
- lower_copies_supported = v.lower;
- upper_copies_supported = v.upper;
- }
- else if (a.name.compareTo("page-ranges-supported") == 0)
- {
- v = (IPPValue)a.values.get(0);
- page_ranges_supported = v.boolean_value;
- }
- else if (a.name.compareTo("number-up-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- number_up_default = v.integer_value;
- }
- else if (a.name.compareTo("number-up-supported") == 0)
- {
- number_up_supported = new int[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- number_up_supported[i] = v.integer_value;
- }
- }
- else if (a.name.compareTo("orientation-requested-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- orientation_requested_default = v.integer_value;
- }
- else if (a.name.compareTo("orientation-requested-supported") == 0)
- {
- orientation_requested_supported = new int[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- orientation_requested_supported[i] = v.integer_value;
- }
- }
- else if (a.name.compareTo("job-quota-period") == 0)
- {
- v = (IPPValue)a.values.get(0);
- job_quota_period = v.integer_value;
- }
- else if (a.name.compareTo("job-k-limit") == 0)
- {
- v = (IPPValue)a.values.get(0);
- job_k_limit = v.integer_value;
- }
- else if (a.name.compareTo("job-page-limit") == 0)
- {
- v = (IPPValue)a.values.get(0);
- job_page_limit = v.integer_value;
- }
- else if (a.name.compareTo("job-sheets-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- job_sheets_default = v.text;
- }
- else if (a.name.compareTo("job-sheets-supported") == 0)
- {
- job_sheets_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- job_sheets_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("device-uri") == 0)
- {
- v = (IPPValue)a.values.get(0);
- device_uri = v.text;
- }
- else if (a.name.compareTo("color-supported") == 0)
- {
- v = (IPPValue)a.values.get(0);
- color_supported = v.boolean_value;
- }
- else if (a.name.compareTo("pages-per-minute") == 0)
- {
- v = (IPPValue)a.values.get(0);
- pages_per_minute = v.integer_value;
- }
- else if (a.name.compareTo("printer-make-and-model") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_make_and_model = v.text;
- }
- else if (a.name.compareTo("media-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- media_default = v.text;
- }
- else if (a.name.compareTo("media-supported") == 0)
- {
- media_supported = new String[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- media_supported[i] = v.text;
- }
- }
- else if (a.name.compareTo("finishings-default") == 0)
- {
- v = (IPPValue)a.values.get(0);
- finishings_default = v.integer_value;
- }
- else if (a.name.compareTo("finishings-supported") == 0)
- {
- finishings_supported = new int[a.values.size()];
- for (i=0; i < a.values.size(); i++)
- {
- v = (IPPValue)a.values.get(i);
- finishings_supported[i] = v.integer_value;
- }
- }
- else if (a.name.compareTo("printer-type") == 0)
- {
- v = (IPPValue)a.values.get(0);
- printer_type = v.integer_value;
- }
-
- } // End of updateAttribute()
-
-
- /**
- * Get the printer name.
- *
- * @return <code>String</code> Printer Name.
- */
- public String getPrinterName()
- {
- return(printer_name);
- }
-
- /**
- * Get the printer state text.
- *
- * @return <code>String</code> State text.
- */
- public String getStateText()
- {
- return(printer_state_text);
- }
-
- /**
- * Get the printer state reasons.
- *
- * @return <code>String</code> State reason.
- */
- public String getStateReasons()
- {
- return(printer_state_reasons);
- }
-
- /**
- * Get the printer location.
- *
- * @return <code>String</code> State location.
- */
- public String getLocation()
- {
- return(printer_location);
- }
-
- /**
- * Get the printer make and model.
- *
- * @return <code>String</code> Make and model.
- */
- public String getMakeAndModel()
- {
- return(printer_make_and_model);
- }
-
-
-
- /**
- * Get the default job sheets.
- *
- * @return <code>String</code> Default job sheets.
- */
- public String getJobSheetsDefault()
- {
- return(job_sheets_default);
- }
-
- /**
- * Get the printer job sheets supported.
- *
- * @return <code>String[]</code> Array of supported job sheets.
- */
- public String[] getJobSheetsSupported()
- {
- return(job_sheets_supported);
- }
-
-
- /**
- * Get the default orientation.
- *
- * @return <code>int</code> Default page orientation.
- */
- public int getOrientationDefault()
- {
- return(orientation_requested_default);
- }
-
- /**
- * Get the printer orientation supported.
- *
- * @return <code>int[]</code> Array of supported orientations.
- */
- public int[] getOrientationSupported()
- {
- return(orientation_requested_supported);
- }
-
-
- /**
- * Get the printer lower copies supported.
- *
- * @return <code>int</code> Lower of the range.
- */
- public int getLowerCopiesSupported()
- {
- return(lower_copies_supported);
- }
-
-
- /**
- * Get the printer upper copies supported.
- *
- * @return <code>int</code> Upper of the range.
- */
- public int getUpperCopiesSupported()
- {
- return(upper_copies_supported);
- }
-
-
- /**
- * Get the printer number of copies default.
- *
- * @return <code>int</code> Default number of copies.
- */
- public int getCopiesDefault()
- {
- return(copies_default);
- }
-
-
- /**
- * Get whether the printer supports page ranges.
- *
- * @return <code>boolean</code> True or false.
- */
- public boolean getPageRangesSupported()
- {
- return(page_ranges_supported);
- }
-
-
-
- /**
- * Debug method.
- */
- void dump()
- {
- int i;
-
- System.out.println("Printer Name: " + printer_name );
- System.out.println("Location: " + printer_location );
- System.out.println("Printer Info: " + printer_info );
- System.out.println("More Info: " + printer_more_info );
-
- if (printer_uri_supported != null)
- {
- System.out.println("Printer URI's Supported: ");
- for (i=0; i < printer_uri_supported.length; i++)
- {
- System.out.println(" " + printer_uri_supported[i] );
- }
- }
-
- if (uri_authentication_supported != null)
- {
- System.out.println("URI Authentication Supported: ");
- for (i=0; i < uri_authentication_supported.length; i++)
- {
- System.out.println(" " + uri_authentication_supported[i] );
- }
- }
-
- if (uri_security_supported != null)
- {
- System.out.println("URI Security Supported: ");
- for (i=0; i < uri_security_supported.length; i++)
- {
- System.out.println(" " + uri_security_supported[i] );
- }
- }
-
- System.out.println("Attributes Charset: " + attributes_charset );
- System.out.println("Attributes Natural Language: " + attributes_natural_language );
-
- System.out.println("Printer State: " + printer_state );
- System.out.println("Printer State Text: " + printer_state_text );
- System.out.println("Printer State Reasons: " + printer_state_reasons );
-
- if (printer_is_accepting_jobs)
- System.out.println("Accepting Jobs: Yes");
- else
- System.out.println("Accepting Jobs: No");
-
-
-}
-
-
-
-} // End of CupsPrinter class
-
-
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 0.00 06-NOV-2001
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-import java.util.*;
-
-/**
- * An <code>IPP</code> object is used to hold the various
- * attributes and status of an ipp request..
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-public class IPP
-{
- public IPPRequest request; // The request header
- public IPPStatus status; // Status of request
- public List attrs; // Attributes list.
-
- short state; // Current IPP state (of request???)
- int current; // Index into attributes array.
- int last; // Index into attributes array.
- short current_tag;
-
-
- // ------------------------------------------------------------------
- //
- // Constructor
- //
- public IPP()
- {
- state = IPPDefs.IDLE;
- attrs = new LinkedList();
- current = -1;
- last = -1;
- current_tag = IPPDefs.TAG_ZERO;
- }
-
-
-
- /**
- * Add an attribute to the attibutes list
- * for later parsing.
- *
- * @param a <code>IPPAttribute</code> to add.
- * @return <code>true</code> always returns <code>true</code>
- * for now.
- *
- * @see IPPAttribute
- * @see IPPValue
- */
- public boolean addAttribute( IPPAttribute a )
- {
- attrs.add(a);
- return(true);
- }
-
- /**
- * Get the current attribute pointed at by
- * <code>current</code>.
- *
- * @return <code>IPPAttribute</code> Return the current attribute.
- * @return <code>null</code> Return <code>null</code>
- * if <code>current</code> is 0.
- */
- public IPPAttribute getCurrentAttribute()
- {
- if (current >= 0)
- return( (IPPAttribute)attrs.get(current) );
- else
- return( null );
- }
-
- // public void setCurrentAttribute( IPPAttribute p_attr )
- // {
- // if (current >= 0)
- // return( (IPPAttribute)attrs.get(current) );
- // }
-
-
- /**
- *
- * Find the named attribute of the correct type. Both must match.
- * This methos searches from the beginning of the attribute list,
- * rather than from the current position.
- *
- * @param p_name <code>String</code> containing the name.
- * @param p_type <code>int</code> attribute type.
- *
- * @return <code>IPPAttribute</code> Matching attribute if found.
- * @return <code>null</code> <code>null</code> if not found.
- */
- public IPPAttribute ippFindAttribute( String p_name, int p_type )
- {
- if (p_name.length() < 1)
- return(null);
- current = -1;
- return(ippFindNextAttribute(p_name, p_type));
- }
-
-
-
-
- /**
- *
- * Find the named attribute of the correct type. Both must match.
- * This methos searches from the current position in the attribute list.
- *
- * @param p_name <code>String</code> containing the name.
- * @param p_type <code>int</code> attribute type.
- *
- * @return <code>IPPAttribute</code> Matching attribute if found.
- * @return <code>null</code> <code>null</code> if not found.
- */
- public IPPAttribute ippFindNextAttribute( String p_name, int p_type )
- {
- int value_tag;
-
- if (p_name.length() < 1)
- return(null);
-
- if ((current >= 0) && (current < (attrs.size() - 1)))
- current++;
- else
- current = 0;
-
- for (int i = current; i < attrs.size(); i++)
- {
- IPPAttribute tmp = (IPPAttribute)attrs.get(i);
- value_tag = (tmp.value_tag & IPPDefs.TAG_MASK);
- if ((tmp.name.length() > 0) && (tmp.name == p_name) &&
- (value_tag == p_type || p_type == IPPDefs.TAG_ZERO ||
- (value_tag == IPPDefs.TAG_TEXTLANG && p_type == IPPDefs.TAG_TEXT) ||
- (value_tag == IPPDefs.TAG_NAMELANG && p_type == IPPDefs.TAG_NAME)))
- {
- current = i;
- return(tmp);
- }
- }
- return(null);
- }
-
-
- /**
- * Get the size in bytes of an <code>IPP</code> request.
- *
- * @return <code>int</code> Number of bytes for the request.
- */
- public int sizeInBytes()
- {
- IPPAttribute a;
- int bytes = 8;
- int last_group = IPPDefs.TAG_ZERO;
-
- for (int i=0; i < attrs.size(); i++)
- {
- a = (IPPAttribute)attrs.get(i);
- bytes += a.sizeInBytes(last_group);
- last_group = a.group_tag;
- }
- bytes++; // one for the end tag.
-
- return(bytes);
-
- } // End of IPP.sizeInBytes()
-
-
-
-
-
- int ippBytes()
- {
- int i = 0;
- return(0);
- }
-
-
-
- /**
- * Set the <code>IPP</code> request ID.
- *
- * @param p_id <code>short</code> request id.
- */
- public void setRequestID( short p_id )
- {
- request.request_id = p_id;
- }
-
- /**
- * Set the <code>IPP</code> operation ID.
- *
- * @param p_operation_id <code>short</code> operation id.
- */
- public void setRequestOperationID( short p_operation_id )
- {
- request.operation_id = p_operation_id;
- }
-
-
- //
- // Dump a list - for debugging.
- //
- public void dump_response()
- {
- IPPAttribute a;
- int last_group = IPPDefs.TAG_ZERO;
-
- for (int i=0; i < attrs.size(); i++)
- {
- a = (IPPAttribute)attrs.get(i);
- a.dump_values();
- last_group = a.group_tag;
- }
- return;
-
- } // End of IPP.dump_response()
-
-
-} // End of IPP class
-
-
-
-
-//
-// End of IPP.java
-//
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007-2008 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-/**
- * An <code>IPPAttribute</code> object hold attributes for communicating
- * messages to / from the CUPS server.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-import java.util.*;
-
-public class IPPAttribute
-{
- int group_tag;
- int value_tag;
- String name;
- List values;
-
-
-
- public IPPAttribute( int p_group_tag, int p_value_tag,
- String p_name )
- {
- group_tag = p_group_tag;
- value_tag = p_value_tag;
- name = p_name;
- values = new ArrayList();
-
- } // End of IPPAttribute constructor.
-
-
- //
- // Add a boolean value to the objects values list.
- //
- public boolean addBoolean( boolean p_bool )
- {
- IPPValue val = new IPPValue( p_bool );
- values.add(val);
- return(true);
- }
-
-
- //
- // Add a set of boolean values to the objects values list.
- //
- public boolean addBooleans( boolean p_bools[] )
- {
- if (p_bools.length < 1)
- return(false);
-
- for (int i=0; i < p_bools.length; i++ )
- {
- IPPValue val = new IPPValue( p_bools[i] );
- values.add(val);
- }
- return(true);
- }
-
-
- //
- // Add an enum value to the objects values list.
- //
- public boolean addEnum( int p_int )
- {
- IPPValue val = new IPPValue( p_int, true );
- values.add(val);
- return(true);
- }
-
-
- //
- // Add an integer value to the objects values list.
- //
- public boolean addInteger( int p_int )
- {
- IPPValue val = new IPPValue( p_int );
- values.add(val);
- return(true);
- }
-
-
- //
- // Add a set of integer values to the objects values list.
- //
- public boolean addIntegers( int p_ints[] )
- {
- if (p_ints.length < 1)
- return(false);
-
- for (int i=0; i < p_ints.length; i++ )
- {
- IPPValue val = new IPPValue( p_ints[i] );
- values.add(val);
- }
- return(true);
- }
-
-
- //
- // Add a string value to the objects values list.
- //
- public boolean addString( String p_charset, String p_text )
- {
- String l_value;
- String final_value;
-
- //
- // Force the value to English for POSIX locale.
- //
- if ((value_tag == IPPDefs.TAG_LANGUAGE) && (p_text == "C"))
- {
- l_value = "en";
- }
- else
- {
- l_value = p_text;
- }
-
-
- //
- // Convert language values to lowercase and _ to - as needed.
- //
- if ((value_tag == IPPDefs.TAG_LANGUAGE) ||
- (value_tag == IPPDefs.TAG_CHARSET))
- {
- StringBuffer temp = new StringBuffer(l_value.length());
- char c;
- for (int i = 0; i < l_value.length(); i++)
- {
- c = l_value.charAt(i);
- if (c == '_')
- c = '-';
- else if (Character.isUpperCase(c))
- c = Character.toLowerCase(c);
- temp.append(c);
- }
- final_value = temp.toString();
- }
- else
- {
- final_value = l_value;
- }
- IPPValue val = new IPPValue( p_charset, final_value );
- values.add(val);
- return(true);
- }
-
-
- //
- // Add a set of strings to the objects values list.
- //
- public boolean addStrings( String p_charset, String p_texts[] )
- {
- if (p_texts.length < 1)
- return(false);
-
- //
- // Just call the singular string method to save on coding.
- //
- for (int i=0; i < p_texts.length; i++ )
- {
- addString( p_charset, p_texts[i] );
- }
- return(true);
- }
-
- //
- // Add an ipp date value to the objects values list.
- //
- public boolean addDate( char p_date[] )
- {
- IPPValue val = new IPPValue( p_date );
- values.add(val);
- return(true);
- }
-
- //
- // Add a range value to the objects values list.
- //
- public boolean addRange( int p_lower, int p_upper )
- {
- IPPValue val = new IPPValue( p_lower, p_upper );
- values.add(val);
- return(true);
- }
-
-
- //
- // Add a set of range values to the objects values list.
- //
- public boolean addRanges( int p_lower[], int p_upper[] )
- {
- //
- // Avoid index out of bounds errors.
- //
- if (p_lower.length != p_upper.length)
- return(false);
-
- for (int i=0; i < p_lower.length; i++ )
- addRange( p_lower[i], p_upper[i] );
- return(true);
- }
-
-
- //
- // Add a resolution value to the objects values list.
- //
- public boolean addResolution( byte p_units, int p_xres, int p_yres )
- {
- IPPValue val = new IPPValue( p_units, p_xres, p_yres );
- values.add(val);
- return(true);
- }
-
-
- //
- // Add a set of resolution values to the objects values list.
- //
- public boolean addResolutions( byte p_units, int p_xres[], int p_yres[] )
- {
- if (p_xres.length != p_yres.length)
- return(false);
-
- for (int i=0; i < p_xres.length; i++)
- addResolution( p_units, p_xres[i], p_yres[i] );
- return(true);
- }
-
-
- //
- // Set the attribute as a separator.
- //
- public boolean addSeparator()
- {
- value_tag = IPPDefs.TAG_ZERO;
- group_tag = IPPDefs.TAG_ZERO;
- return(true);
- }
-
-
-
- //
- // Calculate the size in bytes for an IPP requests attributes.
- //
- public int sizeInBytes(int last_group)
- {
- IPPValue val;
- int bytes = 0; // Start with one for the group tag.
- Charset utf8 = Charset::forName("UTF-8");
- ByteBuffer temp;
-
- //
- // Add 1 if first time, or group tag changes.
- //
- if (last_group != group_tag)
- bytes ++;
-
- bytes ++; // Add 1 for the value tag.
- bytes += 2; // Add 2 for the name length field.
- bytes += name.length(); // Add the length of the name.
-
- for (int i=0; i < values.size(); i++ )
- {
- val = (IPPValue)values.get(i);
-
- if (i > 0)
- {
- // If an array of values, add 1 for another value tag, plus
- // 2 for zero length name.
- //
- bytes += 3;
- }
-
- switch (value_tag)
- {
- case IPPDefs.TAG_INTEGER :
- case IPPDefs.TAG_ENUM :
- bytes += 2;
- bytes += 4;
- break;
-
- case IPPDefs.TAG_BOOLEAN :
- bytes += 2;
- bytes ++;
- break;
-
- case IPPDefs.TAG_TEXT:
- case IPPDefs.TAG_NAME:
- case IPPDefs.TAG_KEYWORD:
- case IPPDefs.TAG_STRING:
- case IPPDefs.TAG_URI:
- case IPPDefs.TAG_URISCHEME:
- case IPPDefs.TAG_CHARSET:
- case IPPDefs.TAG_LANGUAGE:
- case IPPDefs.TAG_MIMETYPE:
- temp = utf8.encode(val.text);
- bytes += 2;
- if (temp.capacity() > 32767)
- bytes += 32767;
- else
- bytes += temp.capacity();
- break;
-
- case IPPDefs.TAG_DATE :
- bytes += 2;
- bytes += 11;
- break;
-
- case IPPDefs.TAG_RESOLUTION :
- bytes += 2;
- bytes += 9;
- break;
-
- case IPPDefs.TAG_RANGE :
- bytes += 2;
- bytes += 8;
- break;
-
- case IPPDefs.TAG_TEXTLANG :
- case IPPDefs.TAG_NAMELANG :
- temp = utf8.encode(val.text);
- bytes += 6; // 2 overall len, 2 charset len, 2 text len
- bytes += val.charset.length();
- if (temp.capacity() > 32767)
- bytes += 32767;
- else
- bytes += temp.capacity();
- break;
-
- default :
- bytes += 2;
- if (val.data != null)
- bytes += val.data.length;
- break;
- }
- }
-
- // bytes++; // 1 byte for end of values tag.
-
- return(bytes);
-
- } // End of IPPAttribute.sizeInBytes()
-
-
- //
- // Get the characters of an attribute
- //
- public byte[] getBytes( int sz, int last_group )
- {
- IPPValue val;
-
- int i,j, n;
- int bi = 0; // Start with one for the group tag.
- byte[] bytes = new byte[sz];
- Charset utf8 = Charset::forName("UTF-8");
- ByteBuffer temp;
-
- if (group_tag != last_group)
- {
- bytes[bi++] = (byte)group_tag;
- last_group = group_tag;
- }
- bytes[bi++] = (byte)value_tag;
-
- bytes[bi++] = (byte)((name.length() & 0xff00) >> 8);
- bytes[bi++] = (byte)(name.length() & 0xff);
- for (j=0; j < name.length(); j++)
- bytes[bi++] = (byte)name.charAt(j);
-
- for (i=0; i < values.size(); i++ )
- {
- if (i > 0)
- {
- bytes[bi++] = (byte)value_tag;
- bytes[bi++] = (byte)0;
- bytes[bi++] = (byte)0;
- }
-
- val = (IPPValue)values.get(i);
- switch (value_tag)
- {
- case IPPDefs.TAG_INTEGER :
- case IPPDefs.TAG_ENUM :
- bytes[bi++] = (byte)0;
- bytes[bi++] = (byte)4;
- bytes[bi++] = (byte)((val.integer_value & 0xff000000) >> 24);
- bytes[bi++] = (byte)((val.integer_value & 0xff0000) >> 16);
- bytes[bi++] = (byte)((val.integer_value & 0xff00) >> 8);
- bytes[bi++] = (byte)(val.integer_value & 0xff);
- break;
-
- case IPPDefs.TAG_BOOLEAN :
- bytes[bi++] = (byte)0;
- bytes[bi++] = (byte)1;
- if (val.boolean_value)
- bytes[bi++] = (byte)1;
- else
- bytes[bi++] = (byte)0;
- break;
-
- case IPPDefs.TAG_TEXT :
- case IPPDefs.TAG_NAME :
- case IPPDefs.TAG_KEYWORD :
- case IPPDefs.TAG_STRING :
- case IPPDefs.TAG_URI :
- case IPPDefs.TAG_URISCHEME :
- case IPPDefs.TAG_CHARSET :
- case IPPDefs.TAG_LANGUAGE :
- case IPPDefs.TAG_MIMETYPE :
- temp = utf8.encode(val.text);
- n = temp.capacity();
-
- if (n > 32767)
- n = 32767;
-
- bytes[bi++] = (byte)((n & 0x7f00) >> 8);
- bytes[bi++] = (byte)(n & 0xff);
- temp.get(bytes, bi, n);
- bi += n;
- break;
-
- case IPPDefs.TAG_DATE:
- bytes[bi++] = (byte)0;
- bytes[bi++] = (byte)11;
- for (j=0; j < 11; j++)
- bytes[bi++] = (byte)val.date_value[j];
- break;
-
- case IPPDefs.TAG_RESOLUTION :
- bytes[bi++] = (byte)0;
- bytes[bi++] = (byte)9;
- bytes[bi++] = (byte)((val.xres & 0xff000000) >> 24);
- bytes[bi++] = (byte)((val.xres & 0xff0000) >> 16);
- bytes[bi++] = (byte)((val.xres & 0xff00) >> 8);
- bytes[bi++] = (byte)(val.xres & 0xff);
- bytes[bi++] = (byte)((val.yres & 0xff000000) >> 24);
- bytes[bi++] = (byte)((val.yres & 0xff0000) >> 16);
- bytes[bi++] = (byte)((val.yres & 0xff00) >> 8);
- bytes[bi++] = (byte)(val.yres & 0xff);
- bytes[bi++] = (byte)val.units;
- break;
-
- case IPPDefs.TAG_RANGE :
- bytes[bi++] = (byte)0;
- bytes[bi++] = (byte)8;
- bytes[bi++] = (byte)((val.lower & 0xff000000) >> 24);
- bytes[bi++] = (byte)((val.lower & 0xff0000) >> 16);
- bytes[bi++] = (byte)((val.lower & 0xff00) >> 8);
- bytes[bi++] = (byte)(val.lower & 0xff);
- bytes[bi++] = (byte)((val.upper & 0xff000000) >> 24);
- bytes[bi++] = (byte)((val.upper & 0xff0000) >> 16);
- bytes[bi++] = (byte)((val.upper & 0xff00) >> 8);
- bytes[bi++] = (byte)(val.upper & 0xff);
- break;
-
- case IPPDefs.TAG_TEXTLANG :
- case IPPDefs.TAG_NAMELANG :
- temp = utf8.encode(val.text);
- n = temp.capacity() + val.charset.length() + 4;
-
- if (n > 32767)
- n = 32767;
-
- bytes[bi++] = (byte)((n & 0x7f00) >> 8);
- bytes[bi++] = (byte)(n & 0xff);
-
- n = val.charset.length();
- bytes[bi++] = (byte)((n & 0x7f00) >> 8);
- bytes[bi++] = (byte)(n & 0xff);
- for (j=0; j < val.charset.length(); j++)
- bytes[bi++] = (byte)val.charset.charAt(j);
-
- n = temp.capacity();
-
- if (n > 32767)
- n = 32767;
-
- bytes[bi++] = (byte)((n & 0x7f00) >> 8);
- bytes[bi++] = (byte)(n & 0xff);
- temp.get(bytes, bi, n);
- bi += n;
- break;
-
- default :
- if (val.data != null)
- {
- n = val.data.length;
- bytes[bi++] = (byte)((n & 0xff00) >> 8);
- bytes[bi++] = (byte)(n & 0xff);
- for (j=0; j < val.data.length; j++)
- bytes[bi++] = (byte)val.data[j];
- }
- break;
- }
- }
-
- return(bytes);
-
- } // End of IPPAttribute.getBytes()
-
-
-
-
- //
- //
- //
- public void dump_values()
- {
- IPPValue val;
-
- if ((values == null) || (values.size() < 1))
- {
- System.out.println( " ---- Separator ---- \n");
- return;
- }
-
- for (int i=0; i < values.size(); i++ )
- {
- val = (IPPValue)values.get(i);
-
- System.out.println("ATTR GTAG: " + group_tag );
- System.out.println("ATTR VTAG: " + value_tag );
- System.out.println("ATTR NAME: " + name );
-
- // switch (value_tag & ~IPPDefs.TAG_COPY)
- switch (value_tag)
- {
- case IPPDefs.TAG_INTEGER :
- case IPPDefs.TAG_ENUM :
- System.out.println( " INTEGER: " + val.integer_value );
- break;
-
- case IPPDefs.TAG_BOOLEAN :
- System.out.println( " BOOLEAN: " + val.boolean_value );
- break;
-
- case IPPDefs.TAG_TEXT :
- case IPPDefs.TAG_NAME :
- case IPPDefs.TAG_KEYWORD :
- case IPPDefs.TAG_STRING :
- case IPPDefs.TAG_URI :
- case IPPDefs.TAG_URISCHEME :
- case IPPDefs.TAG_CHARSET :
- case IPPDefs.TAG_LANGUAGE :
- case IPPDefs.TAG_MIMETYPE :
- System.out.println( " CHARSET: " + val.charset +
- " TEXT: " + val.text );
- break;
-
- case IPPDefs.TAG_DATE :
- System.out.println( " DATE: " + val.unix_time );
- break;
-
- case IPPDefs.TAG_RESOLUTION :
- System.out.println( " UNITS: " + val.units +
- " XRES: " + val.xres +
- " YRES: " + val.yres );
- break;
-
- case IPPDefs.TAG_RANGE :
- System.out.println( " LOWER: " + val.lower +
- " UPPER: " + val.upper );
- break;
-
- case IPPDefs.TAG_TEXTLANG :
- case IPPDefs.TAG_NAMELANG :
- System.out.println( " CHARSET: " + val.charset +
- " TEXT: " + val.text );
- break;
-
- case IPPDefs.TAG_ZERO:
- System.out.println( " ---- Separator ---- \n");
- break;
-
- default :
- break;
- }
- }
- return;
-
- }
-
-
-
-
-} // End of IPPAttribute class
-
-
-
-
+++ /dev/null
-package com.easysw.cups;
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-/**
- * An <code>IPPCalendar</code> object is used for date/time conversion.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-
-import java.util.*;
-
-class IPPCalendar extends GregorianCalendar
-{
- /**
- * Get the time in milliseconds from the <code>GregorianCalendar</code>
- * class.
- *
- * @return <code>long</code> Time in milliseconds of a date.
- */
- public long getTimeInMillis()
- {
- return(super.getTimeInMillis());
- }
-
- /**
- * Get the unix time in seconds from the <code>GregorianCalendar</code>
- * class.
- *
- * @return <code>int</code> Unix Time in seconds of a date.
- */
- public int getUnixTime()
- {
- return( (int)(getTimeInMillis() / 1000) );
- }
-
-} // end of class
+++ /dev/null
-
-package com.easysw.cups;
-
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-import java.io.*;
-import java.util.*;
-
-/**
- * <code>IPPDefs</code> is a collection of constants for use
- * in the <code>IPP</code> and <code>CUPS</code> classes.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-public class IPPDefs
-{
-
- /*
- * IPP version string...
- */
- public static final byte VERSION[] = { 1, 0 };
-
-
- /*
- * IPP registered port number... This is the default value - applications
- * should use the ippPort() function so that you can customize things in
- * /etc/services if needed!
- */
- public static final int PORT = 631;
-
-
- /*
- * Common limits...
- */
- public static final int MAX_NAME = 256;
- public static final int MAX_VALUES = 10; /* Now just an allocation
- increment */
-
-
- /*
- * Format tags for attribute formats...
- */
- public static final int TAG_ZERO = 0x00;
- public static final int TAG_OPERATION = 0x01;
- public static final int TAG_JOB = 0x02;
- public static final int TAG_END = 0x03;
- public static final int TAG_PRINTER = 0x04;
- public static final int TAG_UNSUPPORTED_GROUP = 0x05;
- public static final int TAG_SUBSCRIPTION = 0x06;
- public static final int TAG_EVENT_NOTIFICATION = 0x07;
- public static final int TAG_UNSUPPORTED_VALUE = 0x10;
- public static final int TAG_DEFAULT = 0x11;
- public static final int TAG_UNKNOWN = 0x12;
- public static final int TAG_NOVALUE = 0x13;
- public static final int TAG_NOTSETTABLE = 0x15;
- public static final int TAG_DELETEATTR = 0x16;
- public static final int TAG_ADMINDEFINE = 0x17;
- public static final int TAG_INTEGER = 0x21;
- public static final int TAG_BOOLEAN = 0x22;
- public static final int TAG_ENUM = 0x23;
- public static final int TAG_STRING = 0x30;
- public static final int TAG_DATE = 0x31;
- public static final int TAG_RESOLUTION = 0x32;
- public static final int TAG_RANGE = 0x33;
- public static final int TAG_BEGIN_COLLECTION = 0x34;
- public static final int TAG_TEXTLANG = 0x35;
- public static final int TAG_NAMELANG = 0x36;
- public static final int TAG_END_COLLECTION = 0x37;
- public static final int TAG_TEXT = 0x41;
- public static final int TAG_NAME = 0x42;
- public static final int TAG_KEYWORD = 0x44;
- public static final int TAG_URI = 0x45;
- public static final int TAG_URISCHEME = 0x46;
- public static final int TAG_CHARSET = 0x47;
- public static final int TAG_LANGUAGE = 0x48;
- public static final int TAG_MIMETYPE = 0x49;
- public static final int TAG_MEMBERNAME = 0x4A;
- public static final int TAG_MASK = 0x7FFFFFFF;
- public static final int TAG_COPY = 0x80000001;
-
-
- /*
- * Resolution units...
- */
- public static final int RES_PER_INCH = 0x03;
- public static final int RES_PER_CM = 0x04;
-
-
- /*
- * Finishings...
- */
- public static final int FINISHINGS_NONE = 0x03;
- public static final int FINISHINGS_STAPLE = 0x04;
- public static final int FINISHINGS_PUNCH = 0x05;
- public static final int FINISHINGS_COVER = 0x06;
- public static final int FINISHINGS_BIND = 0x07;
- public static final int FINISHINGS_SADDLE_STITCH = 0x08;
- public static final int FINISHINGS_EDGE_STITCH = 0x09;
- public static final int FINISHINGS_FOLD = 0x0A;
- public static final int FINISHINGS_TRIM = 0x0B;
- public static final int FINISHINGS_BALE = 0x0C;
- public static final int FINISHINGS_BOOKLET_MAKER = 0x0D;
- public static final int FINISHINGS_JOB_OFFSET = 0x0E;
- public static final int FINISHINGS_STAPLE_TOP_LEFT = 0x14;
- public static final int FINISHINGS_STAPLE_BOTTOM_LEFT = 0x15;
- public static final int FINISHINGS_STAPLE_TOP_RIGHT = 0x16;
- public static final int FINISHINGS_STAPLE_BOTTOM_RIGHT = 0x17;
- public static final int FINISHINGS_EDGE_STITCH_LEFT = 0x18;
- public static final int FINISHINGS_EDGE_STITCH_TOP = 0x19;
- public static final int FINISHINGS_EDGE_STITCH_RIGHT = 0x1A;
- public static final int FINISHINGS_EDGE_STITCH_BOTTOM = 0x1B;
- public static final int FINISHINGS_STAPLE_DUAL_LEFT = 0x1C;
- public static final int FINISHINGS_STAPLE_DUAL_TOP = 0x1D;
- public static final int FINISHINGS_STAPLE_DUAL_RIGHT = 0x1E;
- public static final int FINISHINGS_STAPLE_DUAL_BOTTOM = 0x1F;
- public static final int FINISHINGS_BIND_LEFT = 0x32;
- public static final int FINISHINGS_BIND_TOP = 0x33;
- public static final int FINISHINGS_BIND_RIGHT = 0x34;
- public static final int FINISHINGS_BIND_BOTTOM = 0x35;
-
-
- /*
- * Orientation...
- */
- public static final int PORTRAIT = 0x03;
- public static final int LANDSCAPE = 0x04;
- public static final int REVERSE_LANDSCAPE = 0x05;
- public static final int REVERSE_PORTRAIT = 0x06;
-
-
- /*
- * Qualities...
- */
- public static final int QUALITY_DRAFT = 0x03;
- public static final int QUALITY_NORMAL = 0x04;
- public static final int QUALITY_HIGH = 0x05;
-
-
- /*
- * Job States....
- */
- public static final int JOB_PENDING = 0x03;
- public static final int JOB_HELD = 0x04;
- public static final int JOB_PROCESSING = 0x05;
- public static final int JOB_STOPPED = 0x06;
- public static final int JOB_CANCELLED = 0x07;
- public static final int JOB_ABORTED = 0x08;
- public static final int JOB_COMPLETED = 0x09;
-
-
- /*
- * Printer States....
- */
- public static final int PRINTER_IDLE = 0x03;
- public static final int PRINTER_PROCESSING = 0x04;
- public static final int PRINTER_STOPPED = 0x05;
-
-
- /*
- * IPP states...
- */
- public static final int ERROR = 0xFFFFFFFF;
- public static final int IDLE = 0x00;
- public static final int HEADER = 0x01;
- public static final int ATTRIBUTE = 0x02;
- public static final int DATA = 0x03;
-
-
- /*
- * IPP operations...
- */
- public static final int PRINT_JOB = 0x02;
- public static final int PRINT_URI = 0x03;
- public static final int VALIDATE_JOB = 0x04;
- public static final int CREATE_JOB = 0x05;
- public static final int SEND_DOCUMENT = 0x06;
- public static final int SEND_URI = 0x07;
- public static final int CANCEL_JOB = 0x08;
- public static final int GET_JOB_ATTRIBUTES = 0x09;
- public static final int GET_JOBS = 0x0A;
- public static final int GET_PRINTER_ATTRIBUTES = 0x0B;
- public static final int HOLD_JOB = 0x0C;
- public static final int RELEASE_JOB = 0x0D;
- public static final int RESTART_JOB = 0x0E;
- public static final int PAUSE_PRINTER = 0x10;
- public static final int RESUME_PRINTER = 0x11;
- public static final int PURGE_JOBS = 0x12;
- public static final int SET_PRINTER_ATTRIBUTES = 0x13;
- public static final int SET_JOB_ATTRIBUTES = 0x14;
- public static final int GET_PRINTER_SUPPORTED_VALUES = 0x15;
- public static final int CREATE_PRINTER_SUBSCRIPTION = 0x16;
- public static final int CREATE_JOB_SUBSCRIPTION = 0x17;
- public static final int GET_SUBSCRIPTION_ATTRIBUTES = 0x18;
- public static final int GET_SUBSCRIPTIONS = 0x19;
- public static final int RENEW_SUBSCRIPTION = 0x1A;
- public static final int CANCEL_SUBSCRIPTION = 0x1B;
- public static final int GET_NOTIFICATIONS = 0x1C;
- public static final int SEND_NOTIFICATIONS = 0x1D;
- public static final int GET_PRINT_SUPPORT_FILES = 0x21;
- public static final int ENABLE_PRINTER = 0x22;
- public static final int DISABLE_PRINTER = 0x23;
- public static final int PAUSE_PRINTER_AFTER_CURRENT_JOB = 0x24;
- public static final int HOLD_NEW_JOBS = 0x25;
- public static final int RELEASE_HELD_NEW_JOBS = 0x26;
- public static final int DEACTIVATE_PRINTER = 0x27;
- public static final int ACTIVATE_PRINTER = 0x28;
- public static final int RESTART_PRINTER = 0x29;
- public static final int SHUTDOWN_PRINTER = 0x2A;
- public static final int STARTUP_PRINTER = 0x2B;
- public static final int REPROCESS_JOB = 0x2C;
- public static final int CANCEL_CURRENT_JOB = 0x2D;
- public static final int SUSPEND_CURRENT_JOB = 0x2E;
- public static final int RESUME_JOB = 0x2F;
- public static final int PROMOTE_JOB = 0x30;
- public static final int SCHEDULE_JOB_AFTER = 0x31;
- public static final int PRIVATE = 0x4000;
- public static final int CUPS_GET_DEFAULT = 0x4001;
- public static final int CUPS_GET_PRINTERS = 0x4002;
- public static final int CUPS_ADD_PRINTER = 0x4003;
- public static final int CUPS_DELETE_PRINTER = 0x4004;
- public static final int CUPS_GET_CLASSES = 0x4005;
- public static final int CUPS_ADD_CLASS = 0x4006;
- public static final int CUPS_DELETE_CLASS = 0x4007;
- public static final int CUPS_ACCEPT_JOBS = 0x4008;
- public static final int CUPS_REJECT_JOBS = 0x4009;
- public static final int CUPS_SET_DEFAULT = 0x400A;
- public static final int CUPS_GET_DEVICES = 0x400B;
- public static final int CUPS_GET_PPDS = 0x400C;
- public static final int CUPS_MOVE_JOB = 0x400D;
- public static final int CUPS_ADD_DEVICE = 0x400E;
- public static final int CUPS_DELETE_DEVICE = 0x400F;
-
-
-
- /*
- * IPP status codes...
- */
- public static final int OK = 0x00;
- public static final int OK_SUBST = 0x01;
- public static final int OK_CONFLICT = 0x02;
- public static final int OK_IGNORED_SUBSCRIPTIONS = 0x03;
- public static final int OK_IGNORED_NOTIFICATIONS = 0x04;
- public static final int OK_TOO_MANY_EVENTS = 0x05;
- public static final int OK_BUT_CANCEL_SUBSCRIPTION = 0x06;
- public static final int REDIRECTION_OTHER_SITE = 0x300;
- public static final int BAD_REQUEST = 0x400;
- public static final int FORBIDDEN = 0x401;
- public static final int NOT_AUTHENTICATED = 0x402;
- public static final int NOT_AUTHORIZED = 0x403;
- public static final int NOT_POSSIBLE = 0x404;
- public static final int TIMEOUT = 0x405;
- public static final int NOT_FOUND = 0x406;
- public static final int GONE = 0x407;
- public static final int REQUEST_ENTITY = 0x408;
- public static final int REQUEST_VALUE = 0x409;
- public static final int DOCUMENT_FORMAT = 0x40A;
- public static final int ATTRIBUTES = 0x40B;
- public static final int URI_SCHEME = 0x40C;
- public static final int CHARSET = 0x40D;
- public static final int CONFLICT = 0x40E;
- public static final int COMPRESSION_NOT_SUPPORTED = 0x40F;
- public static final int COMPRESSION_ERROR = 0x410;
- public static final int DOCUMENT_FORMAT_ERROR = 0x411;
- public static final int DOCUMENT_ACCESS_ERROR = 0x412;
- public static final int ATTRIBUTES_NOT_SETTABLE = 0x413;
- public static final int IGNORED_ALL_SUBSCRIPTIONS = 0x414;
- public static final int TOO_MANY_SUBSCRIPTIONS = 0x415;
- public static final int IGNORED_ALL_NOTIFICATIONS = 0x416;
- public static final int PRINT_SUPPORT_FILE_NOT_FOUND = 0x417;
- public static final int INTERNAL_ERROR = 0x500;
- public static final int OPERATION_NOT_SUPPORTED = 0x501;
- public static final int SERVICE_UNAVAILABLE = 0x502;
- public static final int VERSION_NOT_SUPPORTED = 0x503;
- public static final int DEVICE_ERROR = 0x504;
- public static final int TEMPORARY_ERROR = 0x505;
- public static final int NOT_ACCEPTING = 0x506;
- public static final int PRINTER_BUSY = 0x507;
- public static final int ERROR_JOB_CANCELLED = 0x508;
- public static final int MULTIPLE_JOBS_NOT_SUPPORTED = 0x509;
- public static final int PRINTER_IS_DEACTIVATED = 0x50A;
-
-}
-
-
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-/**
- * An <code>IPPError</code> object is used for error conversion.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-
-import java.util.*;
-import java.io.*;
-
-
-public class IPPError
-{
- private int error_number;
- private String error_string;
-
-
- /**
- * Constructor that sets <code>error_string</code> after creation.
- *
- * @param <code>error_number</code> Error number to convert.
- * @see <code>IPPDefs</code>
- */
- public IPPError(int p_error)
- {
- error_number = p_error;
- error_string = ippErrorString( error_number );
- }
-
-
- /**
- * Get the string associated with an error number.
- *
- * @param <code>error</code> Error number to convert.
- * @see <code>IPPDefs</code>
- */
- private String ippErrorString( int error )
- {
- String unknown;
- String status_oks[] = // "OK" status codes
- {
- "successful-ok",
- "successful-ok-ignored-or-substituted-attributes",
- "successful-ok-conflicting-attributes",
- "successful-ok-ignored-subscriptions",
- "successful-ok-ignored-notifications",
- "successful-ok-too-many-events",
- "successful-ok-but-cancel-subscription"
- };
-
- String status_400s[] = // Client errors
- {
- "client-error-bad-request",
- "client-error-forbidden",
- "client-error-not-authenticated",
- "client-error-not-authorized",
- "client-error-not-possible",
- "client-error-timeout",
- "client-error-not-found",
- "client-error-gone",
- "client-error-request-entity-too-large",
- "client-error-request-value-too-long",
- "client-error-document-format-not-supported",
- "client-error-attributes-or-values-not-supported",
- "client-error-uri-scheme-not-supported",
- "client-error-charset-not-supported",
- "client-error-conflicting-attributes",
- "client-error-compression-not-supported",
- "client-error-compression-error",
- "client-error-document-format-error",
- "client-error-document-access-error",
- "client-error-attributes-not-settable",
- "client-error-ignored-all-subscriptions",
- "client-error-too-many-subscriptions",
- "client-error-ignored-all-notifications",
- "client-error-print-support-file-not-found"
- };
-
- String status_500s[] = // Server errors
- {
- "server-error-internal-error",
- "server-error-operation-not-supported",
- "server-error-service-unavailable",
- "server-error-version-not-supported",
- "server-error-device-error",
- "server-error-temporary-error",
- "server-error-not-accepting-jobs",
- "server-error-busy",
- "server-error-job-canceled",
- "server-error-multiple-document-jobs-not-supported",
- "server-error-printer-is-deactivated"
- };
-
-
- //
- // See if the error code is a known value...
- //
- if ((error >= IPPDefs.OK) && (error <= IPPDefs.OK_BUT_CANCEL_SUBSCRIPTION))
- {
- return (status_oks[error]);
- }
- else if (error == IPPDefs.REDIRECTION_OTHER_SITE)
- {
- return ("redirection-other-site");
- }
- else if ((error >= IPPDefs.BAD_REQUEST) &&
- (error <= IPPDefs.PRINT_SUPPORT_FILE_NOT_FOUND))
- {
- return (status_400s[error - IPPDefs.BAD_REQUEST]);
- }
- else if ((error >= IPPDefs.INTERNAL_ERROR) &&
- (error <= IPPDefs.PRINTER_IS_DEACTIVATED))
- {
- return (status_500s[error - IPPDefs.INTERNAL_ERROR]);
- }
-
- //
- // No, build an "unknown-xxxx" error string...
- //
-
- unknown = "unknown" + error;
-
- return (unknown);
- }
-
-
-} // End of IPPError class
-
-
-
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 1.1 23-JAN-2007
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2007 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-/**
- * An <code>IPPHttp</code> object is used for reading/writing to the cups
- * server, and processing responses.
- *
- * @author TDB
- * @version 1.1
- * @since JDK1.3
- */
-
-import java.io.*;
-import java.util.*;
-import java.net.*;
-import java.security.*;
-
-public class IPPHttp
-{
-
- /**
- * Class constants - most not in use yet.
- */
- public static final int HTTP_WAITING = 0x00;
- public static final int HTTP_OPTIONS = 0x01;
- public static final int HTTP_GET = 0x02;
- public static final int HTTP_GET_SEND = 0x03;
- public static final int HTTP_HEAD = 0x04;
- public static final int HTTP_POST = 0x05;
- public static final int HTTP_POST_RECV = 0x06;
- public static final int HTTP_POST_SEND = 0x07;
- public static final int HTTP_PUT = 0x08;
- public static final int HTTP_PUT_RECV = 0x09;
- public static final int HTTP_DELETE = 0x0A;
- public static final int HTTP_TRACE = 0x0B;
- public static final int HTTP_CLOSE = 0x0C;
- public static final int HTTP_STATUS = 0x0D;
-
- public static final int HTTP_0_9 = 0x09;
- public static final int HTTP_1_0 = 0x64;
- public static final int HTTP_1_1 = 0x65;
-
- public static final int HTTP_KEEPALIVE_OFF = 0x00;
- public static final int HTTP_KEEPALIVE_ON = 0x01;
-
- public static final int HTTP_ENCODE_LENGTH = 0x00;
- public static final int HTTP_ENCODE_CHUNKED = 0x01;
-
- public static final int HTTP_ENCRYPT_IF_REQUESTED = 0x00;
- public static final int HTTP_ENCRYPT_NEVER = 0x01;
- public static final int HTTP_ENCRYPT_REQUIRED = 0x02;
- public static final int HTTP_ENCRYPT_ALWAYS = 0x03;
-
- public static final int HTTP_AUTH_NONE = 0x00;
- public static final int HTTP_AUTH_BASIC = 0x01;
- public static final int HTTP_AUTH_MD5 = 0x02;
- public static final int HTTP_AUTH_MD5_SESS = 0x03;
- public static final int HTTP_AUTH_MD5_INT = 0x04;
- public static final int HTTP_AUTH_MD5_SESS_INT = 0x05;
-
- public static final int HTTP_ERROR = 0xFFFFFFFF;
- public static final int HTTP_CONTINUE = 0x64;
- public static final int HTTP_SWITCHING_PROTOCOLS = 0x65;
- public static final int HTTP_OK = 0xC8;
- public static final int HTTP_CREATED = 0xC9;
- public static final int HTTP_ACCEPTED = 0xCA;
- public static final int HTTP_NOT_AUTHORITATIVE = 0xCB;
- public static final int HTTP_NO_CONTENT = 0xCC;
- public static final int HTTP_RESET_CONTENT = 0xCD;
- public static final int HTTP_PARTIAL_CONTENT = 0xCE;
- public static final int HTTP_MULTIPLE_CHOICES = 0x12C;
- public static final int HTTP_MOVED_PERMANENTLY = 0x12D;
- public static final int HTTP_MOVED_TEMPORARILY = 0x12E;
- public static final int HTTP_SEE_OTHER = 0x12F;
- public static final int HTTP_NOT_MODIFIED = 0x130;
- public static final int HTTP_USE_PROXY = 0x131;
- public static final int HTTP_BAD_REQUEST = 0x190;
- public static final int HTTP_UNAUTHORIZED = 0x191;
- public static final int HTTP_PAYMENT_REQUIRED = 0x192;
- public static final int HTTP_FORBIDDEN = 0x193;
- public static final int HTTP_NOT_FOUND = 0x194;
- public static final int HTTP_METHOD_NOT_ALLOWED = 0x195;
- public static final int HTTP_NOT_ACCEPTABLE = 0x196;
- public static final int HTTP_PROXY_AUTHENTICATION = 0x197;
- public static final int HTTP_REQUEST_TIMEOUT = 0x198;
- public static final int HTTP_CONFLICT = 0x199;
- public static final int HTTP_GONE = 0x19A;
- public static final int HTTP_LENGTH_REQUIRED = 0x19B;
- public static final int HTTP_PRECONDITION = 0x19C;
- public static final int HTTP_REQUEST_TOO_LARGE = 0x19D;
- public static final int HTTP_URI_TOO_LONG = 0x19E;
- public static final int HTTP_UNSUPPORTED_MEDIATYPE = 0x19F;
- public static final int HTTP_UPGRADE_REQUIRED = 0x1AA;
- public static final int HTTP_SERVER_ERROR = 0x1F4;
- public static final int HTTP_NOT_IMPLEMENTED = 0x1F5;
- public static final int HTTP_BAD_GATEWAY = 0x1F6;
- public static final int HTTP_SERVICE_UNAVAILABLE = 0x1F7;
- public static final int HTTP_GATEWAY_TIMEOUT = 0x1F8;
-
- public static final int HTTP_NOT_SUPPORTED = 0x1F9;
-
- public static final int HTTP_FIELD_UNKNOWN = 0xFFFFFFFF;
- public static final int HTTP_FIELD_ACCEPT_LANGUAGE = 0x00;
- public static final int HTTP_FIELD_ACCEPT_RANGES = 0x01;
- public static final int HTTP_FIELD_AUTHORIZATION = 0x02;
- public static final int HTTP_FIELD_CONNECTION = 0x03;
- public static final int HTTP_FIELD_CONTENT_ENCODING = 0x04;
- public static final int HTTP_FIELD_CONTENT_LANGUAGE = 0x05;
- public static final int HTTP_FIELD_CONTENT_LENGTH = 0x06;
- public static final int HTTP_FIELD_CONTENT_LOCATION = 0x07;
- public static final int HTTP_FIELD_CONTENT_MD5 = 0x08;
- public static final int HTTP_FIELD_CONTENT_RANGE = 0x09;
- public static final int HTTP_FIELD_CONTENT_TYPE = 0x0A;
- public static final int HTTP_FIELD_CONTENT_VERSION = 0x0B;
- public static final int HTTP_FIELD_DATE = 0x0C;
- public static final int HTTP_FIELD_HOST = 0x0D;
- public static final int HTTP_FIELD_IF_MODIFIED_SINCE = 0x0E;
- public static final int HTTP_FIELD_IF_UNMODIFIED_SINCE = 0x0F;
- public static final int HTTP_FIELD_KEEP_ALIVE = 0x10;
- public static final int HTTP_FIELD_LAST_MODIFIED = 0x11;
- public static final int HTTP_FIELD_LINK = 0x12;
- public static final int HTTP_FIELD_LOCATION = 0x13;
- public static final int HTTP_FIELD_RANGE = 0x14;
- public static final int HTTP_FIELD_REFERER = 0x15;
- public static final int HTTP_FIELD_RETRY_AFTER = 0x16;
- public static final int HTTP_FIELD_TRANSFER_ENCODING = 0x17;
- public static final int HTTP_FIELD_UPGRADE = 0x18;
- public static final int HTTP_FIELD_USER_AGENT = 0x19;
- public static final int HTTP_FIELD_WWW_AUTHENTICATE = 0x1A;
- public static final int HTTP_FIELD_MAX = 0x1B;
-
- public static final String http_fields[] =
- {
- "Accept-Language",
- "Accept-Ranges",
- "Authorization",
- "Connection",
- "Content-Encoding",
- "Content-Language",
- "Content-Length",
- "Content-Location",
- "Content-MD5",
- "Content-Range",
- "Content-Type",
- "Content-Version",
- "Date",
- "Host",
- "If-Modified-Since",
- "If-Unmodified-since",
- "Keep-Alive",
- "Last-Modified",
- "Link",
- "Location",
- "Range",
- "Referer",
- "Retry-After",
- "Transfer-Encoding",
- "Upgrade",
- "User-Agent",
- "WWW-Authenticate"
- };
- public static final String days[] =
- {
- "Sun",
- "Mon",
- "Tue",
- "Wed",
- "Thu",
- "Fri",
- "Sat"
- };
- public static final String months[] =
- {
- "Jan",
- "Feb",
- "Mar",
- "Apr",
- "May",
- "Jun",
- "Jul",
- "Aug",
- "Sep",
- "Oct",
- "Nov",
- "Dec"
- };
-
-
-
- //
- // Private class members.
- //
- private URL url; // URL of connection.
-
- public Socket conn; // Connection socket.
- public boolean connected; // True when connected.
-
- public BufferedInputStream is; // Input stream.
- public BufferedReader br;
- public BufferedOutputStream os; // Output stream.
-
- private boolean encrypted;
-
- public int write_content_length;
- private char write_buffer[];
- private int write_buffer_head;
- private int write_buffer_tail;
-
- public String read_header_date;
- public String read_header_server;
- public String read_header_charset;
- public String read_header_content_language;
- public String read_header_content_type;
- public int read_header_content_length;
-
- public char read_buffer[];
- private int read_buffer_head;
- private int read_buffer_tail;
-
- public int status;
- public String status_text;
- public String version;
- public int error;
- public int activity;
-
- public String hostname; // Hostname from URL
- public int port; // Port from URL.
- public String path; // Path from URL.
- public String user; // User name
- public String passwd; // Password
-
- public String auth_type; // none, basic, digest
- public String realm; // For digest auth
- public String opaque; // For digest auth
- public String nonce; // For digest auth
- public String resource; // For digest auth
- public String method; // For digest auth
-
- public String http_request;
- public int http_content_length;
-
-
-
- /**
- * Constructor using <code>URL</code>.
- *
- * @param request_url <code>URL</code> of server to connect to.
- * @throw IOException
- * @throw UnknownHostException
- */
- public IPPHttp( String request_url )
- throws IOException, UnknownHostException
- {
-
- encrypted = false;
- status = 0;
- status_text = "";
- version = "1.0";
- connected = false;
- user = "";
- passwd = "";
-
- auth_type = "";
- realm = "";
- nonce = "";
- resource = "";
- method = "";
-
- try
- {
- //
- // Create the URL and split it up.
- //
- url = new URL(request_url);
- hostname = url.getHost();
- port = url.getPort();
- path = url.getPath();
-
-
- //
- // Open the socket and set the options.
- //
- conn = new Socket(hostname, port);
- conn.setSoTimeout(200);
-
- //
- // Create the input and output streams.
- //
- is = new BufferedInputStream(new DataInputStream(conn.getInputStream()));
- os = new BufferedOutputStream(new DataOutputStream(conn.getOutputStream()));
- connected = true;
- }
- catch(UnknownHostException unknownhostexception)
- {
- throw unknownhostexception;
- }
- catch(IOException ioexception)
- {
- throw ioexception;
- }
- }
-
-
-
- /**
- * Constructor using <code>URL, user and pass</code>.
- *
- * @param request_url <code>URL</code> of server to connect to.
- * @param p_auth_type <code>String</code> basic or digest.
- * @param p_user <code>String</code> User name.
- * @param p_passwd <code>String</code> password.
- * @throw IOException
- * @throw UnknownHostException
- */
- public IPPHttp( String request_url, String p_auth_type,
- String p_user, String p_passwd )
- throws IOException, UnknownHostException
- {
- encrypted = false;
- status = 0;
- status_text = "";
- version = "1.0";
- connected = false;
-
- user = p_user;
- passwd = p_passwd;
- auth_type = p_auth_type;
-
- realm = "";
- nonce = "";
- resource = "";
- method = "";
-
- try
- {
- //
- // Create the URL and split it up.
- //
- url = new URL(request_url);
- hostname = url.getHost();
- port = url.getPort();
- path = url.getPath();
-
- //
- // Open the socket and set the options.
- //
- conn = new Socket(hostname, port);
- conn.setSoTimeout(200);
-
- //
- // Create the input and output streams.
- //
- is = new BufferedInputStream(new DataInputStream(conn.getInputStream()));
- os = new BufferedOutputStream(new DataOutputStream(conn.getOutputStream()));
- connected = true;
- }
- catch(UnknownHostException unknownhostexception)
- {
- throw unknownhostexception;
- }
- catch(IOException ioexception)
- {
- throw ioexception;
- }
- }
-
-
-
-
- /**
- * Re-establish a dropped connection.
- *
- * @return <code>boolean</code> True if connected.
- *
- * @throw IOException
- */
- public boolean reConnect() throws IOException
- {
- connected = false;
- status = 0;
- status_text = "";
- try
- {
- //
- // Open the socket and set the options.
- //
- conn = new Socket(hostname, port);
- conn.setSoTimeout(200);
-
- //
- // Create the input and output streams.
- //
- is = new BufferedInputStream(new DataInputStream(conn.getInputStream()));
- os = new BufferedOutputStream(new DataOutputStream(conn.getOutputStream()));
- connected = true;
- return(connected);
-
- }
- catch (IOException ioexception)
- {
- connected = false;
- throw(ioexception);
- }
- }
-
-
-
- /**
- * Set the user name.
- *
- * @param p_user <code>String</code> - user name.
- */
- public void setUser(String p_user )
- {
- user = p_user;
- }
-
-
- /**
- * Set the password.
- *
- * @param p_passwd <code>String</code> - password.
- */
- public void setPassword(String p_passwd )
- {
- passwd = p_passwd;
- }
-
-
-
-
- /**
- * Write the request header bytes to the server.
- *
- * @param request <code>String</code> - the request.
- * @param content_length <code>int</code> - size of the total request.
- * @throw IOException
- */
- public int writeHeader(String request, int content_length )
- throws IOException
- {
-
- http_request = request;
- http_content_length = content_length;
-
- try
- {
- String s1 = "POST " + request + " HTTP/1.0\r\n";
- os.write(s1.getBytes(), 0, s1.length());
-
- s1 = "Content-type: application/ipp\r\n";
- os.write(s1.getBytes(), 0, s1.length());
-
-
- //
- // Do basic style authorization if needed.
- //
- if (auth_type.compareTo("basic") == 0)
- {
- s1 = user + ":" + passwd;
- String auth_string = Base64Coder.encodeString(s1);
- s1 = "Authorization: Basic " + auth_string + "\r\n";
- os.write(s1.getBytes(), 0, s1.length());
- }
- else if (auth_type.compareTo("digest") == 0)
- {
- try
- {
- IPPMD5 md5 = IPPMD5.getInstance();
- String auth_string = md5.MD5Digest(user, passwd, realm,
- "POST", path, nonce );
- s1 = "Authorization: Digest " + "username=\"" + user + "\", " +
- "realm=\"" + realm + "\", " +
- "nonce=\"" + nonce + "\", " +
- "response=\"" + auth_string + "\"\r\n";
-
- os.write(s1.getBytes(), 0, s1.length());
- }
- catch(NoSuchAlgorithmException e)
- {
- System.out.println("No such algorithm: MD5.");
- }
- }
-
- s1 = "Content-length: " + content_length + "\r\n\r\n";
- os.write(s1.getBytes(), 0, s1.length());
- os.flush();
- }
- catch(IOException ioexception)
- {
- error = HTTP_ERROR;
- throw ioexception;
- }
-
-
- try
- {
- int local_status = 0;
-
- //
- // Check for any response.
- //
- if (is.available() > 0)
- {
- StringBuffer http_version = new StringBuffer(32);
- StringBuffer http_status = new StringBuffer(32);
- StringBuffer http_text = new StringBuffer(256);
-
- String read_buffer;
- status = 0;
- is.mark(8192);
- while (is.available() > 0)
- {
- read_buffer = read_line();
-
- if (read_buffer.startsWith("HTTP/"))
- {
- int i,n;
- String s2 = read_buffer.substring(5);
-
-
- for (i=0;(i < s2.length() && s2.charAt(i) != ' '); i++)
- {
- http_version.append(s2.charAt(i));
- }
- while (i < s2.length() && s2.charAt(i) == ' ')
- i++;
- for (;(i < s2.length() && s2.charAt(i) != '\n' &&
- s2.charAt(i) != '\r' && s2.charAt(i) != ' '); i++)
- {
- http_status.append(s2.charAt(i));
- }
-
- while (i < s2.length() && s2.charAt(i) == ' ')
- i++;
- for (n=0;(n < 256 && i < s2.length() && s2.charAt(i) != '\n' &&
- s2.charAt(i) != '\r' && s2.charAt(i) != ' '); i++)
- {
- http_text.append(s2.charAt(i));
- }
- local_status = Integer.parseInt(http_status.toString(), 10);
- }
- }
- is.reset();
- }
-
- //
- // See if we need to reconnect and send authorization.
- //
- switch( local_status )
- {
- //
- // Not authorized.
- //
- case HTTP_UNAUTHORIZED: read_header();
- return( local_status );
- }
- }
- catch(IOException ioexception)
- {
- error = HTTP_ERROR;
- throw ioexception;
- }
- return(0);
- }
-
-
-
-
-
-
- public int checkForResponse()
- {
- //
- // Check for any response.
- //
- try
- {
- if (is.available() > 0)
- {
- StringBuffer http_version = new StringBuffer(32);
- StringBuffer http_status = new StringBuffer(32);
- StringBuffer http_text = new StringBuffer(256);
- int local_status = 0;
- String read_buffer;
-
- status = 0;
- is.mark(8192);
- while (is.available() > 0)
- {
- read_buffer = read_line();
- if (read_buffer.startsWith("HTTP/"))
- {
- int i,n;
- String s2 = read_buffer.substring(5);
- for (i=0;(i < s2.length() && s2.charAt(i) != ' '); i++)
- {
- http_version.append(s2.charAt(i));
- }
- while (i < s2.length() && s2.charAt(i) == ' ')
- i++;
- for (;(i < s2.length() && s2.charAt(i) != '\n' &&
- s2.charAt(i) != '\r' && s2.charAt(i) != ' '); i++)
- {
- http_status.append(s2.charAt(i));
- }
-
- while (i < s2.length() && s2.charAt(i) == ' ')
- i++;
- for (n=0;(n < 256 && i < s2.length() && s2.charAt(i) != '\n' &&
- s2.charAt(i) != '\r' && s2.charAt(i) != ' '); i++)
- {
- http_text.append(s2.charAt(i));
- }
- local_status = Integer.parseInt(http_status.toString(), 10);
- status = local_status;
- }
- }
- is.reset();
-
- //
- // See if we need to reconnect and send authorization.
- //
- switch( local_status )
- {
- //
- // Not authorized.
- //
- case HTTP_UNAUTHORIZED: read_header();
- return( local_status );
- }
- }
- }
- catch (IOException e)
- {
- return(HTTP_ERROR);
- }
- return(0);
- }
-
-
- /**
- * Write bytes to the output stream.
- *
- * @param bytes Array of bytes to write to the stream.
- * @throw IOException
- */
- public void write(byte bytes[])
- throws IOException
- {
- try
- {
- os.write(bytes, 0, bytes.length);
- os.flush();
- }
- catch(IOException ioexception)
- {
- error = HTTP_ERROR;
- throw ioexception;
- }
- }
-
-
- /**
- * Write bytes to the output stream.
- *
- * @param bytes Array of bytes to write to the stream.
- * @param length Number of bytes to write to the stream.
- * @throw IOException
- */
- public void write(byte bytes[], int length )
- throws IOException
- {
- try
- {
- os.write(bytes, 0, length);
- os.flush();
- }
- catch(IOException ioexception)
- {
- error = HTTP_ERROR;
- throw ioexception;
- }
- }
-
-
-
-
-
-
-
-
-
-
- /**
- * Read the HTTP header from the input stream.
- *
- * @return <code>int</code> Content length of response.
- * @return 0 Return zero on error.
- * @throw IOException
- */
- public int read_header()
- throws IOException
- {
- boolean done = false;
- read_header_content_length = 0;
-
- String read_buffer;
- while (!done)
- {
- read_buffer = read_line();
- if (read_buffer.startsWith("HTTP/"))
- {
- int i,n;
- String s2 = read_buffer.substring(5);
-
- StringBuffer http_version = new StringBuffer(32);
- StringBuffer http_status = new StringBuffer(32);
- StringBuffer http_text = new StringBuffer(256);
-
- for (i=0;(i < s2.length() && s2.charAt(i) != ' '); i++)
- {
- http_version.append(s2.charAt(i));
- }
- while (i < s2.length() && s2.charAt(i) == ' ')
- i++;
- for (;(i < s2.length() && s2.charAt(i) != '\n' &&
- s2.charAt(i) != '\r' && s2.charAt(i) != ' '); i++)
- {
- http_status.append(s2.charAt(i));
- }
-
- while (i < s2.length() && s2.charAt(i) == ' ')
- i++;
- for (n=0;(n < 256 && i < s2.length() && s2.charAt(i) != '\n' &&
- s2.charAt(i) != '\r' && s2.charAt(i) != ' '); i++)
- {
- http_text.append(s2.charAt(i));
- }
- version = http_version.toString();
- status = Integer.parseInt(http_status.toString(), 10);
- status_text = http_text.toString();
- }
- else if (read_buffer.startsWith("WWW-Authenticate: Basic"))
- {
- String s2=read_buffer.substring("WWW-Authenticate: Basic".length());
- auth_type = "basic";
- }
- else if (read_buffer.startsWith("WWW-Authenticate: Digest"))
- {
- String s2=read_buffer.substring("WWW-Authenticate: Digest".length());
- auth_type = "digest";
- parseAuthenticate(s2);
- }
- else if (read_buffer.startsWith("Content-Length:"))
- {
- String s2 = read_buffer.substring(15);
- read_header_content_length = Integer.parseInt(s2.trim(), 10);
- }
- else if (read_buffer.startsWith("Content-Language:"))
- {
- String s3 = read_buffer.substring(17);
- read_header_content_language = s3.trim();
- }
- else if (read_buffer.startsWith("Server:"))
- {
- String s4 = read_buffer.substring(7);
- read_header_server = s4.trim();
- }
- else if (read_buffer.startsWith("Date:"))
- {
- String s5 = read_buffer.substring(5);
- read_header_date = s5.trim();
- }
- else if (read_buffer.length() == 0)
- {
- done = true;
- return( read_header_content_length );
- }
- }
- return( 0 );
- }
-
-
-
- /**
- * Read a line from the input stream.
- *
- * @return <code>String</code> Line read.
- * @throw <code>IOException</code>
- */
- public String read_line()
- throws IOException
- {
- StringBuffer sb = new StringBuffer();
- int c = 0;
-
- try
- {
- while ((c != -1) && (c != 10))
- {
- c = is.read();
- switch( c )
- {
- case -1:
- case 10:
- case 13:
- break;
-
- default: sb.append((char)c);
- }
- }
- }
- catch (IOException e)
- {
- throw(e);
- }
- return(sb.toString());
- }
-
-
-
-
-
- /**
- * Read up to <code>count</code> bytes from the input stream.
- *
- * @param <code>count</code> Number of bytes to read.
- * @return <code>char[]</code> Character array of data read.
- * @throw <code>IOException</code>
- */
- public char[] read(int count)
- throws IOException
- {
- char ac[] = new char[count];
- int j = 0;
- try
- {
- for (int k = is.read(); k != -1 && j < count; k = is.read())
- {
- ac[j++] = (char)k;
- }
- }
- catch(IOException ioexception)
- {
- throw ioexception;
- }
- return(ac);
- }
-
-
- /**
- * Process the HTTP response from the server.
- *
- * @return <code>IPP</code> IPP object containing response data.
- * @see <code>IPP</code>
- * @see <code>IPPRequest</code>
- * @see <code>IPPAttribute</code>
- * @see <code>IPPValue</code>
- * @see <code>IPPDefs</code>
- */
- public IPP processResponse()
- {
- IPP ipp;
- IPPAttribute attr; // temp attribute
- IPPValue val; // temp value
-
- short vtag; // Current value tag
- short gtag; // Current group tag
-
- char[] buffer;
-
- ipp = new IPP();
- ipp.request = new IPPRequest();
-
- int read_buffer_bytes = read_buffer.length;
- int read_buffer_remaining = read_buffer_bytes;
- int bufferidx = 0;
- int n;
-
-
- ipp.current = -1; // current attritue??
- ipp.last = -1; // last attr?
- attr = null;
- buffer = read_buffer;
- gtag = -1;
- vtag = -1;
-
-
- // ---------------------------------------------------------------
- // State machine to process response.
- //
- ipp.state = IPPDefs.IDLE;
- while ((ipp.state != IPPDefs.TAG_END) &&
- (read_buffer_remaining > 0))
- {
- switch (ipp.state)
- {
- case IPPDefs.IDLE :
- ipp.state++; /* Avoid common problem... */
-
- //
- // Get the request header...
- //
- case IPPDefs.HEADER :
- if (read_buffer_remaining < 8)
- {
- return (null);
- }
-
- //
- // Verify the major version number...
- //
- if (buffer[0] != (char)1)
- {
- return (null);
- }
-
- //
- // Then copy the request header over...
- //
- ipp.request.version[0] = buffer[bufferidx++];
- ipp.request.version[1] = buffer[bufferidx++];
- ipp.request.op_status = (short)((short)buffer[bufferidx] << 8) |
- (short)buffer[bufferidx+1];
- bufferidx += 2;
-
- //
- // Get the text version of the request status ....
- //
- ipp.status = new IPPStatus(ipp.request.op_status);
-
- ipp.request.request_id = (int)((int)buffer[bufferidx] << 24) |
- ((int)buffer[bufferidx+1] << 16) |
- ((int)buffer[bufferidx+2] << 8) |
- ((int)buffer[bufferidx+3]);
- bufferidx += 4;
- read_buffer_remaining -= 8;
-
- ipp.state = IPPDefs.ATTRIBUTE;
- ipp.current = -1;
- ipp.current_tag = IPPDefs.TAG_ZERO;
- break;
-
- case IPPDefs.ATTRIBUTE :
- while (read_buffer_remaining > 0)
- {
- //
- // Read the value tag first.
- //
- vtag = (short)buffer[bufferidx++];
- read_buffer_remaining--;
- if (vtag == IPPDefs.TAG_END)
- {
- //
- // No more attributes left...
- //
- ipp.state = IPPDefs.DATA;
- if (attr != null)
- {
- ipp.addAttribute(attr);
- attr = null;
- }
- break;
- }
- else if (vtag < IPPDefs.TAG_UNSUPPORTED_VALUE)
- {
- if (attr != null)
- {
- ipp.addAttribute(attr);
- }
-
- //
- // Group tag... Set the current group and continue...
- //
- gtag = vtag;
-
- // If still the same group ....
- if (ipp.current_tag == gtag)
- {
- //
- // Add a separator
- //
- attr = new IPPAttribute(IPPDefs.TAG_ZERO,IPPDefs.TAG_ZERO,"");
- ipp.addAttribute(attr);
- attr = null;
- }
-
-
- ipp.current_tag = gtag;
- ipp.current = -1;
- continue;
- }
-
- //
- // Get the name...
- //
- n = ((int)buffer[bufferidx] << 8) | (int)buffer[bufferidx+1];
- bufferidx += 2;
- read_buffer_remaining -= 2;
-
- if (n == 0)
- {
- //
- // Parse Error, can't add additional values to null attr
- //
- if (attr == null)
- return (null);
-
- //
- // More values for current attribute...
- //
-
- //
- // Make sure we aren't adding a new value of a different
- // type...
- //
-
- if (attr.value_tag == IPPDefs.TAG_STRING ||
- (attr.value_tag >= IPPDefs.TAG_TEXTLANG &&
- attr.value_tag <= IPPDefs.TAG_MIMETYPE))
- {
- //
- // String values can sometimes come across in different
- // forms; accept sets of differing values...
- //
- if (vtag != IPPDefs.TAG_STRING &&
- (vtag < IPPDefs.TAG_TEXTLANG || vtag > IPPDefs.TAG_MIMETYPE))
- return (null);
- }
- else if (attr.value_tag != vtag)
- return (null);
- }
- else
- {
- if (attr != null)
- {
- ipp.addAttribute(attr);
- attr = null;
- }
-
- //
- // New Attribute
- //
- StringBuffer s = new StringBuffer();
- for (int i=0; i < n; i++)
- {
- s.append((char)buffer[bufferidx++]);
- read_buffer_remaining--;
- }
- attr = new IPPAttribute( gtag, vtag, s.toString() );
- }
- n = ((short)buffer[bufferidx] << 8) | (short)buffer[bufferidx+1];
- bufferidx += 2;
- read_buffer_remaining -= 2;
-
- switch (vtag)
- {
- case IPPDefs.TAG_INTEGER :
- case IPPDefs.TAG_ENUM :
- n = (int)(((int)buffer[bufferidx] << 24) |
- ((int)buffer[bufferidx+1] << 16) |
- ((int)buffer[bufferidx+2] << 8) |
- ((int)buffer[bufferidx+3]));
- bufferidx += 4;
- read_buffer_remaining -= 4;
- attr.addInteger( n );
- break;
-
- case IPPDefs.TAG_BOOLEAN :
- if ((byte)buffer[bufferidx++] > 0)
- attr.addBoolean(true);
- else
- attr.addBoolean(false);
- read_buffer_remaining --;
- break;
-
- case IPPDefs.TAG_TEXT :
- case IPPDefs.TAG_NAME :
- case IPPDefs.TAG_KEYWORD :
- case IPPDefs.TAG_STRING :
- case IPPDefs.TAG_URI :
- case IPPDefs.TAG_URISCHEME :
- case IPPDefs.TAG_CHARSET :
- case IPPDefs.TAG_LANGUAGE :
- case IPPDefs.TAG_MIMETYPE :
- StringBuffer s = new StringBuffer();
- for (int i=0; i < n; i++ )
- {
- s.append( (char)buffer[bufferidx++] );
- read_buffer_remaining --;
- }
- attr.addString( "", s.toString() );
- break;
-
-
- case IPPDefs.TAG_DATE :
- char db[] = new char[11];
- for (int i=0; i < 11; i++ )
- {
- db[i] = (char)buffer[bufferidx++];
- read_buffer_remaining --;
- }
- attr.addDate( db );
- break;
-
-
- case IPPDefs.TAG_RESOLUTION :
- if (read_buffer_remaining < 9)
- return( null );
-
- int x, y;
- byte u;
- x = (int)(((int)buffer[bufferidx] & 0xff000000) << 24) |
- (((int)buffer[bufferidx+1] & 0x00ff0000) << 16) |
- (((int)buffer[bufferidx+2] & 0x0000ff00) << 8) |
- (((int)buffer[bufferidx+3] & 0x000000ff));
- bufferidx += 4;
- read_buffer_remaining -= 4;
-
- y = (int)(((int)buffer[bufferidx] & 0xff000000) << 24) |
- (((int)buffer[bufferidx+1] & 0x00ff0000) << 16) |
- (((int)buffer[bufferidx+2] & 0x0000ff00) << 8) |
- (((int)buffer[bufferidx+3] & 0x000000ff));
- bufferidx += 4;
- read_buffer_remaining -= 4;
-
- u = (byte)buffer[bufferidx++];
- read_buffer_remaining--;
- attr.addResolution( u, x, y );
- break;
-
- case IPPDefs.TAG_RANGE :
- if (read_buffer_remaining < 8)
- return (null);
-
- int lower, upper;
- lower = (int)(((int)buffer[bufferidx] & 0xff000000) << 24) |
- (((int)buffer[bufferidx+1] & 0x00ff0000) << 16) |
- (((int)buffer[bufferidx+2] & 0x0000ff00) << 8) |
- (((int)buffer[bufferidx+3] & 0x000000ff));
- bufferidx += 4;
- read_buffer_remaining -= 4;
-
- upper = (int)(((int)buffer[bufferidx] & 0xff000000) << 24) |
- (((int)buffer[bufferidx+1] & 0x00ff0000) << 16) |
- (((int)buffer[bufferidx+2] & 0x0000ff00) << 8) |
- (((int)buffer[bufferidx+3] & 0x000000ff));
- bufferidx += 4;
- read_buffer_remaining -= 4;
-
- attr.addRange( (short)lower, (short)upper );
- break;
-
- case IPPDefs.TAG_TEXTLANG :
- case IPPDefs.TAG_NAMELANG :
- //
- // text-with-language and name-with-language are composite
- // values:
- //
- // charset-length
- // charset
- // text-length
- // text
- //
-
- n = ((int)buffer[bufferidx] << 8) | (int)buffer[bufferidx+1];
- bufferidx += 2;
-
- StringBuffer cs = new StringBuffer();
- for (int i=0; i < n; i++ )
- {
- cs.append( (char)buffer[bufferidx++] );
- read_buffer_remaining --;
- }
-
- n = ((int)buffer[bufferidx] << 8) | (int)buffer[bufferidx+1];
- bufferidx += 2;
-
- StringBuffer tx = new StringBuffer();
- for (int i=0; i < n; i++ )
- {
- tx.append( (char)buffer[bufferidx++] );
- read_buffer_remaining --;
- }
-
- attr.addString( cs.toString(), tx.toString() );
- break;
-
-
- default : /* Other unsupported values */
- if (n > 0)
- {
- bufferidx += n;
- read_buffer_remaining -= n;
- }
- break;
- }
- } // End of while
-
- if (attr != null)
- {
- ipp.addAttribute(attr);
- attr = null;
- }
- break;
-
- case IPPDefs.DATA :
- break;
-
- default :
- break; /* anti-compiler-warning-code */
- }
- }
- return (ipp);
-}
-
-
-
-//
-// Parse a WWW-Authenticate: Digest request
-//
-public void parseAuthenticate( String p_auth )
-{
- String tmp;
- StringBuffer val;
- int i,n;
-
- tmp = p_auth;
- while (tmp.length() > 0)
- {
- i = 0;
- while (tmp.length() > 0 && (tmp.charAt(i) == ' ' || tmp.charAt(i) == '"'))
- tmp = tmp.substring(1);
- i = 0;
-
- if (tmp.startsWith("realm="))
- {
- i = "realm=".length();
- tmp = tmp.substring(i);
- i = 0;
- while ((i < tmp.length()) &&
- (tmp.charAt(i) == ' ' ||
- tmp.charAt(i) == '"' ||
- tmp.charAt(i) == '='))
- {
- i++;
- }
- val = new StringBuffer(1024);
- while (i < tmp.length() && tmp.charAt(i) != '"')
- val.append(tmp.charAt(i++));
- realm = val.toString();
- tmp = tmp.substring(i);
- }
- else if (tmp.startsWith("nonce="))
- {
- i = "nonce=".length();
- tmp = tmp.substring(i);
- i = 0;
- while ((i < tmp.length()) &&
- (tmp.charAt(i) == ' ' ||
- tmp.charAt(i) == '"' ||
- tmp.charAt(i) == '='))
- {
- i++;
- }
- val = new StringBuffer(1024);
- while (i < tmp.length() && tmp.charAt(i) != '"')
- val.append(tmp.charAt(i++));
- nonce = val.toString();
- tmp = tmp.substring(i);
- }
- else if (tmp.startsWith("opaque="))
- {
- i = "opaque=".length();
- tmp = tmp.substring(i);
- i = 0;
- while ((i < tmp.length()) &&
- (tmp.charAt(i) == ' ' ||
- tmp.charAt(i) == '"' ||
- tmp.charAt(i) == '='))
- {
- i++;
- }
- val = new StringBuffer(1024);
- while (i < tmp.length() && tmp.charAt(i) != '"')
- val.append(tmp.charAt(i++));
- opaque = val.toString();
- tmp = tmp.substring(i);
- }
- else
- {
- StringBuffer name = new StringBuffer(256);
- while ((i < tmp.length()) &&
- (tmp.charAt(i) != ' ' ||
- tmp.charAt(i) != '"' ||
- tmp.charAt(i) != '='))
- {
- name.append(tmp.charAt(i++));
- }
-
- i = name.toString().length();
- tmp = tmp.substring(i);
- i = 0;
- while ((i < tmp.length()) &&
- (tmp.charAt(i) == ' ' ||
- tmp.charAt(i) == '"' ||
- tmp.charAt(i) == '='))
- {
- i++;
- }
- val = new StringBuffer(1024);
- while (i < tmp.length() && tmp.charAt(i) != '"')
- val.append(tmp.charAt(i++));
- //junk = val.toString();
- tmp = tmp.substring(i);
- }
- }
-}
-
-
-
-
-
-} // End of IPPHttp class
-
-
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-/**
- * Digest MD5 password routines.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-import java.security.*;
-
-public class IPPMD5
-{
- public MessageDigest md = null;
- static private IPPMD5 md5 = null;
- private static final char[] hexChars = {'0','1','2','3','4','5','6','7',
- '8','9','a','b','c','d','e','f'};
-
- /**
- * Constructor is private so you must use the getInstance method
- */
- private IPPMD5() throws NoSuchAlgorithmException
- {
- md = MessageDigest.getInstance("MD5");
- }
-
-
- /**
- * This returns the singleton instance
- */
- public static IPPMD5 getInstance() throws NoSuchAlgorithmException
- {
-
- if (md5 == null)
- {
- md5 = new IPPMD5();
- }
- return (md5);
- }
-
-
- public String hashData(byte[] dataToHash)
- {
- return(hexStringFromBytes((calculateHash(dataToHash))));
- }
-
-
- private byte[] calculateHash(byte[] dataToHash)
- {
- md.update(dataToHash, 0, dataToHash.length);
- return(md.digest());
- }
-
-
- public String hexStringFromBytes(byte[] b)
- {
- String hex = "";
- int msb;
- int lsb = 0;
- int i;
-
- // MSB maps to idx 0
- for (i = 0; i < b.length; i++)
- {
- msb = ((int)b[i] & 0x000000FF) / 16;
- lsb = ((int)b[i] & 0x000000FF) % 16;
- // System.out.println("I: " + i + " B: " + b[i] + " MSB: " +
- // msb + " LSB: " + lsb );
- hex = hex + hexChars[msb] + hexChars[lsb];
- }
- return(hex);
- }
-
-
-
-
-
- public String MD5Digest( String user, String passwd, String realm,
- String method, String resource, String nonce )
- {
- String tmp;
- String A1, A2;
- String auth_string = "";
-
- try
- {
- tmp = user + ":" + realm + ":" + passwd;
- md = MessageDigest.getInstance("MD5");
- A1 = hexStringFromBytes(md.digest(tmp.getBytes()));
-
- tmp = method + ":" + resource;
- md = MessageDigest.getInstance("MD5");
- A2 = hexStringFromBytes(md.digest(tmp.getBytes()));
-
- tmp = A1 + ":" + nonce + ":" + A2;
- md = MessageDigest.getInstance("MD5");
- auth_string = hexStringFromBytes(md.digest(tmp.getBytes()));
- return(auth_string);
- }
- catch (NoSuchAlgorithmException e)
- {
- }
- return("");
-
- }
-
-
-}
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-/**
- * An <code>IPPRequest</code> object is used to hold the
- * status and id's of a request.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-public class IPPRequest
-{
- char[] version; // Proto version number
- int request_id; // Unique ID
-
- int op_status;
- short operation_id;
- short status_code;
-
- /**
- * Constructor
- */
- public IPPRequest()
- {
- version = new char[2];
- }
-
- /**
- * Constructor using request id and operation id.
- *
- * @param <code>p_request_id</code> ID of request.
- * @param <code>p_operation_id</code> Operation ID for request.
- *
- * @see <code>IPPDefs</code>
- */
- public IPPRequest( int p_request_id, short p_operation_id )
- {
- version = new char[2];
- version[0] = (char)1;
- version[1] = (char)1;
- request_id = p_request_id;
- operation_id = p_operation_id;
- }
-
- /**
- * Set the current status of a request.
- *
- * @param <code>p_status_code</code> Status code.
- * @see <code>IPPDefs</code>
- */
- public void setStatus( short p_status_code )
- {
- status_code = p_status_code;
- }
-
- /**
- * Set the operation status of a request.
- *
- * @param <code>p_status_code</code> Operation status code.
- * @see <code>IPPDefs</code>
- */
- public void setOpStatus( short p_status_code )
- {
- op_status = p_status_code;
- }
-
-} // End of IPPRequest class
-
-
-
-
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-/**
- * Class to convert a status code to text.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-
-public class IPPStatus
-{
- int status;
- String status_text;
-
- /**
- * Constructor, access the <code>status_text</code> member
- * after creation.
- *
- * @param <code>p_status</code> Status code to convert.
- * @see <code>IPPDefs</code>
- */
- public IPPStatus( int p_status )
- {
- status = p_status;
- switch( status )
- {
- case IPPDefs.OK:
- status_text = "OK";
- break;
- case IPPDefs.OK_SUBST:
- status_text = "OK, substituted";
- break;
- case IPPDefs.OK_CONFLICT:
- status_text = "OK, conflict";
- break;
- case IPPDefs.OK_IGNORED_SUBSCRIPTIONS:
- status_text = "OK, ignored subscriptions";
- break;
- case IPPDefs.OK_IGNORED_NOTIFICATIONS:
- status_text = "OK, ignored notifications";
- break;
- case IPPDefs.OK_TOO_MANY_EVENTS:
- status_text = "OK, too many events";
- break;
- case IPPDefs.OK_BUT_CANCEL_SUBSCRIPTION:
- status_text = "OK, but cancel subscription";
- break;
- case IPPDefs.REDIRECTION_OTHER_SITE:
- status_text = "Redirected to other site";
- break;
- case IPPDefs.BAD_REQUEST:
- status_text = "Bad request";
- break;
- case IPPDefs.FORBIDDEN:
- status_text = "Forbidden";
- break;
- case IPPDefs.NOT_AUTHENTICATED:
- status_text = "Not authenticated";
- break;
- case IPPDefs.NOT_AUTHORIZED:
- status_text = "Not authorized";
- break;
- case IPPDefs.NOT_POSSIBLE:
- status_text = "Not possible";
- break;
- case IPPDefs.TIMEOUT:
- status_text = "Timeout";
- break;
- case IPPDefs.NOT_FOUND:
- status_text = "Not found";
- break;
- case IPPDefs.GONE:
- status_text = "Gone";
- break;
- case IPPDefs.REQUEST_ENTITY:
- status_text = "Request entity";
- break;
- case IPPDefs.REQUEST_VALUE:
- status_text = "Request value";
- break;
- case IPPDefs.DOCUMENT_FORMAT:
- status_text = "Document format";
- break;
- case IPPDefs.ATTRIBUTES:
- status_text = "Attributes";
- break;
- case IPPDefs.URI_SCHEME:
- status_text = "URI scheme";
- break;
- case IPPDefs.CHARSET:
- status_text = "Charset";
- break;
- case IPPDefs.CONFLICT:
- status_text = "Conflict";
- break;
- case IPPDefs.COMPRESSION_NOT_SUPPORTED:
- status_text = "Compression not supported";
- break;
- case IPPDefs.COMPRESSION_ERROR:
- status_text = "Compression error";
- break;
- case IPPDefs.DOCUMENT_FORMAT_ERROR:
- status_text = "Document format error";
- break;
- case IPPDefs.DOCUMENT_ACCESS_ERROR:
- status_text = "Document access error";
- break;
- case IPPDefs.ATTRIBUTES_NOT_SETTABLE:
- status_text = "Attributes not settable";
- break;
- case IPPDefs.IGNORED_ALL_SUBSCRIPTIONS:
- status_text = "Ignored all subscriptions";
- break;
- case IPPDefs.TOO_MANY_SUBSCRIPTIONS:
- status_text = "Too many subscriptions";
- break;
- case IPPDefs.IGNORED_ALL_NOTIFICATIONS:
- status_text = "Ingored all notifications";
- break;
- case IPPDefs.PRINT_SUPPORT_FILE_NOT_FOUND:
- status_text = "Support file not found";
- break;
- case IPPDefs.INTERNAL_ERROR:
- status_text = "Internal error";
- break;
- case IPPDefs.OPERATION_NOT_SUPPORTED:
- status_text = "Operation not supported";
- break;
- case IPPDefs.SERVICE_UNAVAILABLE:
- status_text = "Service unavailable";
- break;
- case IPPDefs.VERSION_NOT_SUPPORTED:
- status_text = "Version not supported";
- break;
- case IPPDefs.DEVICE_ERROR:
- status_text = "Device error";
- break;
- case IPPDefs.TEMPORARY_ERROR:
- status_text = "Temporary error";
- break;
- case IPPDefs.NOT_ACCEPTING:
- status_text = "Not accepting";
- break;
- case IPPDefs.PRINTER_BUSY:
- status_text = "Printer busy";
- break;
- case IPPDefs.ERROR_JOB_CANCELLED:
- status_text = "Error, job cancelled";
- break;
- case IPPDefs.MULTIPLE_JOBS_NOT_SUPPORTED:
- status_text = "Multiple jobs not supported";
- break;
- case IPPDefs.PRINTER_IS_DEACTIVATED:
- status_text = "Printer is de-activated";
- break;
- default:
- status_text = "Unknown error";
- }
- }
-
-
-
-
-
-} // End of IPPStatus class
-
-
-
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-/**
- * Implementation of the URLConnection interface.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-
-import java.util.*;
-import java.io.*;
-import java.net.*;
-
-public class IPPURLConnection extends URLConnection
-{
-
- /**
- * Constructor.
- */
- public IPPURLConnection( URL url )
- {
- super(url);
- }
-
- /**
- * Determine if using proxy.
- *
- * @return <code>boolean</code> Always <code>false</code> for now.
- */
- public boolean usingProxy()
- {
- return(false);
- }
-
- /**
- * Not used.
- */
- public void connect()
- {
- return;
- }
-
- /**
- * Not used.
- */
- public void disconnect()
- {
- return;
- }
-
-} // end of class
+++ /dev/null
-package com.easysw.cups;
-
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-/**
- * An <code>IPPValue</code> object is used to hold the
- * different kinds of values in a generic object.
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
-import java.util.*;
-
-public class IPPValue
-{
-
- int value_type; // Type of value for this object.
-
- int integer_value; // Integer value
- boolean boolean_value; // Boolean value
-
-
- char date_value[]; // Date/time value
- long unix_time; // Unix time ....
-
- //
- // Resolution Type
- //
- int xres;
- int yres;
- byte units;
-
- //
- // Range Type
- //
- int lower;
- int upper;
-
- //
- // String Type
- //
- String charset;
- String text;
-
- //
- // Unknown Type
- //
- int length;
- char data[];
-
-
- /**
- * Byte constructor.
- *
- * @param <code>p_byte</code> Byte value.
- */
- public IPPValue( byte p_byte )
- {
- value_type = IPPDefs.TAG_INTEGER;
- integer_value = (int)p_byte;
- }
-
- /**
- * Short constructor.
- *
- * @param <code>p_short</code> Short value.
- */
- public IPPValue( short p_short )
- {
- value_type = IPPDefs.TAG_INTEGER;
- integer_value = (int)p_short;
- }
-
- /**
- * Integer constructor.
- *
- * @param <code>p_int</code> Integer value.
- */
- public IPPValue( int p_int )
- {
- value_type = IPPDefs.TAG_INTEGER;
- integer_value = p_int;
- }
-
- /**
- * Enum constructor.
- *
- * @param <code>p_int</code> Integer value - force to IPP enum.
- */
- public IPPValue( int p_int, boolean anything )
- {
- value_type = IPPDefs.TAG_ENUM;
- integer_value = p_int;
- }
-
- /**
- * Boolean constructor.
- *
- * @param <code>p_boolean</code> Boolean value.
- */
- public IPPValue( boolean p_boolean )
- {
- value_type = IPPDefs.TAG_BOOLEAN;
- boolean_value = p_boolean;
- }
-
-
- /**
- * Date constructor. Also set the <code>unix_time</code> member.
- *
- * @param <code>p_date[]</code> Character array with date value.
- */
- public IPPValue( char p_date[] )
- {
- value_type = IPPDefs.TAG_DATE;
- date_value = p_date;
- unix_time = IPPDateToTime();
- }
-
-
-
- /**
- * String constructor. Set the <code>string</code> and
- * <code>charset</code> values.
- *
- * @param <code>p_charset</code> Charset for string.
- * @param <code>p_text</code> Text for string.
- */
- public IPPValue( String p_charset, String p_text )
- {
- value_type = IPPDefs.TAG_STRING;
- charset = p_charset;
- text = p_text;
- }
-
-
- /**
- * Range constructor. Automatically swap as needed.
- *
- * @param <code>p_lower</code> Integer lower value.
- * @param <code>p_upper</code> Integer upper value.
- */
- public IPPValue( int p_lower, int p_upper )
- {
- value_type = IPPDefs.TAG_RANGE;
- if (p_lower < p_upper)
- {
- lower = p_lower;
- upper = p_upper;
- }
- else
- {
- lower = p_upper;
- upper = p_lower;
- }
- }
-
-
- /**
- * Resolution constructor.
- *
- * @param <code>p_units</code> Unit of measure.
- * @param <code>p_xres</code> X resolution.
- * @param <code>p_yres</code> Y resolution.
- */
- public IPPValue( byte p_units, int p_xres, int p_yres )
- {
- value_type = IPPDefs.TAG_RESOLUTION;
- units = p_units;
- xres = p_xres;
- yres = p_yres;
- }
-
-
- /**
- * Raw data constructor.
- *
- * @param <code>p_length</code> Size of array.
- * @param <code>p_data[]</code> Data.
- */
- public IPPValue( int p_length, char p_data[] )
- {
- value_type = IPPDefs.TAG_UNKNOWN;
- length = p_length;
- data = p_data;
- }
-
-
-
- /**
- * Convert an IPP Date value to Unix Time.
- *
- * @return <code>long</code> Unix time in seconds.
- * @see <code>IPPCalender</code>
- */
- public long IPPDateToTime()
- {
-
- //
- // Compute the offset from GMT in milliseconds.
- //
- int raw_offset = (((int)date_value[9] * 3600) + ((int)date_value[10] * 60)) * 1000;
- if (date_value[8] == '-')
- raw_offset = 0 - raw_offset;
-
- //
- // Get the timezone for that offset.
- //
- TimeZone tz = new SimpleTimeZone(raw_offset,"GMT");
-
- //
- // Create a subclassed gregorian calendar (sub classed so we have
- // access to the getTimeInMillis() method).
- //
- IPPCalendar cl = new IPPCalendar();
-
- int year = ((((int)date_value[0]) << 8) | (((int)date_value[1]) - 1900));
- int month = ((int)date_value[2]) - 1;
- int day = (int)date_value[3];
- int hour = (int)date_value[4];
- int minute = (int)date_value[5];
- int second = (int)date_value[6];
-
- //
- // Now set the calendar to the matching time.
- //
- cl.setTimeZone( tz );
- cl.set( year, month, day, hour, minute, second );
-
- //
- // And finally get the unix time.
- //
- long the_time = cl.getTimeInMillis();
- the_time /= 1000;
-
- return(the_time);
- }
-
-} // End of class
+++ /dev/null
-#!/bin/sh
-rm -f cups.jar
-for x in `cat class.list`; do
- javac -classpath /usr/java/classes $x.java
- cp -f $x.class classes/
- mv -f $x.class ../../../../classes/com/easysw/cups
-done
-jar cvf cups.jar ../../../../classes/com/easysw/cups
-mv cups.jar ../../../..
+++ /dev/null
-Base64Coder
-IPPDefs
-IPPError
-IPPStatus
-IPPCalendar
-IPPValue
-IPPAttribute
-IPPRequest
-IPPURLConnection
-IPP
-IPPHttp
-CupsJob
-Cups
-CupsPrinter
+++ /dev/null
-/**
- * @version 1.00 06-NOV-2002
- * @author Apple Inc.
- *
- * Internet Printing Protocol definitions for the Common UNIX Printing
- * System (CUPS).
- *
- * Copyright 2007 by Apple Inc.
- * Copyright 1997-2002 by Easy Software Products.
- *
- * These coded instructions, statements, and computer programs are the
- * property of Apple Inc. and are protected by Federal copyright
- * law. Distribution and use rights are outlined in the file "LICENSE.txt"
- * which should have been included with this file. If this file is
- * file is missing or damaged, see the license at "http://www.cups.org/".
- */
-
-/**
- * An <code>IPP</code> object is used to hold the various
- * attributes and status of an ipp request..
- *
- * @author TDB
- * @version 1.0
- * @since JDK1.3
- */
#
# System V commands makefile for the Common UNIX Printing System (CUPS).
#
-# Copyright 2007 by Apple Inc.
+# Copyright 2007-2008 by Apple Inc.
# Copyright 1997-2006 by Easy Software Products, all rights reserved.
#
# These coded instructions, statements, and computer programs are the
$(INSTALL_BIN) lp $(BINDIR)
$(INSTALL_BIN) lpoptions $(BINDIR)
$(INSTALL_BIN) lpstat $(BINDIR)
- $(INSTALL_BIN) -m 4755 -o root lppasswd $(BINDIR) || $(INSTALL_BIN) lppasswd $(BINDIR)
+ $(INSTALL_BIN) lppasswd $(BINDIR)
if test "x$(SYMROOT)" != "x"; then \
$(INSTALL_DIR) $(SYMROOT); \
for file in $(TARGETS); do \
if test -d $$lang; then \
$(INSTALL_DIR) -m 755 $(DATADIR)/templates/$$lang; \
for file in $(FILES); do \
- $(INSTALL_DATA) $$lang/$$file $(DATADIR)/templates/$$lang || true; \
+ $(INSTALL_DATA) $$lang/$$file $(DATADIR)/templates/$$lang 2>/dev/null || true; \
done \
fi \
done