moss.ipc
Class MPipe

java.lang.Object
  extended by moss.ipc.MPipe
All Implemented Interfaces:
MFileOps

public class MPipe
extends java.lang.Object
implements MFileOps

This implements the "pipe" IPC mechanism


Field Summary
 
Fields inherited from interface moss.fs.MFileOps
F_GETFL, F_OK, F_SETFL, LSEEK_BEG, LSEEK_CUR, LSEEK_END, O_CLOEXEC, O_NONBLOCK, OPEN_CREAT, OPEN_READ, OPEN_TRUNC, OPEN_WRITE, R_OK, W_OK, X_OK
 
Constructor Summary
MPipe()
          initialises the pipe to its blank state
 
Method Summary
 int close(MFile handle)
          called when closing (destroying) a pipe
 int fcntl(MFile handle, int op, int arg)
          not supported by pipes
 int lseek(MFile handle, int offset, int whence)
          not supported by pipes
 int open(MFile handle, int flags)
          called when creating a pipe; stores reference to self in the file-handle.
 int read(MFile handle, byte[] buffer, int count)
          called to read data from a pipe
 int write(MFile handle, byte[] buffer, int count)
          called to write data into the pipe
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

MPipe

public MPipe()
initialises the pipe to its blank state

Method Detail

open

public int open(MFile handle,
                int flags)
called when creating a pipe; stores reference to self in the file-handle. to determine whether it is the reading or writer, `flags' is either OPEN_READ or OPEN_WRITE.

Specified by:
open in interface MFileOps
Parameters:
handle - file-handle
flags - open flags
Returns:
0 on success or < 0 on error

close

public int close(MFile handle)
called when closing (destroying) a pipe

Specified by:
close in interface MFileOps
Parameters:
handle - file-handle
Returns:
0 on success or < 0 on error

lseek

public int lseek(MFile handle,
                 int offset,
                 int whence)
not supported by pipes

Specified by:
lseek in interface MFileOps
Parameters:
handle - file-handle
offset - byte-offset relative to "whence" (block offset for block devices)
whence - constant indicating position seek should occur from
Returns:
new absolute offset or < 0 indicating error

read

public int read(MFile handle,
                byte[] buffer,
                int count)
called to read data from a pipe

Specified by:
read in interface MFileOps
Parameters:
handle - file-handle
buffer - buffer where data will be stored
count - maximum number of bytes to read
Returns:
number of bytes read, 0 on end-of-file, or < 0 on error

write

public int write(MFile handle,
                 byte[] buffer,
                 int count)
called to write data into the pipe

Specified by:
write in interface MFileOps
Parameters:
handle - file handle
buffer - data to write
count - number of bytes to write
Returns:
number of bytes written or < 0 on error

fcntl

public int fcntl(MFile handle,
                 int op,
                 int arg)
not supported by pipes

Specified by:
fcntl in interface MFileOps
Parameters:
handle - file-handle
op - operation to perform
arg - argument to operation (if applicable)
Returns:
>= 0 on success, or < 0 indicating failure