typedef struct cupsd_job_s
{
int id,
priority;
ipp_jstate_t state_value;
int pending_timeout;
char *username;
char *dest;
cups_ptype_t dtype;
int num_files;
mime_type_t **filetypes;
int *compressions;
time_t access_time;
ipp_attribute_t *sheets;
time_t hold_until;
ipp_attribute_t *state;
ipp_attribute_t *job_sheets;
ipp_attribute_t *printer_message,
*printer_reasons;
int current_file;
ipp_t *attrs;
int print_pipes[2],
back_pipes[2],
side_pipes[2],
status_pipes[2];
cupsd_statbuf_t *status_buffer;
int status_level;
int cost;
int filters[MAX_FILTERS + 1];
int backend;
int status;
cupsd_printer_t *printer;
int tries;
char *auth_username,
*auth_domain,
*auth_password;
#ifdef HAVE_GSSAPI
krb5_ccache ccache;
char *ccname;
#endif
} cupsd_job_t;
VAR int JobHistory VALUE(1);
VAR int JobFiles VALUE(0);
VAR int MaxJobs VALUE(0),
MaxActiveJobs VALUE(0),
MaxJobsPerUser VALUE(0),
MaxJobsPerPrinter VALUE(0);
VAR int JobAutoPurge VALUE(0);
VAR cups_array_t *Jobs VALUE(NULL),
*ActiveJobs VALUE(NULL);
VAR int NextJobId VALUE(1);
VAR int JobRetryLimit VALUE(5),
JobRetryInterval VALUE(300);
extern cupsd_job_t *cupsdAddJob(int priority, const char *dest);
extern void cupsdCancelJob(cupsd_job_t *job, int purge,
ipp_jstate_t newstate);
extern void cupsdCancelJobs(const char *dest, const char *username,
int purge);
extern void cupsdCheckJobs(void);
extern void cupsdCleanJobs(void);
extern void cupsdDeleteJob(cupsd_job_t *job);
extern cupsd_job_t *cupsdFindJob(int id);
extern void cupsdFinishJob(cupsd_job_t *job);
extern void cupsdFreeAllJobs(void);
extern int cupsdGetPrinterJobCount(const char *dest);
extern int cupsdGetUserJobCount(const char *username);
extern void cupsdHoldJob(cupsd_job_t *job);
extern void cupsdLoadAllJobs(void);
extern void cupsdLoadJob(cupsd_job_t *job);
extern void cupsdMoveJob(cupsd_job_t *job, cupsd_printer_t *p);
extern void cupsdReleaseJob(cupsd_job_t *job);
extern void cupsdRestartJob(cupsd_job_t *job);
extern void cupsdSaveAllJobs(void);
extern void cupsdSaveJob(cupsd_job_t *job);
extern void cupsdSetJobHoldUntil(cupsd_job_t *job, const char *when);
extern void cupsdSetJobPriority(cupsd_job_t *job, int priority);
extern void cupsdStopAllJobs(int force);
extern void cupsdStopJob(cupsd_job_t *job, int force);
extern void cupsdTimeoutJob(cupsd_job_t *job);
extern void cupsdUnloadCompletedJobs(void);