OLD | NEW |
---|---|
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 part of dart.io; | 5 part of dart.io; |
6 | 6 |
7 // Read the file in blocks of size 64k. | 7 // Read the file in blocks of size 64k. |
8 const int _BLOCK_SIZE = 64 * 1024; | 8 const int _BLOCK_SIZE = 64 * 1024; |
9 | 9 |
10 | 10 |
(...skipping 795 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
806 if (result is OSError) { | 806 if (result is OSError) { |
807 throw new FileIOException("writeByte failed for file '$_path'", | 807 throw new FileIOException("writeByte failed for file '$_path'", |
808 result); | 808 result); |
809 } | 809 } |
810 return result; | 810 return result; |
811 } | 811 } |
812 | 812 |
813 Future<RandomAccessFile> writeList(List<int> buffer, int offset, int bytes) { | 813 Future<RandomAccessFile> writeList(List<int> buffer, int offset, int bytes) { |
814 _ensureFileService(); | 814 _ensureFileService(); |
815 Completer<RandomAccessFile> completer = new Completer<RandomAccessFile>(); | 815 Completer<RandomAccessFile> completer = new Completer<RandomAccessFile>(); |
816 if (buffer is !List || offset is !int || bytes is !int) { | 816 if ((buffer is !List && buffer is !ByteData) || |
Anders Johnsen
2013/04/15 15:46:17
DBC: I believe this is wrong. We should not suppor
| |
817 offset is !int || | |
818 bytes is !int) { | |
817 // Complete asynchronously so the user has a chance to setup | 819 // Complete asynchronously so the user has a chance to setup |
818 // handlers without getting exceptions when registering the | 820 // handlers without getting exceptions when registering the |
819 // then handler. | 821 // then handler. |
820 Timer.run(() { | 822 Timer.run(() { |
821 completer.completeError(new FileIOException( | 823 completer.completeError(new FileIOException( |
822 "Invalid arguments to writeList for file '$_path'")); | 824 "Invalid arguments to writeList for file '$_path'")); |
823 }); | 825 }); |
824 return completer.future; | 826 return completer.future; |
825 } | 827 } |
826 if (closed) return _completeWithClosedException(completer); | 828 if (closed) return _completeWithClosedException(completer); |
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1050 new FileIOException("File closed '$_path'")); | 1052 new FileIOException("File closed '$_path'")); |
1051 }); | 1053 }); |
1052 return completer.future; | 1054 return completer.future; |
1053 } | 1055 } |
1054 | 1056 |
1055 final String _path; | 1057 final String _path; |
1056 int _id; | 1058 int _id; |
1057 | 1059 |
1058 SendPort _fileService; | 1060 SendPort _fileService; |
1059 } | 1061 } |
OLD | NEW |