Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(223)

Unified Diff: frog/lib/node/fs.dart

Issue 9034014: Add support for the node net module. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: new version of minfrog Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: frog/lib/node/fs.dart
===================================================================
--- frog/lib/node/fs.dart (revision 0)
+++ frog/lib/node/fs.dart (revision 0)
@@ -0,0 +1,497 @@
+// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+#library('fs');
+
+#import('node.dart');
+#import('nodeimpl.dart');
+
+
+typedef ReadStreamOpenListener(int fd);
+
+class ReadStream implements ReadableStream, FsStream native "*ReadStream" {
+ // EventEmitter
+ void removeAllListeners(String event) native;
+ void setMaxListeners(num n) native;
+ var _listeners(String key)
+ native "return this.listeners(key);";
+
+ // CommonStream
+
+ // Error event
+ void emitError(Error error)
+ native "this.emit('error', error);";
+ void addListenerError(StreamErrorListener listener)
+ native "this.addListener('error', listener);";
+ void onError(StreamErrorListener listener)
+ native "this.on('error', listener);";
+ void onceError(StreamErrorListener listener)
+ native "this.once('error', listener);";
+ void removeListenerError(StreamErrorListener listener)
+ native "this.removeListener('error', listener);";
+ List<StreamErrorListener> listenersError()
+ => new _NativeListPrimitiveElement<StreamErrorListener>(_listeners(
+ 'error'));
+
+ // Close event
+ void emitClose()
+ native "this.emit('close');";
+ void addListenerClose(StreamCloseListener listener)
+ native "this.addListener('close', listener);";
+ void onClose(StreamCloseListener listener)
+ native "this.on('close', listener);";
+ void onceClose(StreamCloseListener listener)
+ native "this.once('close', listener);";
+ void removeListenerClose(StreamCloseListener listener)
+ native "this.removeListener('close', listener);";
+ List<StreamCloseListener> listenersClose()
+ => new _NativeListPrimitiveElement<StreamCloseListener>(_listeners(
+ 'close'));
+
+ // ReadableStream
+
+ // Data event
+ void emitData(var data)
+ native "this.emit('data', data);";
+ void addListenerData(ReadableStreamDataListener listener)
+ native "this.addListener('data', listener);";
+ void onData(ReadableStreamDataListener listener)
+ native "this.on('data', listener);";
+ void onceData(ReadableStreamDataListener listener)
+ native "this.once('data', listener);";
+ void removeListenerData(ReadableStreamDataListener listener)
+ native "this.removeListener('data', listener);";
+ List<ReadableStreamDataListener> listenerData()
+ => new _NativeListPrimitiveElement<ReadableStreamDataListener>(_listeners(
+ 'data'));
+
+ // End event
+ void emitEnd()
+ native "this.emit('end');";
+ void addListenerEnd(ReadableStreamEndListener listener)
+ native "this.addListener('end', listener);";
+ void onEnd(ReadableStreamEndListener listener)
+ native "this.on('end', listener);";
+ void onceEnd(ReadableStreamEndListener listener)
+ native "this.once('end', listener);";
+ void removeListenerEnd(ReadableStreamEndListener listener)
+ native "this.removeListener('end', listener);";
+ List<ReadableStreamEndListener> listenersEnd()
+ => new _NativeListPrimitiveElement<ReadableStreamEndListener>(_listeners(
+ 'end'));
+
+ // FsStream
+
+ // Open event
+ void emitOpen(int fd)
+ native "this.emit('open', fd);";
+ void addListenerOpen(FsStreamOpenListener listener)
+ native "this.addListener('open', listener);";
+ void onOpen(FsStreamOpenListener listener)
+ native "this.on('open', listener);";
+ void onceOpen(FsStreamOpenListener listener)
+ native "this.once('open', listener);";
+ void removeListenerOpen(FsStreamOpenListener listener)
+ native "this.removeListener('open', listener);";
+ List<FsStreamOpenListener> listenersOpen()
+ => new _NativeListPrimitiveElement<FsStreamOpenListener>(_listeners(
+ 'open'));
+
+ bool readable;
+ void setEncoding(String encoding) native;
+ void pause() native;
+ void resume() native;
+ void destroy() native;
+ void destroySoon() native;
+ WritableStream pipe(WritableStream destination, [Map options]) native;
+}
+
+class WriteStream implements WritableStream, FsStream native "*WriteStream" {
+ // EventEmitter
+ void removeAllListeners(String event)
+ native "this._writeStream.removeAllListeners(event);";
+ void setMaxListeners(num n) native;
+ var _listeners(String key)
+ native "return this.listeners(key);";
+
+ // CommonStream
+
+ // Error event
+ void emitError(Error error)
+ native "this.emit('error', error);";
+ void addListenerError(StreamErrorListener listener)
+ native "this.addListener('error', listener);";
+ void onError(StreamErrorListener listener)
+ native "this.on('error', listener);";
+ void onceError(StreamErrorListener listener)
+ native "this.once('error', listener);";
+ void removeListenerError(StreamErrorListener listener)
+ native "this.removeListener('error', listener);";
+ List<StreamErrorListener> listenersError()
+ => new _NativeListPrimitiveElement<StreamErrorListener>(_listeners(
+ 'error'));
+
+ // Close event
+ void emitClose()
+ native "this.emit('close');";
+ void addListenerClose(StreamCloseListener listener)
+ native "this.addListener('close', listener);";
+ void onClose(StreamCloseListener listener)
+ native "this.on('close', listener);";
+ void onceClose(StreamCloseListener listener)
+ native "this.once('close', listener);";
+ void removeListenerClose(StreamCloseListener listener)
+ native "this.removeListener('close', listener);";
+ List<StreamCloseListener> listenersClose()
+ => new _NativeListPrimitiveElement<StreamCloseListener>(_listeners(
+ 'close'));
+
+ // WritableStream
+
+ // Drain event
+ void emitDrain()
+ native "this.emit('drain');";
+ void addListenerDrain(WritableStreamDrainListener listener)
+ native "this.addListener('drain', listener);";
+ void onDrain(WritableStreamDrainListener listener)
+ native "this.on('drain', listener);";
+ void onceDrain(WritableStreamDrainListener listener)
+ native "this.once('drain', listener);";
+ void removeListenerDrain(WritableStreamDrainListener listener)
+ native "this.removeListener('drain', listener);";
+ List<WritableStreamDrainListener> listenersDrain()
+ => new _NativeListPrimitiveElement<WritableStreamDrainListener>(_listeners(
+ 'drain'));
+
+ // Pipe event
+ void emitPipe(ReadableStream src)
+ native "this.emit('pipe', src);";
+ void addListenerPipe(WritableStreamPipeListener listener)
+ native "this.addListener('pipe', listener);";
+ void onPipe(WritableStreamPipeListener listener)
+ native "this.on('pipe', listener);";
+ void oncePipe(WritableStreamPipeListener listener)
+ native "this.once('pipe', listener);";
+ void removeListenerPipe(WritableStreamPipeListener listener)
+ native "this.removeListener('pipe', listener);";
+ List<WritableStreamPipeListener> listenersPipe()
+ => new _NativeListPrimitiveElement<WritableStreamPipeListener>(_listeners(
+ 'pipe'));
+
+ // FsStream
+
+ // Open event
+ void emitOpen(int fd)
+ native "this.emit('open', fd);";
+ void addListenerOpen(FsStreamOpenListener listener)
+ native "this.addListener('open', listener);";
+ void onOpen(FsStreamOpenListener listener)
+ native "this.on('open', listener);";
+ void onceOpen(FsStreamOpenListener listener)
+ native "this.once('open', listener);";
+ void removeListenerOpen(FsStreamOpenListener listener)
+ native "this.removeListener('open', listener);";
+ List<FsStreamOpenListener> listenersOpen()
+ => new _NativeListPrimitiveElement<FsStreamOpenListener>(_listeners(
+ 'open'));
+
+ bool writable;
+ bool write(String string, [String encoding='utf8', int fd]) native;
+ bool writeBuffer(Buffer buffer) native;
+ void end([String string, String encoding]) native;
+ void endBuffer(Buffer buffer) native "this.end(buffer);";
+ void destroy() native;
+ void destroySoon() native;
+
+ List<int> getWindowSize() => new _NativeListPrimitiveElement<int>
+ (_getWindowSize());
+ var _getWindowSize() native "return this.getWindowSize();";
+
+ int bytesWritten;
+}
+
+typedef void FsRenameCallback(Error err);
+typedef void FsTruncateCallback(Error err);
+typedef void FsChownCallback(Error err);
+typedef void FsFchownCallback(Error err);
+typedef void FsLchownCallback(Error err);
+typedef void FsChmodCallback(Error err);
+typedef void FsFchmodCallback(Error err);
+typedef void FsLchmodCallback(Error err);
+typedef void FsStatCallback(Error err, Stats stats);
+typedef void FsLstatCallback(Error err, Stats stats);
+typedef void FsFstatCallback(Error err, Stats stats);
+typedef void FsLinkCallback(Error err);
+typedef void FsSymlinkCallback(Error err);
+typedef void FsReadlinkCallback(Error err, String linkString);
+typedef void FsRealpathCallback(Error err, String resolvedPath);
+typedef void FsUnlinkCallback(Error err);
+typedef void FsRmdirCallback(Error err);
+typedef void FsMkdirCallback(Error err);
+typedef void FsReaddirCallback(Error err, List<String> files);
+typedef void FsCloseCallback(Error err);
+typedef void FsOpenCallback(Error err);
+typedef void FsUtimesCallback(Error err);
+typedef void FsFutimesCallback(Error err);
+typedef void FsFsyncCallback(Error err);
+typedef void FsWriteCallback(Error err, int written, Buffer buffer);
+typedef void FsReadCallback(Error err, int bytesRead, Buffer buffer);
+typedef void FsReadFileCallback(Error err, String data);
+typedef void FsReadFileBufferCallback(Error err, Buffer data);
+typedef void FsWriteFileCallback(Error err);
+typedef void FsWriteFileBufferCallback(Error err);
+typedef void FsWatchFileListener(Stats curr, Stats prev);
+
+class Fs {
+ var _fs;
+ Fs.from(this._fs);
+
+ void rename(String path1, String path2, [FsRenameCallback callback])
+ native "this._fs.rename(path1, path2, callback);";
+ void renameSync(String path1, String path2)
+ native "this._fs.renameSync(path1, path2);";
+
+ void truncate(int fd, int len, [FsTruncateCallback callback])
+ native "this._fs.truncate(fd, len, callback);";
+ void truncateSync(int fd, int len)
+ native "this._fs.truncateSync(fd, len);";
+
+ void chown(String path, int uid, int gid, [FsChownCallback callback])
+ native "this._fs.chown(path, uid, gid, callback);";
+ void chownSync(String path, int uid, int gid)
+ native "this._fs.chownSync(path, uid, gid);";
+
+ void fchown(int fd, int uid, int gid, [FsFchownCallback callback])
+ native "this._fs.fchown(fd, uid, gid, callback);";
+ void fchownSync(int fd, int uid, int gid)
+ native "this._fs.fchownSync(fd, uid, gid);";
+
+ void lchown(String path, int uid, int gid, [FsFchownCallback callback])
+ native "this._fs.lchown(path, uid, gid, callback);";
+ void lchownSync(String path, int uid, int gid)
+ native "this._fs.lchownSync(path, uid, gid);";
+
+ void chmod(String path, int mode, [FsChmodCallback callback])
+ native "this._fs.chmod(path, mode, callback);";
+ void chmodSync(String path, int mode)
+ native "this._fs.chmodSync(path, mode);";
+
+ void fchmod(int fd, int mode, [FsFchmodCallback callback])
+ native "this._fs.fchmod(fd, mode, callback);";
+ void fchmodSync(int fd, int mode)
+ native "this._fs.fchmodSync(fd, mode);";
+
+ void lchmod(String path, int mode, [FsLchmodCallback callback])
+ native "this._fs.lchmod(path, mode, callback);";
+ void lchmodSync(String path, int mode)
+ native "this._fs.lchmodSync(path, mode);";
+
+ void stat(String path, [FsStatCallback callback])
+ native "this._fs.stat(path, callback);";
+ void lstat(String path, [FsLstatCallback callback])
+ native "this._fs.lstat(path, callback);";
+ void fstat(int fd, [FsFstatCallback callback])
+ native "this._fs.fstat(fd, callback);";
+
+ Stats statSync(String path)
+ native "return this._fs.statSync(path);";
+ Stats lstatSync(String path)
+ native "return this._fs.lstatSync(path);";
+ Stats fstatSync(int fd)
+ native "return this._fs.fstatSync(fd);";
+
+ void link(String srcpath, String dstpath, [FsLinkCallback callback])
+ native "this._fs.link(srcpath, dstpath, callback);";
+ void linkSync(String srcpath, String dstpath)
+ native "this._fs.linkSync(srcpath, dstpath);";
+
+ void symlink(String linkdata, String path, [FsSymlinkCallback callback])
+ native "this._fs.symlink(linkdata, path, callback);";
+ void symlinkSync(String linkdata, String path)
+ native "this._fs.symlinkSync(linkdata, path);";
+
+ void readlink(String path, [FsReadlinkCallback callback])
+ native "this._fs.readlink(path, callback);";
+ String readlinkSync(String path)
+ native "return this._fs.readlinkSync(path);";
+
+ void realpath(String path, [FsRealpathCallback callback])
+ native "this._fs.realpath(path, callback);";
+ String realpathSync(String path)
+ native "return this._fs.realpathSync(path);";
+
+ void unlink(String path, [FsUnlinkCallback callback])
+ native "this._fs.unlink(path, callback);";
+ void unlinkSync(String path)
+ native "this._fs.unlinkSync(path);";
+
+ void rmdir(String path, [FsRmdirCallback callback])
+ native "this._fs.rmdir(path, callback);";
+ void rmdirSync(String path)
+ native "this._fs.rmdirSync(path);";
+
+ void mkdir(String path, [int mode = 511 /* 0777 octal */, FsMkdirCallback
+ callback])
+ native "this._fs.mkdir(path, mode, callback);";
+ void mkdirSync(String path, [int mode = 511 /* 0777 octal */])
+ native "this._fs.mkdirSync(path, mode);";
+
+ void readdir(String path, [FsReaddirCallback callback])
+ native "this._fs.readdir(path, callback);";
+ List<String> readdirSync(String path)
+ => new _NativeListPrimitiveElement<String>(_readdirSync(path));
+ var _readdirSync(String path)
+ native "return this._fs.readdirSync(path);";
+
+ void close(int fd, [FsCloseCallback callback])
+ native "this._fs.close(fd, callback);";
+ void closeSync(int fd)
+ native "this._fs.closeSync(fd);";
+
+ void open(String path, String flags, [int mode = 438 /* 0666 octal */,
+ FsOpenCallback callback])
+ native "this._fs.open(path, flags, mode, callback);";
+ void openSync(String path, String flags, [int mode = 438 /* 0666 octal */])
+ native "this._fs.openSync(path, flags, mode);";
+
+ void utimes(String path, int atime, int mtime, [FsUtimesCallback callback])
+ native "this._fs.utimes(path, atime, mtime, callback);";
+ void utimesSync(String path, int atime, int mtime)
+ native "this._fs.utimesSync(path, atime, mtime);";
+
+ void futimes(int fd, int atime, int mtime, [FsUtimesCallback callback])
+ native "this._fs.futimes(fd, atime, mtime, callback);";
+ void futimesSync(int fd, int atime, int mtime)
+ native "this._fs.futimesSync(fd, atime, mtime);";
+
+ void fsync(int fd, [FsFsyncCallback callback])
+ native "this._fs.fsync(fd, callback);";
+ void fsyncSync(int fd)
+ native "this._fs.fsyncSync(fd);";
+
+ void write(int fd, Buffer buffer, int offset, int length, int position,
+ [FsWriteCallback callback])
+ native "this._fs.write(fd, buffer, offset, length, position, callback);";
+ int writeBufferSync(int fd, Buffer buffer, int offset, int length, int
+ position)
+ native
+ "return this._fs.writeBufferSync(fd, buffer, offset, length, position);";
+ int writeSync(int fd, String str, [int position, String encoding='utf8'])
+ native "return this._fs.writeSync(fd, str, position, encoding);";
+
+ void read(int fd, String buffer, int offset, int length, int position,
+ [FsReadCallback callback])
+ native "this._fs.read(fd, buffer, offset, length, position, callback);";
+ int readBufferSync(int fd, String buffer, int offset, int length, int position
+ )
+ native "return this._fs.readSync(fd, buffer, offset, length, position);";
+ String readSync(int fd, int length, int position, String encoding)
+ native "return this._fs.readSync(fd, length, position, encoding);";
+
+ void readFile(String filename, [String encoding=
+ 'utf8', FsReadFileCallback callback])
+ native "this._fs.readFile(filename, encoding, callback);";
+ String readFileSync(String filename, [String encoding='utf8'])
+ native "return this._fs.readFileSync(filename, encoding);";
+
+ void readFileBuffer(String filename, [FsReadFileBufferCallback callback])
+ native "this._fs.readFile(filename, callback);";
+ Buffer readFileBufferSync(String filename)
+ native "return this._fs.readFileSync(filename);";
+
+ void writeFile(String filename, String data, [String encoding=
+ 'utf8', FsWriteFileCallback callback])
+ native "this._fs.writeFile(filename, data, encoding, callback);";
+ void writeFileSync(String filename, String data, [String encoding='utf8'])
+ native "this._fs.writeFileSync(filename, data, encoding);";
+
+ void writeFileBuffer(String filename, Buffer data, [FsWriteFileBufferCallback
+ callback])
+ native "this._fs.writeFile(filename, data, callback);";
+ void writeFileBufferSync(String filename, Buffer data)
+ native "this._fs.writeFile(filename, data);";
+
+ void watchFile(String filename, FsWatchFileListener listener, [Map options])
+ native "this._fs.watchFile(filename, options, listener);";
+ void unwatchFile(String filename)
+ native "this._fs.unwatchFile(filename);";
+ FSWatcher watch(String filename, FSWatcherChangeListener listener, [Map
+ options])
+ native "return this._fs.watch(filename, options, listener);";
+
+ ReadStream createReadStream(String path, [Map options])
+ native "return this._fs.createReadStream(path, options);";
+ WriteStream createWriteStream(String path, [Map options])
+ native "return this._fs.createWriteStream(path, options);";
+}
+
+Fs get fs() => require('fs');
+
+class Stats native "fs.Stats" {
+ bool isFile() native;
+ bool isDirectory() native;
+ bool isBlockDevice() native;
+ bool isCharacterDevice() native;
+ bool isSymbolicLink() native;
+ bool isFIFO() native;
+ bool isSocket() native;
+
+ int dev;
+ int ino;
+ int mode;
+ int nlink;
+ int uid;
+ int gid;
+ int rdev;
+ int size;
+ int blksize;
+ int blocks;
+ Date atime;
+ Date mtime;
+ Date ctime;
+}
+
+typedef void FSWatcherErrorListener(Error err);
+typedef void FSWatcherChangeListener(String event, String filename);
+
+class FSWatcher native "*FSWatcher" {
+ void close() native;
+
+ // EventEmitter
+ void removeAllListeners(String event)
+ native "this._writeStream.removeAllListeners(event);";
+ void setMaxListeners(num n) native;
+ var _listeners(String key)
+ native "return this.listeners(key);";
+
+ // Error event
+ void emitError(Error error)
+ native "this.emit('error', error);";
+ void addListenerError(FSWatcherErrorListener listener)
+ native "this.addListener('error', listener);";
+ void onError(FSWatcherErrorListener listener)
+ native "this.on('error', listener);";
+ void onceError(FSWatcherErrorListener listener)
+ native "this.once('error', listener);";
+ void removeListenerError(FSWatcherErrorListener listener)
+ native "this.removeListener('error', listener);";
+ List<FSWatcherErrorListener> listenersError()
+ => new _NativeListPrimitiveElement<FSWatcherErrorListener>(_listeners(
+ 'error'));
+
+ // Change event
+ void emitChange(String event, String filename)
+ native "this.emit('change', event, filename);";
+ void addListenerChange(FSWatcherChangeListener listener)
+ native "this.addListener('change', listener);";
+ void onChange(FSWatcherChangeListener listener)
+ native "this.on('change', listener);";
+ void onceChange(FSWatcherChangeListener listener)
+ native "this.once('change', listener);";
+ void removeListenerChange(FSWatcherChangeListener listener)
+ native "this.removeListener('change', listener);";
+ List<FSWatcherChangeListener> listenersChange()
+ => new _NativeListPrimitiveElement<FSWatcherChangeListener>(_listeners(
+ 'change'));
+}
« no previous file with comments | « frog/lib/node/dns.dart ('k') | frog/lib/node/http.dart » ('j') | frog/lib/node/net.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698