123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package hl.uv;
- @:hlNative("uv")
- class Stream extends Handle {
- public function write( bytes : haxe.io.Bytes, ?onWrite : Bool -> Void, pos = 0, len = -1 ) {
- if( len < 0 ) len = bytes.length - pos;
- if( pos < 0 || len < 0 || pos+len > bytes.length ) throw haxe.io.Error.OutsideBounds;
- if( handle == null || !stream_write(handle, (bytes : hl.Bytes).offset(pos), len, onWrite) ) throw new haxe.io.Eof();
- }
- public function readStartRaw( onData : hl.Bytes -> Int -> Void ) {
- if( handle == null || !stream_read_start(handle, onData) ) throw new haxe.io.Eof();
- }
- public function readStart( onData : haxe.io.Bytes -> Void ) {
- readStartRaw(function(b, len) onData(if( len < 0 ) null else b.toBytes(len)));
- }
- public function readStop() {
- if( handle != null ) stream_read_stop(handle);
- }
- public function listen( n : Int, onConnect : Void -> Void ) {
- if( handle == null || !stream_listen(handle, n, onConnect) ) throw new haxe.io.Eof();
- }
- // --
- static function stream_write( handle : HandleData, bytes: hl.Bytes, len : Int, callb : Bool -> Void ) : Bool {
- return false;
- }
- static function stream_read_start( handle : HandleData, callb : hl.Bytes -> Int -> Void ) {
- return false;
- }
- static function stream_read_stop( handle : HandleData ) {
- }
- static function stream_listen( handle : HandleData, n : Int, callb : Void -> Void ) {
- return false;
- }
- }
|