cl-ipp

Internet Printing Protocol (IPP) for Common Lisp
git clone https://logand.com/git/cl-ipp.git/
Log | Files | Refs

commit 6d7c4756690a788f2d1cbcf4c5eb1c9aff91c91e
parent c47983e198a6e33409550b45b6ece9414a2aad97
Author: Tomas Hlavaty <tom@logand.com>
Date:   Sun, 11 Aug 2013 22:09:16 +0200

added cancel-job get-job-attributes hold-job release-job restart-job
- and minor stuff

Diffstat:
Mipp.lisp | 140+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 file changed, 133 insertions(+), 7 deletions(-)

diff --git a/ipp.lisp b/ipp.lisp @@ -538,8 +538,60 @@ :printer-uri ,printer-uri)))) ;; TODO send-document -;; TODO cancel-job -;; TODO get-job-attributes + +(defun cancel-job (ipp-client + printer-uri + request-file + response-file + request-id + job-id + &key + (attributes-charset "utf-8") + (attributes-natural-language "en") + (requesting-user-name (user-name)) + message) + (ipp ipp-client + printer-uri + request-file + response-file + nil + request-id + :cancel-job + `((,(tag :operation-attributes-tag) + :attributes-charset ,attributes-charset + :attributes-natural-language ,attributes-natural-language + :printer-uri ,printer-uri + :requesting-user-name ,requesting-user-name + :job-id ,job-id + :message ,message)))) + +(defun get-job-attributes (ipp-client + printer-uri + request-file + response-file + request-id + job-id + &key + (attributes-charset "utf-8") + (attributes-natural-language "en") + limit + requested-attributes) + (assert (let ((x '(:job-template :job-description :all))) + (equal x (union x requested-attributes)))) + (ipp ipp-client + printer-uri + request-file + response-file + nil + request-id + :get-job-attributes + `((,(tag :operation-attributes-tag) + :attributes-charset ,attributes-charset + :attributes-natural-language ,attributes-natural-language + :printer-uri ,printer-uri + :job-id ,job-id + :limit ,limit + :requested-attributes ,requested-attributes)))) (defun get-jobs (ipp-client printer-uri @@ -585,6 +637,8 @@ (attributes-natural-language "en") limit requested-attributes) + (assert (let ((x '(:job-template :printer-description :all))) + (equal x (union x requested-attributes)))) (ipp ipp-client printer-uri request-file @@ -599,9 +653,81 @@ :limit ,limit :requested-attributes ,requested-attributes)))) -;; TODO hold-job -;; TODO release-job -;; TODO restart-job +(defun hold-job (ipp-client + printer-uri + request-file + response-file + request-id + job-id + &key + (attributes-charset "utf-8") + (attributes-natural-language "en") + (requesting-user-name (user-name)) + job-hold-until) + (ipp ipp-client + printer-uri + request-file + response-file + nil + request-id + :hold-job + `((,(tag :operation-attributes-tag) + :attributes-charset ,attributes-charset + :attributes-natural-language ,attributes-natural-language + :printer-uri ,printer-uri + :requesting-user-name ,requesting-user-name + :job-id ,job-id + :job-hold-until ,job-hold-until)))) + +(defun release-job (ipp-client + printer-uri + request-file + response-file + request-id + job-id + &key + (attributes-charset "utf-8") + (attributes-natural-language "en") + (requesting-user-name (user-name))) + (ipp ipp-client + printer-uri + request-file + response-file + nil + request-id + :release-job + `((,(tag :operation-attributes-tag) + :attributes-charset ,attributes-charset + :attributes-natural-language ,attributes-natural-language + :printer-uri ,printer-uri + :requesting-user-name ,requesting-user-name + :job-id ,job-id)))) + +(defun restart-job (ipp-client + printer-uri + request-file + response-file + request-id + job-id + &key + (attributes-charset "utf-8") + (attributes-natural-language "en") + (requesting-user-name (user-name)) + job-hold-until) + (ipp ipp-client + printer-uri + request-file + response-file + nil + request-id + :restart-job + `((,(tag :operation-attributes-tag) + :attributes-charset ,attributes-charset + :attributes-natural-language ,attributes-natural-language + :printer-uri ,printer-uri + :requesting-user-name ,requesting-user-name + :job-id ,job-id + :job-hold-until ,job-hold-until)))) (defun pause-printer (ipp-client printer-uri @@ -872,7 +998,7 @@ 314) #+nil -(ipp:get-printer-attributes ;; TODO fix read-attribute +(ipp:get-printer-attributes 'ipp-client "http://localhost:631/printers/Virtual_PDF_Printer" "request2.dat" @@ -880,7 +1006,7 @@ 314) #+nil -(ipp:get-printer-attributes +(ipp:get-printer-attributes ;; TODO fix 'ipp-client "http://localhost:631/printers/Virtual_PDF_Printer" "request2.dat"