1#include "beCompat.h"
2#include "betalk.h"
3
4
5typedef struct
6{
7	char printerName[MAX_NAME_LENGTH];
8	char deviceName[B_FILE_NAME_LENGTH];
9	char deviceType[MAX_NAME_LENGTH];
10	char spoolDir[B_PATH_NAME_LENGTH];
11
12	bool killed;
13	bool used;
14
15	bt_user_rights *rights;
16	int security;
17
18	HANDLE handlerID;
19} bt_printer;
20
21
22typedef struct
23{
24	char jobName[MAX_DESC_LENGTH + 1];
25	uint32 sourceAddr;
26	char sourceUser[MAX_USERNAME_LENGTH + 1];
27	char status[MAX_DESC_LENGTH + 1];
28} bt_print_job;
29
30
31// Although there is no maximum number of entries that can be queued for
32// printing, except as limited by available disk space, for simplicity
33// BeServed will only report on the first MAX_PRINT_JOBS in the queue.
34// This keeps the print job query from requiring repeated calls to handle
35// large volume.
36
37#define MAX_PRINT_JOBS		(BT_MAX_IO_BUFFER / sizeof(bt_print_job))
38
39int btPrintJobNew(char *printerName, char *user, char *password, int client_s_addr, char *jobName, char *jobId);
40int btPrintJobData(char *printerName, char *jobId, char *jobData, int dataLen);
41int btPrintJobCommit(char *printerName, char *jobId);
42int btPrintJobQuery(char *printerName, bt_print_job *jobList);