Package io.grpc.alts.internal
Class AltsFraming.Producer
- java.lang.Object
-
- io.grpc.alts.internal.AltsFraming.Producer
-
- Enclosing class:
- AltsFraming
static final class AltsFraming.Producer extends java.lang.Object
A helper class to write 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:
Producer producer = new Producer(); ByteBuffer inputBuffer = readBytesFromMyStream(); ByteBuffer outputBuffer = writeBytesToMyStream(); while (inputBuffer.hasRemaining() || outputBuffer.hasRemaining()) { producer.readBytes(inputBuffer); producer.writeBytes(outputBuffer); }
Alternatively, this class guarantees that one of the following is true:
- readBytes will read from the input
isComplete()
returns true andgetByteBuffer()
returns the contents of a processed frame.
Sample usage:
Producer producer = new Producer(); while (!producer.isComplete()) { ByteBuffer inputBuffer = readBytesFromMyStream(); producer.readBytes(inputBuffer); } producer.flush(); ByteBuffer outputBuffer = producer.getRawFrame();
-
-
Field Summary
Fields Modifier and Type Field Description private java.nio.ByteBuffer
buffer
private boolean
isComplete
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
flush()
Completes the current frame, signaling that no further data is available to be passed to readBytes and that the client requires writeBytes to start returning data.(package private) int
getFramePrefixLength()
The length of the frame prefix data, including the message length/type fields.(package private) int
getFrameSuffixLength()
(package private) java.nio.ByteBuffer
getRawFrame()
Returns a ByteBuffer containing a complete raw frame, if it's available.(package private) boolean
readBytes(java.nio.ByteBuffer input)
Reads bytes from input, parsing them into a frame.private void
reset()
Resets the state, preparing to construct a new frame.
-
-
-
Method Detail
-
getFramePrefixLength
int getFramePrefixLength()
The length of the frame prefix data, including the message length/type fields.
-
getFrameSuffixLength
int getFrameSuffixLength()
-
readBytes
boolean readBytes(java.nio.ByteBuffer input) throws java.security.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:
java.security.GeneralSecurityException
-
flush
void flush() throws java.security.GeneralSecurityException
Completes the current frame, signaling that no further data is available to be passed to readBytes and that the client requires writeBytes to start returning data. isComplete() is guaranteed to return true after this call.- Throws:
java.security.GeneralSecurityException
-
reset
private void reset()
Resets the state, preparing to construct a new frame. Must be called between frames.
-
getRawFrame
java.nio.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.
-
-