/pliant/protocol/lpr/database.pli
 
 1  module "/pliant/language/unsafe.pli" 
 2  submodule "/pliant/language/schedule/namedsem.pli" 
 3  submodule "/pliant/storage/database.pli" 
 4  module "/pliant/fullpliant/this_computer.pli" 
 5   
 6  public 
 7   
 8  type LprQueue 
 9    field Str label 
 10    field Str driver 
 11    field Str model 
 12    field Str options 
 13    field Str paper 
 14    field Float size_x <- 210 ; field Float size_y <- 297 
 15    field Float margin_left <- 10 
 16    field Float margin_top <- 10 
 17    field Float margin_right <- 10 
 18    field Float margin_bottom <- 20 
 19    field Float resolution_x resolution_y <- 300 
 20    field Int antialiasing_x antialiasing_y <- 1 
 21    field Float sharpening <- undefined 
 22    field Str gamut 
 23    field Int grid_steps <- 17 
 24    field Str printer # two devices are the same if they have same value here 
 25    field Str device 
 26    field Float timeout <- 3600 
 27    field Bool once <- false # print while ripping 
 28    field Str export 
 29    field Bool default <- false 
 30    field Char status <- " " # Running Stopped 
 31   
 32  type LprJob 
 33    field Str queue 
 34    field Str label 
 35    field Str file 
 36    field Str format # file format can by 'raw' 'ps' or 'html' 
 37    field Str ip 
 38    field DateTime s_startup 
 39    field Char s_status <- "W" # spooling status: Running Terminated 
 40    field Str s_comment 
 41    field DateTime r_startup 
 42    field Char r_status <- "W" # ripping status: Waiting Running Terminated 
 43    field Str r_comment 
 44    field DateTime p_startup 
 45    field Char p_status <- "W" # printing status: Waiting Running Terminated 
 46    field Str p_comment 
 47    field Str error 
 48    field DateTime e_timestamp 
 49   
 50  type LprDatabase 
 51    field Set:LprJob job 
 52   
 53  gvar NamedSem lpr_printer_sem 
 54   
 55  (gvar Database:LprDatabase lpr_database) load "security:/lpr.pdb" mount "/pliant/lpr" 
 56   
 57   
 58  method job printer -> printer 
 59    arg Data:LprJob job ; arg Data:LprQueue printer 
 60    printer :> this_computer:env:"printer":(job queue) pmap "" LprQueue