Examples of StreamRequestMessage


Examples of ch.ethz.iks.r_osgi.messages.StreamRequestMessage

   * @return result of the read operation.
   * @throws IOException
   *             when an IOException occurs.
   */
  public int readStream(final short streamID) throws IOException {
    final StreamRequestMessage requestMsg = new StreamRequestMessage();
    requestMsg.setOp(StreamRequestMessage.READ);
    requestMsg.setStreamID(streamID);
    final StreamResultMessage resultMsg = doStreamOp(requestMsg);
    return resultMsg.getResult();
  }
View Full Code Here

Examples of ch.ethz.iks.r_osgi.messages.StreamRequestMessage

      throw new IndexOutOfBoundsException();
    }
    if (len == 0) {
      return 0;
    }
    final StreamRequestMessage requestMsg = new StreamRequestMessage();
    requestMsg.setOp(StreamRequestMessage.READ_ARRAY);
    requestMsg.setStreamID(streamID);
    requestMsg.setLenOrVal(len);
    final StreamResultMessage resultMsg = doStreamOp(requestMsg);
    final int length = resultMsg.getLen();
    // check the length first, could be -1 indicating EOF
    if (length > 0) {
      final byte[] readdata = resultMsg.getData();
View Full Code Here

Examples of ch.ethz.iks.r_osgi.messages.StreamRequestMessage

   * @throws IOException
   *             when an IOException occurs.
   */
  public void writeStream(final short streamID, final int b)
      throws IOException {
    final StreamRequestMessage requestMsg = new StreamRequestMessage();
    requestMsg.setOp(StreamRequestMessage.WRITE);
    requestMsg.setStreamID(streamID);
    requestMsg.setLenOrVal(b);
    // wait for the stream operation to finish
    doStreamOp(requestMsg);
  }
View Full Code Here

Examples of ch.ethz.iks.r_osgi.messages.StreamRequestMessage

      throw new IndexOutOfBoundsException();
    }
    final byte[] data = new byte[len];
    System.arraycopy(b, off, data, 0, len);

    final StreamRequestMessage requestMsg = new StreamRequestMessage();
    requestMsg.setOp(StreamRequestMessage.WRITE_ARRAY);
    requestMsg.setStreamID(streamID);
    requestMsg.setData(data);
    requestMsg.setLenOrVal(len);
    // wait for the stream operation to finish
    doStreamOp(requestMsg);
  }
View Full Code Here

Examples of ch.ethz.iks.r_osgi.messages.StreamRequestMessage

      // add timestamp to the message and return the message to sender
      ((TimeOffsetMessage) msg).timestamp();
      return msg;
    }
    case RemoteOSGiMessage.STREAM_REQUEST: {
      final StreamRequestMessage reqMsg = (StreamRequestMessage) msg;
      try {
        // fetch stream object
        final Object stream = streams.get(new Integer(reqMsg
            .getStreamID()));
        if (stream == null) {
          throw new IllegalStateException(
              "Could not get stream with ID " //$NON-NLS-1$
                  + reqMsg.getStreamID());
        }
        // invoke operation on stream
        switch (reqMsg.getOp()) {
        case StreamRequestMessage.READ: {
          final int result = ((InputStream) stream).read();
          final StreamResultMessage m = new StreamResultMessage();
          m.setXID(reqMsg.getXID());
          m.setResult((short) result);
          return m;
        }
        case StreamRequestMessage.READ_ARRAY: {
          final byte[] b = new byte[reqMsg.getLenOrVal()];
          final int len = ((InputStream) stream).read(b, 0, reqMsg
              .getLenOrVal());
          final StreamResultMessage m = new StreamResultMessage();
          m.setXID(reqMsg.getXID());
          m.setResult(StreamResultMessage.RESULT_ARRAY);
          m.setLen(len);
          if (len > 0) {
            m.setData(b);
          }
          return m;
        }
        case StreamRequestMessage.WRITE: {
          ((OutputStream) stream).write(reqMsg.getLenOrVal());
          final StreamResultMessage m = new StreamResultMessage();
          m.setXID(reqMsg.getXID());
          m.setResult(StreamResultMessage.RESULT_WRITE_OK);
          return m;
        }
        case StreamRequestMessage.WRITE_ARRAY: {
          ((OutputStream) stream).write(reqMsg.getData());
          final StreamResultMessage m = new StreamResultMessage();
          m.setXID(reqMsg.getXID());
          m.setResult(StreamResultMessage.RESULT_WRITE_OK);
          return m;
        }
        default:
          throw new RemoteOSGiException(
              "Unimplemented op code for stream request " + msg); //$NON-NLS-1$
        }
      } catch (final IOException e) {
        final StreamResultMessage m = new StreamResultMessage();
        m.setXID(reqMsg.getXID());
        m.setResult(StreamResultMessage.RESULT_EXCEPTION);
        m.setException(e);
        return m;
      }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.