Exemple #1
0
 @Override
 public boolean onReadable() {
   if (!mReady) {
     try {
       mOutput.source().register(AdbServer.server().selector(), 0, this);
     } catch (ClosedChannelException e) {
       e.printStackTrace();
       return false;
     }
   }
   mOutputBuffer.clear();
   int result = -1;
   try {
     result = mOutput.source().read(mOutputBuffer);
   } catch (IOException e) {
     e.printStackTrace();
   }
   if (result < 0) {
     // Pipe is closed.
     return false;
   } else if (result > 0) {
     mOutputBuffer.flip();
     AdbMessage message = new AdbMessage();
     message.data = new byte[result];
     mOutputBuffer.get(message.data);
     mPeer.enqueue(message);
     mReady = false;
   }
   return true;
 }
Exemple #2
0
  public void ready() {
    if (mInitialized == false) {
      mThread.start();
      mInitialized = true;
    }

    try {
      mOutput.source().register(AdbServer.server().selector(), SelectionKey.OP_READ, this);
      mReady = true;
    } catch (ClosedChannelException e) {
      e.printStackTrace();
      close();
    }
  }
Exemple #3
0
 @Override
 public boolean onWritable() {
   try {
     if (mInputBuffer != null) {
       mInput.sink().write(mInputBuffer);
       if (!mInputBuffer.hasRemaining()) mInputBuffer = null;
     }
     if (mInputBuffer == null) {
       mInput.sink().register(AdbServer.server().selector(), SelectionKey.OP_WRITE, this);
     }
     return true;
   } catch (IOException e) {
     e.printStackTrace();
     return false;
   }
 }
Exemple #4
0
 @Override
 public int enqueue(AdbMessage message) {
   if (mInputBuffer != null) return -1;
   mInputBuffer = ByteBuffer.wrap(message.data, 0, message.dataLength);
   try {
     mInput.sink().write(mInputBuffer);
   } catch (IOException e) {
     e.printStackTrace();
     mInputBuffer = null;
     return -1;
   }
   if (mInputBuffer.hasRemaining()) {
     try {
       mInput.sink().register(AdbServer.server().selector(), SelectionKey.OP_WRITE, this);
     } catch (ClosedChannelException e) {
       mInputBuffer = null;
       return -1;
     }
     return 1;
   }
   mInputBuffer = null;
   return 0;
 }