public BufferedOutputFile getDirectBuffer() throws IOException {
    if (!PMS.get().isWindows()) {
      return null;
    }

    return mk.getDirectBuffer();
  }
  public OutputStream getOutputStream() throws IOException {
    if (!PMS.get().isWindows()) {
      LOGGER.trace("Opening file " + linuxPipeName + " for writing...");
      RandomAccessFile raf = new RandomAccessFile(linuxPipeName, "rw");

      return new FileOutputStream(raf.getFD());
    }

    return mk.getWritable();
  }
  public InputStream getInputStream() throws IOException {
    if (!PMS.get().isWindows()) {
      LOGGER.trace("Opening file " + linuxPipeName + " for reading...");
      RandomAccessFile raf = new RandomAccessFile(linuxPipeName, "r");

      return new FileInputStream(raf.getFD());
    }

    return mk.getReadable();
  }
 public String getOutputPipe() {
   if (!PMS.get().isWindows()) {
     return linuxPipeName;
   }
   return mk.getPipeName();
 }