All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.atomix.catalyst.buffer.BufferInput Maven / Gradle / Ivy

There is a newer version: 1.2.1
Show newest version
/*
 * Copyright 2015 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package io.atomix.catalyst.buffer;

/**
 * Readable buffer.
 * 

* This interface exposes methods for reading from a byte buffer. Readable buffers maintain a small amount of state * regarding current cursor positions and limits similar to the behavior of {@link java.nio.ByteBuffer}. * * @author Jordan Halterman */ public interface BufferInput> extends AutoCloseable { /** * Returns the number of bytes remaining in the input. * * @return The number of bytes remaining in the input. */ long remaining(); /** * Returns a boolean value indicating whether the input has bytes remaining. * * @return Indicates whether bytes remain to be read from the input. */ boolean hasRemaining(); /** * Skips the given number of bytes in the input. * * @param bytes The number of bytes to attempt to skip. * @return The skipped input. */ T skip(long bytes); /** * Reads bytes into the given byte array. * * @param bytes The byte array into which to read bytes. * @return The buffer. */ T read(Bytes bytes); /** * Reads bytes into the given byte array. * * @param bytes The byte array into which to read bytes. * @return The buffer. */ T read(byte[] bytes); /** * Reads bytes into the given byte array starting at the current position. * * @param bytes The byte array into which to read bytes. * @param offset The offset at which to write bytes into the given buffer * @return The buffer. */ T read(Bytes bytes, long offset, long length); /** * Reads bytes into the given byte array starting at current position up to the given length. * * @param bytes The byte array into which to read bytes. * @param offset The offset at which to write bytes into the given buffer * @return The buffer. */ T read(byte[] bytes, long offset, long length); /** * Reads bytes into the given buffer. * * @param buffer The buffer into which to read bytes. * @return The buffer. */ T read(Buffer buffer); /** * Reads a byte from the buffer at the current position. * * @return The read byte. */ int readByte(); /** * Reads an unsigned byte from the buffer at the current position. * * @return The read byte. */ int readUnsignedByte(); /** * Reads a 16-bit character from the buffer at the current position. * * @return The read character. */ char readChar(); /** * Reads a 16-bit signed integer from the buffer at the current position. * * @return The read short. */ short readShort(); /** * Reads a 16-bit unsigned integer from the buffer at the current position. * * @return The read short. */ int readUnsignedShort(); /** * Reads a 24-bit signed integer from the buffer at the current position. * * @return The read integer. */ int readMedium(); /** * Reads a 24-bit unsigned integer from the buffer at the current position. * * @return The read integer. */ int readUnsignedMedium(); /** * Reads a 32-bit signed integer from the buffer at the current position. * * @return The read integer. */ int readInt(); /** * Reads a 32-bit unsigned integer from the buffer at the current position. * * @return The read integer. */ long readUnsignedInt(); /** * Reads a 64-bit signed integer from the buffer at the current position. * * @return The read long. */ long readLong(); /** * Reads a single-precision 32-bit floating point number from the buffer at the current position. * * @return The read float. */ float readFloat(); /** * Reads a double-precision 64-bit floating point number from the buffer at the current position. * * @return The read double. */ double readDouble(); /** * Reads a 1 byte boolean from the buffer at the current position. * * @return The read boolean. */ boolean readBoolean(); /** * Reads a string from the buffer at the current position. * * @return The read string. */ String readString(); /** * Reads a UTF-8 string from the buffer at the current position. * * @return The read string. */ String readUTF8(); @Override void close(); }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy