annotate file.rhope @ 79:80d8c9248f85

Began work on File
author Mike Pavone <pavone@retrodev.com>
date Sat, 10 Jul 2010 18:02:04 -0400
parents
children d78613686a38
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
79
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3 Blueprint Stat
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 Blueprint File
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 Name
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13 Blueprint File Read
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 Name
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 Descriptor(Int32,Naked)
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17 Info
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
18 Buffer
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
19 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
20
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
21 Blueprint File Write
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
22 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
23 Name
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
24 Descriptor(Int32,Naked)
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
25 Info
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
26 Buffer
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
27 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
28
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
29 Blueprint File ReadWrite
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
30 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
31 Name
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
32 Read Offset(Int64,Naked)
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
33 Descriptor(Int32,Naked)
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
34 Info
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
35 Buffer
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
36 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
37
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
38 File[name:out]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
39 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
40 out <- [Build[File()]]Name <<[name]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
41 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
42
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
43
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
44 Open@File[file,mode:out,error]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
45 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
46 If[[mode]=["r"]]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
47 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
48 imode <-
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
49 type <- File Read()
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
50 out <- Val[ofile]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
51 }{
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
52 If[[mode]=["w"]]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
53 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
54 imode <-
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
55 type <- File Write()
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
56 out <- Val[ofile]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
57 }{
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
58 ,error <- If[[mode]=["rw"]]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
59 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
60 imode <-
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
61 type <- File ReadWrite()
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
62 out <- [ofile]Read Offset <<[0i64]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
63 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
64 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
65 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
66 fd <- open[[file]Name >>]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
67 error <- If[[fd]=[-1i32]] {}
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
68 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
69 ofile <- [[[[Build[type]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
70 ]Name <<[ [file]Name >> ]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
71 ]Descriptor <<[fd]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
72 ]Info <<[Stat[fd]]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
73 ]Buffer <<[Array[]]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
74 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
75 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
76
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
77 Read@File[file,bytes:data,outfile,error]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
78 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
79 ,error <- [file]Open["r"]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
80 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
81 data,outfile,error <- [~]Read[bytes]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
82 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
83 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
84
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
85 Append@File[file,data:out,error]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
86 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
87 ,error <- [file]Open["w"]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
88 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
89 out,error <- [~]Append[data]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
90 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
91 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
92
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
93 String@File[file:out,error]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
94 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
95 ,error <- [file]Open["w"]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
96 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
97 out,error <- String[~]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
98 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
99 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
100
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
101 Read@File Read[file,inbytes(Int32):data,outfile,error]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
102 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
103 buflen <- [[file]Buffer >>]Length
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
104 If[buflen]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
105 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
106 If[[inbytes]=[buflen]]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
107 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
108 data <- [file]Buffer >>
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
109 outfile <- [file]Buffer <<[Array[]]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
110 }{
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
111 If[[inbytes]<[buflen]]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
112 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
113
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
114 }{
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
115
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
116 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
117 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
118 }{
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
119 readbytes, mdata <- read[[file]Descriptor >>, [Array[]]Set[inbytes, 0u8], Int64[inbytes]]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
120 error <- If[[readbytes]<[0i64]] {}
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
121 {
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
122 outfile <- file
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
123 data <- [mdata]Length <<[ Trunc Int32[readbytes] ]
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
124 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
125
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
126 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
127 }
80d8c9248f85 Began work on File
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
128