samer@0
|
1 (define (ifstream fn) (java.io.FileInputStream. fn))
|
samer@0
|
2 (define (ofstream fn) (java.io.FileOutputStream. fn))
|
samer@0
|
3 (define (fwriter fn) (java.io.FileWriter. fn))
|
samer@0
|
4 (define (freader fn) (java.io.FileReader. fn))
|
samer@0
|
5
|
samer@0
|
6 (define-method (buffer (in java.io.InputStream)) (java.io.BufferedInputStream. in))
|
samer@0
|
7 (define-method (buffer (out java.io.OutputStream)) (java.io.BufferedOutputStream. out))
|
samer@0
|
8 (define-method (buffer (in java.io.Reader)) (java.io.BufferedReader. in))
|
samer@0
|
9 (define-method (buffer (out java.io.Writer)) (java.io.BufferedWriter. out))
|
samer@0
|
10
|
samer@0
|
11 (define (make-pipe)
|
samer@0
|
12 (define writer (java.io.PipedOutputStream.))
|
samer@0
|
13 (define reader (java.io.PipedInputStream. writer))
|
samer@0
|
14 (list writer reader)
|
samer@0
|
15 )
|
samer@0
|
16
|
samer@0
|
17 (define-method (send (pipe Pair) (x Vec)) (VecToStream. x (first pipe)))
|
samer@0
|
18 (define-method (recv (pipe Pair) (x Vec)) (StreamToVec. x (second pipe)))
|
samer@0
|
19 (define-method (send (pipe Pair) (x DoubleModel)) (SignalToStream. x (first pipe)))
|
samer@0
|
20 (define-method (recv (pipe Pair) (x DoubleModel)) (StreamToDouble. x (second pipe)))
|
samer@0
|
21
|
samer@0
|
22 (define (with-infile fname proc)
|
samer@0
|
23 (let* ( (f (ifstream fname))
|
samer@0
|
24 (rc (proc f)))
|
samer@0
|
25 (.close f) rc))
|
samer@0
|
26
|
samer@0
|
27 (define (with-outfile fname proc)
|
samer@0
|
28 (let* ( (f (ofstream fname))
|
samer@0
|
29 (rc (proc f)))
|
samer@0
|
30 (.close f) rc))
|
samer@0
|
31
|
samer@0
|
32 (define (with thing proc)
|
samer@0
|
33 (let ((rc (proc thing)))
|
samer@0
|
34 (.close thing) rc))
|
samer@0
|
35
|
samer@0
|
36 (define (oostream s) (java.io.ObjectOutputStream. s))
|
samer@0
|
37 (define (iostream s) (java.io.ObjectInputStream. s))
|
samer@0
|
38
|
samer@0
|
39
|
samer@0
|
40 ;; convert saveable from binary to text
|
samer@0
|
41 (define (totext thing file txtfile)
|
samer@0
|
42 (with (ifstream file) (lambda (f) (.load thing f)))
|
samer@0
|
43 (with (fwriter txtfile) (lambda (f) (.write thing f))))
|