Files
4jcraft/minecraft/java/include/java/ByteBuffer.h
MatthewBeshay 7ddfaeb59e refactor: remove arrayWithLength, replace with std::vector
Eliminates the custom arrayWithLength<T> wrapper and all typedefs, replacing with std::vector<T> directly.
2026-03-31 12:06:19 +11:00

47 lines
1.4 KiB
C++

#pragma once
#include <cstdint>
#include "Buffer.h"
#include "../../../Minecraft.World/ConsoleHelpers/ArrayWithLength.h" // 4jcraft TODO
#include "../../../Minecraft.World/ConsoleHelpers/Definitions.h" // 4jcraft TODO
class IntBuffer;
class FloatBuffer;
class ByteBuffer : public Buffer {
protected:
uint8_t* buffer;
ByteOrder byteOrder;
public:
ByteBuffer(unsigned int capacity);
static ByteBuffer* allocateDirect(int capacity);
ByteBuffer(unsigned int capacity, uint8_t* backingArray);
virtual ~ByteBuffer();
static ByteBuffer* wrap(std::vector<uint8_t>& b);
static ByteBuffer* allocate(unsigned int capacity);
void order(ByteOrder a);
ByteBuffer* flip();
uint8_t* getBuffer();
int getSize();
int getInt();
int getInt(unsigned int index);
void get(std::vector<uint8_t>) {} // 4J - TODO
uint8_t get(int index);
int64_t getLong();
short getShort();
void getShortArray(std::vector<short>& s);
ByteBuffer* put(int index, uint8_t b);
ByteBuffer* putInt(int value);
ByteBuffer* putInt(unsigned int index, int value);
ByteBuffer* putShort(short value);
ByteBuffer* putShortArray(std::vector<short>& s);
ByteBuffer* putLong(int64_t value);
ByteBuffer* put(std::vector<uint8_t>& inputArray);
std::vector<uint8_t> array();
IntBuffer* asIntBuffer();
FloatBuffer* asFloatBuffer();
};