]>
git.ipfire.org Git - thirdparty/cups.git/blob - scheduler/printers.h
2 * "$Id: printers.h,v 1.22.2.2 2002/01/02 18:05:05 mike Exp $"
4 * Printer definitions for the Common UNIX Printing System (CUPS) scheduler.
6 * Copyright 1997-2002 by Easy Software Products, all rights reserved.
8 * These coded instructions, statements, and computer programs are the
9 * property of Easy Software Products and are protected by Federal
10 * copyright law. Distribution and use rights are outlined in the file
11 * "LICENSE.txt" which should have been included with this file. If this
12 * file is missing or damaged please contact Easy Software Products
15 * Attn: CUPS Licensing Information
16 * Easy Software Products
17 * 44141 Airport View Drive, Suite 204
18 * Hollywood, Maryland 20636-3111 USA
20 * Voice: (301) 373-9603
21 * EMail: cups-info@cups.org
22 * WWW: http://www.cups.org
31 char username
[33]; /* User data */
32 time_t next_update
; /* Next update time */
33 int page_count
, /* Count of pages */
34 k_count
; /* Count of kilobytes */
39 * Printer/class information structure...
42 typedef struct printer_str
44 struct printer_str
*next
; /* Next printer in list */
45 char uri
[HTTP_MAX_URI
], /* Printer URI */
46 hostname
[HTTP_MAX_HOST
],/* Host printer resides on */
47 name
[IPP_MAX_NAME
], /* Printer name */
48 location
[IPP_MAX_NAME
], /* Location code */
49 make_model
[IPP_MAX_NAME
],/* Make and model */
50 info
[IPP_MAX_NAME
]; /* Description */
51 int accepting
; /* Accepting jobs? */
52 ipp_pstate_t state
; /* Printer state */
53 char state_message
[1024]; /* Printer state message */
54 time_t state_time
; /* Time at this state */
55 char job_sheets
[2][IPP_MAX_NAME
];
56 /* Banners/job sheets */
57 cups_ptype_t type
; /* Printer type (color, small, etc.) */
58 time_t browse_time
; /* Last time update was sent/received */
59 char device_uri
[HTTP_MAX_URI
],/* Device URI */
60 backend
[1024]; /* Backend to use */
61 mime_type_t
*filetype
; /* Pseudo-filetype for printer */
62 void *job
; /* Current job in queue */
63 ipp_t
*attrs
; /* Attributes supported by this printer */
64 int num_printers
, /* Number of printers in class */
65 last_printer
; /* Last printer job was sent to */
66 struct printer_str
**printers
; /* Printers in class */
67 int quota_period
, /* Period for quotas */
68 page_limit
, /* Maximum number of pages */
69 k_limit
, /* Maximum number of kilobytes */
70 num_quotas
; /* Number of quota records */
71 quota_t
*quotas
; /* Quota records */
72 int deny_users
, /* 1 = deny, 0 = allow */
73 num_users
; /* Number of allowed/denied users */
74 const char **users
; /* Allowed/denied users */
82 VAR printer_t
*Printers
VALUE(NULL
); /* Printer list */
83 VAR printer_t
*DefaultPrinter
VALUE(NULL
);
90 extern printer_t
*AddPrinter(const char *name
);
91 extern void AddPrinterFilter(printer_t
*p
, const char *filter
);
92 extern void AddPrinterUser(printer_t
*p
, const char *username
);
93 extern quota_t
*AddQuota(printer_t
*p
, const char *username
);
94 extern void DeleteAllPrinters(void);
95 extern void DeletePrinter(printer_t
*p
);
96 extern void DeletePrinterFilters(printer_t
*p
);
97 extern printer_t
*FindPrinter(const char *name
);
98 extern quota_t
*FindQuota(printer_t
*p
, const char *username
);
99 extern void FreePrinterUsers(printer_t
*p
);
100 extern void FreeQuotas(printer_t
*p
);
101 extern void LoadAllPrinters(void);
102 extern void SaveAllPrinters(void);
103 extern void SetPrinterAttrs(printer_t
*p
);
104 extern void SetPrinterState(printer_t
*p
, ipp_pstate_t s
);
105 extern void SortPrinters(void);
106 #define StartPrinter(p) SetPrinterState((p), IPP_PRINTER_IDLE)
107 extern void StopPrinter(printer_t
*p
);
108 extern quota_t
*UpdateQuota(printer_t
*p
, const char *username
,
110 extern const char *ValidateDest(const char *hostname
,
111 const char *resource
,
112 cups_ptype_t
*dtype
);
116 * End of "$Id: printers.h,v 1.22.2.2 2002/01/02 18:05:05 mike Exp $".