Giter Club home page Giter Club logo

byte_buffer's Introduction

byte_buffer

An implementation of Java ByteBuffer in C.

  • Documentation already available :)
  • buffer required to be freed by bb_destroy
  • assert is used to replace Java exception
  • Aligns to most methods in Java ByteBuffer, except:
    • allocate is replaced by bb_create to emphasize the need for bb_destroy
    • hasArray, allocateDirect, isDirect are not implemented as they are Java specific for native allocation
    • duplication and slice were intentionally omitted as they would impose the order of bb_destroy
    • getChar and putChar are not implemented as there is no equivalent of Java Char in C
    • get/put for Float/Double are not implemented as their byte-sizes are uncertain in C
ByteBuffer byte_buffer
byte_buffer_t *bb_create(size_t max);
void bb_destroy(byte_buffer_t *bb);
static ByteBuffer allocate(int capacity) n/a
static ByteBuffer allocateDirect(int capacity) n/a
byte[] array() char *bb_array(byte_buffer_t *bb);
int arrayOffset() size_t bb_arrayOffset(byte_buffer_t *bb)
abstract CharBuffer asCharBuffer() n/a
abstract DoubleBuffer asDoubleBuffer() n/a
abstract FloatBuffer asFloatBuffer() n/a
abstract IntBuffer asIntBuffer() n/a
abstract LongBuffer asLongBuffer() n/a
abstract ByteBuffer asReadOnlyBuffer() n/a
abstract ShortBuffer asShortBuffer() n/a
abstract ByteBuffer compact() byte_buffer_t compact(byte_buffer_t *bb);
int capacity() size_t bb_capacity(byte_buffer_t *bb);
Buffer clear() void bb_clear(byte_buffer_t *bb);
int compareTo(ByteBuffer that) int bb_compareTo(byte_buffer_t *bb, byte_buffer_t *that);
Buffer flip() void bb_flip(byte_buffer_t *bb);
abstract ByteBuffer duplicate() n/a
boolean equals(Object ob) int bb_equals(byte_buffer_t *bb, byte_buffer_t *that);
abstract byte get() char get(byte_buffer_t *bb);
ByteBuffer get(byte[] dst) n/a
ByteBuffer get(byte[] dst, int offset, int length) bb_get_buffer(byte_buffer_t *bb, char *dst, size_t offset, size_t length);
abstract byte get(int index) char bb_get_index(byte_buffer_t *bb, size_t index);
abstract char getChar() n/a
abstract char getChar(int index) n/a
abstract double getDouble() n/a
abstract double getDouble(int index) n/a
abstract float getFloat() n/a
abstract float getFloat(int index) n/a
abstract int getInt() int32_t bb_getInt(byte_buffer_t *bb);
abstract int getInt(int index) int32_t bb_getInt_index(byte_buffer_t *bb, size_t index);
abstract long getLong() int64_t bb_getLong(byte_buffer_t *bb);
abstract long getLong(int index) int64_t bb_getLong_index(byte_buffer_t *bb, size_t index);
abstract short getShort() int16_t bb_getShort(byte_buffer_t *bb);
abstract short getShort(int index) int16_t bb_getShort_index(byte_buffer_t *bb, size_t index);
boolean hasArray() n/a
boolean hasRemaining() int bb_hasRemaining(byte_buffer_t *bb);
abstract boolean isDirect() n/a
abstract boolean isReadOnly() n/a
int limit() size_t bb_limit(byte_buffer_t *bb);
Buffer limit(int newLimit) void bb_limit_set(byte_buffer_t *bb, size_t pos);
Buffer mark() void bb_mark(byte_buffer_t *bb);
ByteOrder order() byte_order_t bb_order(byte_buffer_t *bb);
ByteBuffer order(ByteOrder bo) void bb_order_set(byte_buffer_t *bb, byte_order_t order);
abstract ByteBuffer put(byte b) void bb_put(byte_buffer_t *bb, char c);
ByteBuffer put(byte[] src)
ByteBuffer put(byte[] src, int offset, int length) void bb_put_buffer(byte_buffer_t *bb, char *src, size_t offset, size_t length);
ByteBuffer put(ByteBuffer src) void bb_put_bb(byte_buffer_t *bb, byte_buffer_t *src);
abstract ByteBuffer put(int index, byte b) void bb_put_index(byte_buffer_t *bb, size_t index, char c);
abstract ByteBuffer putChar(char value) n/a
abstract ByteBuffer putChar(int index, char value) n/a
abstract ByteBuffer putDouble(double value) n/a
abstract ByteBuffer putDouble(int index, double value) n/a
abstract ByteBuffer putFloat(float value) n/a
abstract ByteBuffer putFloat(int index, float value) n/a
abstract ByteBuffer putInt(int value) void bb_putInt(byte_buffer_t *bb, int32_t value);
abstract ByteBuffer putInt(int index, int value) void bb_putInt_index(byte_buffer_t *bb, size_t index, int32_t value);
abstract ByteBuffer putLong(int index, long value) void bb_putLong_index(byte_buffer_t *bb, size_t index, int64_t value);
abstract ByteBuffer putLong(long value) void bb_putLong(byte_buffer_t *bb, int64_t value);
abstract ByteBuffer putShort(int index, short value) void bb_putShort_index(byte_buffer_t *bb, size_t index, int16_t value);
abstract ByteBuffer putShort(short value) void bb_putShort(byte_buffer_t *bb, int16_t value);
abstract ByteBuffer slice() n/a
static ByteBuffer wrap(byte[] array) n/a
static ByteBuffer wrap(byte[] array, int offset, int length) byte_buffer_t *bb_wrap(char *src, size_t offset, size_t length);
int position() size_t bb_position(byte_buffer_t *bb);
Buffer position(int newPosition) void bb_position_set(byte_buffer_t *bb, size_t pos);
int remaining() size_t bb_remaining(byte_buffer_t *bb);
Buffer reset() void bb_reset(byte_buffer_t *bb);
Buffer rewind() void bb_rewind(byte_buffer_t *bb);

byte_buffer's People

Contributors

alei121 avatar

Watchers

James Cloos avatar  avatar

Forkers

wjm0729

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.