gspool_ptrop(3)

NAME
gspool_ptrop - perform an operation on a printer

SYNOPSIS
#include <gspool.h>

int gspool_ptrop(const int fd, const unsigned flags, const slotno_t slot, const unsigned op)

DESCRIPTION
The gspool_ptrop() function is used to perform an operation on a printer.

fd is a file descriptor previously returned by gspool_open

flags is zero, or "GSPOOL_FLAG_IGNORESEQ" to ignore changes since the list was last read

slot is the slot number corresponding to the printer as previously returned by a call to gspool_ptrlist() or gspool_ptrfindslot.

op is one of the following values: Restart printer Halt printer at the end of the current job Halt printer at once Start printer Approve alignment page Disapprove alignment page Interrupt printer Abort current job on printer

RETURN VALUES
The function gspool_ptrop() returns 0 if successful, otherwise one of the following codes: Invalid File descriptor failure writing to the network failure reading from the network The user does not have permission Sequence error, slot may be out of date Printer is running Printer is not running

EXAMPLE
An example to halt all printers:

 int     fd, ret, np, i;
 struct apispptr ptr;
 slotno_t *slots;

 fd = gspool_open("myhost", (char *) 0, 0);
 if (fd < 0) { /* error handling */
     ...
 }

 /* make a list of all the printers */

 ret = gspool_ptrlist(fd, 0, &np, &slots);
 if (ret < 0) { /* error handling */
     ...
 }

 for (i = 0; i < np; i++) {
     ret = gspool_ptrop(fd, GSPOOL_FLAG_IGNORESEQ, slots[i], PRINOP_PHLT);
     if (ret < 0  &&  ret != GSPOOL_PTR_NOTRUNNING) {
         /* error handling ignoring ones already stopped*/
         ...
     }
 }
 gspool_close(fd);

SEE ALSO
gspool_ptrlist(3), gspool_ptrread(3), gspool_ptradd(3), gspool_ptrdel(3), gspool_ptrfind(3), gspool_ptrfindslot(3), gspool_ptrupd(3), gspool_ptrmon(3).

AUTHOR
John M Collins, Xi Software Ltd.