Class AltsFraming.Parser

java.lang.Object
io.grpc.alts.internal.AltsFraming.Parser
Enclosing class:
AltsFraming

public static final class AltsFraming.Parser extends Object
A helper class to read a frame.

This class guarantees that one of the following is true:

  • readBytes will read from the input
  • writeBytes will write to the output

Sample usage:

Parser parser = new Parser();
ByteBuffer inputBuffer = readBytesFromMyStream();
ByteBuffer outputBuffer = writeBytesToMyStream();
while (inputBuffer.hasRemaining() || outputBuffer.hasRemaining()) {
  parser.readBytes(inputBuffer);
  parser.writeBytes(outputBuffer); }

Alternatively, this class guarantees that one of the following is true:

  • readBytes will read from the input
  • isComplete() returns true and getByteBuffer() returns the contents of a processed frame.

Sample usage:

Parser parser = new Parser();
while (!parser.isComplete()) {
  ByteBuffer inputBuffer = readBytesFromMyStream();
  parser.readBytes(inputBuffer);
}
ByteBuffer outputBuffer = parser.getRawFrame();
  • Constructor Details

    • Parser

      public Parser()
  • Method Details

    • readBytes

      public boolean readBytes(ByteBuffer input) throws GeneralSecurityException
      Reads bytes from input, parsing them into a frame. Returns false if and only if more data is needed. To obtain a full frame this method must be called repeatedly until it returns true.
      Throws:
      GeneralSecurityException
    • isComplete

      public boolean isComplete()
      Returns true if we've parsed a complete frame.
    • getRawFrame

      public ByteBuffer getRawFrame()
      Returns a ByteBuffer containing a complete raw frame, if it's available. Should only be called when isComplete() returns true, otherwise null is returned. The returned object aliases the internal buffer, that is, it shares memory with the internal buffer. No further operations are permitted on this object until the caller has processed the data it needs from the returned byte buffer.