()
| 221 | } |
| 222 | |
| 223 | func new_file_reader() *file_reader_type { |
| 224 | this := new(file_reader_type) |
| 225 | this.in = make(chan file_read_request) |
| 226 | go func() { |
| 227 | var rsp file_read_response |
| 228 | for { |
| 229 | req := <-this.in |
| 230 | rsp.data, rsp.error = ioutil.ReadFile(req.filename) |
| 231 | req.out <- rsp |
| 232 | } |
| 233 | }() |
| 234 | return this |
| 235 | } |
| 236 | |
| 237 | func (this *file_reader_type) read_file(filename string) ([]byte, error) { |
| 238 | req := file_read_request{ |