Provided by: libgnuspool-dev_1.7ubuntu1_amd64 bug

NAME

       gspool_jobread - get the details of a job

SYNOPSIS

       #include <gspool.h>

       int gspool_jobread(const int fd, const unsigned flags, const slotno_t slot, struct apispq
       *jobd)

DESCRIPTION

       The gspool_jobread() function is used to retrieve the details of a job from a given slot
       number.

       fd is a file descriptor previously returned by gspool_open

       flags is zero, or a logical OR of one or more of the following values

       GSPOOL_FLAG_LOCALONLY
           Ignore remote printers/hosts, i.e. not local to the server, not the client.

       GSPOOL_FLAG_USERONLY
           Ignore other users jobs

       GSPOOL_FLAG_IGNORESEQ
           Ignore changes since the list was last read

       slot is the slot number corresponding to the job as returned by gspool_joblist or
       gspool_jobfindslot.

       jobd is a descriptor, which on return will contain the details of the job in a "struct
       apispq" as defined in gspool.h and containing the following elements:

       jobno_t apispq_job
               Job number

       netid_t apispq_netid
               Host address (network byte order)

       netid_t apispq_orighost
               Originating host address

       slotno_t apispq_rslot
               Slot number on owning machine

       time_t apispq_time
               Time job was submitted

       time_t apispq_starttime
               Time job was started (if applicable)

       time_t apispq_hold
               Time job held to, 0 if not held

       unsigned short apispq_nptimeout
               Time after to delete job if not printed (hours)

       unsigned short apispq_ptimeout
               Time after to delete job if printed (hours)

       unsigned short apispq_extrn
               External job type index

       unsigned short apispq_pglim
               Job size limit applies

       long apispq_size
               Size of job in bytes

       long apispq_posn
               Offset reached if currently being printed

       long apispq_pagec
               Currently-reached page if being printed

       char apispq_uname[]
               User name of job owner

       char apispq_puname[]
               User name of posting user

       unsigned char apispq_cps
               Copies

       unsigned char apispq_pri
               Priority

       classcode_t apispq_class
               Class code bits 1=A 2=B 4=C etc

       unsigned short apispq_jflags
               Job flags

       unsigned char apispq_dflags
               Despooler flags

       slotno_t apispq_pslot
               Printer slot assigned to if printing

       unsigned long apispq_start
               Start page 0=first page

       unsigned long apispq_end
               End page

       unsigned long apispq_npages
               Number of pages

       unsigned long apispq_haltat
               "Halted at" page

       char apispq_file[]
               Job title

       char apispq_form[]
               Job form type

       char apispq_ptr[]
               Printer pattern assigned to job

       char apispq_flags[]
               Post-processing flags

       The following bits are set in the "apispq_jflags" field to indicate job parameters:

       APISPQ_NOH
               Suppress header

       APISPQ_WRT
               Write result

       APISPQ_MAIL
               Mail result

       APISPQ_RETN
               Retain on queue after printing

       APISPQ_ODDP
               Suppress odd pages

       APISPQ_EVENP
               Suppress even pages

       APISPQ_REVOE
               Invert APISPQ_ODDP and API_EVENP after printing

       APISPQ_MATTN
               Mail attention

       APISPQ_WATTN
               Write attention

       APISPQ_LOCALONLY
               Handle job on local machine only

       APISPQ_CLIENTJOB
               Job originated with windows client

       APISPQ_ROAMUSER
               Job originated with DHCP windows client

       The "apispq_dflags" field contains the following bits:

       APISPQ_PQ
               Job being printed

       APISPQ_PRINTED
               Job has been printed

       APISPQ_STARTED
               Job has been started

       APISPQ_PAGEFILE
               Job has a page file

       APISPQ_ERRLIMIT
               Error if size limit exceeded

       APISPQ_PGLIMIT
               Size limit in pages not KB

       Note that the field "apispq_pglim" and the field bits "APISPQ_ERRLIMIT" and
       "APISPQ_PGLIMIT" will always be zero when read with gspool_joblist, but the description is
       included for completeness. The fields are only used when creating jobs.

RETURN VALUES

       The function gspool_jobread() returns 0 if successful, otherwise one of the following
       codes:

       GSPOOL_UNKNOWN_JOB
               job not found

       GSPOOL_INVALID_FD
               Invalid File descriptor

       GSPOOL_BADWRITE
               failure writing to the network

       GSPOOL_BADREAD
               failure reading from the network

       GSPOOL_NOPERM
               The user does not have permission

       GSPOOL_SEQUENCE
               Printer sequence error, slot may be out of date

       GSPOOL_INVALIDSLOT
               Invalid slot number

EXAMPLE

       An example to read the names of all jobs

        int fd, ret, nj, i;
        struct apispq job;
        slotno_t *slots;

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

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

        for (i = 0; i < nj, i++) {
            ret = gspool_jobread(fd, 0, slots[i], &job);
            if (ret < 0) { /* error handling */
                ...
            }
            printf("%s\n", job.apispq_file);
        }
        gspool_close(fd);

SEE ALSO

       gspool_jobfind(3), gspool_jobfindslot(3), gspool_joblist(3), gspool_jobdata(3),
       gspool_jobadd(3), gspool_jobdel(3), gspool_jobupd(3), gspool_jobmon(3), gspool_jobpbrk(3).

COPYRIGHT

       Copyright (c) 2009 Free Software Foundation, Inc.  This is free software. You may
       redistribute copies of it under the terms of the GNU General Public License
       <http://www.gnu.org/licenses/gpl.html>.  There is NO WARRANTY, to the extent permitted by
       law.

AUTHOR

       John M Collins, Xi Software Ltd.