Banjo API 0.0.1
C99 game development API
Loading...
Searching...
No Matches
Data Stream

Macros

#define bj_stream_read_t(stream, type, buffer)
#define bj_stream_skip_t(stream, type)

Enumerations

enum  bj_seek_origin { BJ_SEEK_BEGIN = 0x00 , BJ_SEEK_CURRENT = 0x01 , BJ_SEEK_END = 0x02 }

Functions

struct bj_streambj_allocate_stream (void)
struct bj_streambj_open_stream_read (const void *data, size_t length)
struct bj_streambj_open_stream_file (const char *path, struct bj_error **error)
void bj_close_stream (struct bj_stream *stream)
size_t bj_read_stream (struct bj_stream *stream, void *dest, size_t count)
size_t bj_get_stream_length (struct bj_stream *stream)
size_t bj_seek_stream (struct bj_stream *stream, ptrdiff_t position, enum bj_seek_origin from)
size_t bj_tell_stream (struct bj_stream *stream)

Detailed Description

Macro Definition Documentation

◆ bj_stream_read_t

#define bj_stream_read_t ( stream,
type,
buffer )
Value:
bj_read_stream(stream, buffer, sizeof(type))
size_t bj_read_stream(struct bj_stream *stream, void *dest, size_t count)
Reads data from the stream into a destination buffer.

Reads data of a specified type from the stream into a buffer.

Parameters
streamPointer to the stream instance.
typeData type to read.
bufferPointer to the buffer to store the read data.

◆ bj_stream_skip_t

#define bj_stream_skip_t ( stream,
type )
Value:
bj_read_stream(stream, 0, sizeof(type))

Skips reading data of a specified type from the stream.

Parameters
streamPointer to the stream instance.
typeData type to skip.

Enumeration Type Documentation

◆ bj_seek_origin

Position in a bj_stream to use for origin.

Enumerator
BJ_SEEK_BEGIN 

The beginning of the stream.

BJ_SEEK_CURRENT 

The current position of the stream.

BJ_SEEK_END 

The end of the stream.

Function Documentation

◆ bj_allocate_stream()

struct bj_stream * bj_allocate_stream ( void )

Allocate a new bj_stream object.

Returns
A pointer to a new bj_stream
Memory Management

The object pointed by the returned value must be deleted using bj_free.

◆ bj_close_stream()

void bj_close_stream ( struct bj_stream * stream)

Deletes a struct bj_stream object and releases associated memory.

Parameters
streamPointer to the struct bj_stream object to delete.

◆ bj_get_stream_length()

size_t bj_get_stream_length ( struct bj_stream * stream)

Get the size of the stream.

Parameters
streamPointer to the stream instance.
Returns
The size of the stream, in bytes

◆ bj_open_stream_file()

struct bj_stream * bj_open_stream_file ( const char * path,
struct bj_error ** error )

Creates a new struct bj_stream for reading from a file.

Parameters
pathThe file path to open
errorOptional error object
Returns
A pointer to an error object

The file memory is entirely copied to internal memory buffer.

◆ bj_open_stream_read()

struct bj_stream * bj_open_stream_read ( const void * data,
size_t length )

Creates a new struct bj_stream for reading from a memory buffer.

Parameters
dataPointer to the data buffer.
lengthLength of the data buffer in bytes.
Returns
A pointer to the newly created struct bj_stream object.

◆ bj_read_stream()

size_t bj_read_stream ( struct bj_stream * stream,
void * dest,
size_t count )

Reads data from the stream into a destination buffer.

Parameters
streamPointer to the stream instance.
destPointer to the destination buffer.
countNumber of bytes to read.
Returns
Number of bytes actually read.

The function advances the stream position by count bytes. If fewer bytes than count are read, the end of the stream is reached.

Memory Safety

This function does not perform any memory bounds checking. It is the caller's responsibility to ensure dest has enough space to hold count bytes.

◆ bj_seek_stream()

size_t bj_seek_stream ( struct bj_stream * stream,
ptrdiff_t position,
enum bj_seek_origin from )

Seeks to a new position in the stream relative to a specified origin.

Parameters
streamPointer to the stream instance.
positionOffset for the new position.
fromOrigin relative to which the position should be calculated.
Returns
The new position within the stream after seeking.

The function clamps the new position to stay within the valid range of the stream, from 0 to the length of the stream.

◆ bj_tell_stream()

size_t bj_tell_stream ( struct bj_stream * stream)

Returns the current position of the cursor in the stream.

Parameters
streamPointer to the stream instance.
Returns
The current position within the stream.