1 jls.loader.provide('jls.io.Pipe');
  2 
  3 jls.loader.requireLibrary('jls_io');
  4 
  5 jls.loader.require('jls.io.FileDescriptor');
  6 
  7 jls.io.Pipe = jls.lang.Class.create( /** @lends jls.io.Pipe.prototype */
  8 {
  9     /**
 10      * Creates a pipe.
 11      * 
 12      * @constructs
 13      * @class This class represents a pipe.
 14      */
 15     initialize : function() {
 16         var pipe = _native.io.createPipe();
 17         this._sink = new jls.io.FileDescriptor(pipe[0]);
 18         this._source = new jls.io.FileDescriptor(pipe[1]);
 19     },
 20     /**
 21      * Returns the sink file descriptor.
 22      *
 23      * @returns {jls.io.FileDescriptor} The sink.
 24      */
 25     sink : function() {
 26         return this._sink;
 27     },
 28     /**
 29      * Returns the source file descriptor.
 30      *
 31      * @returns {jls.io.FileDescriptor} The source.
 32      */
 33     source : function() {
 34         return this._source;
 35     },
 36     /**
 37      * Closes the pipe.
 38      *
 39      */
 40     close : function() {
 41         this._sink.close();
 42         this._source.close();
 43     }
 44 });
 45 
 46 
 47 Object.extend(jls.io.Pipe, /** @lends jls.io.Pipe */
 48 {
 49     /**
 50      * Opens a pipe.
 51      * 
 52      * @returns {jls.io.Pipe} The new pipe.
 53      */
 54     open : function() {
 55         return new jls.io.Pipe();
 56     }
 57 });
 58 
 59