CACAO
Public Member Functions | Private Member Functions | Private Attributes
cacao::ClassBuffer Struct Reference

Public Member Functions

 ClassBuffer (Utf8String classname)
 Locate and load class file for class. More...
 
 ClassBuffer (classinfo *clazz)
 
 ClassBuffer (classinfo *clazz, uint8_t *data, size_t sz, const char *path=NULL)
 Initialize with an already loaded class file. More...
 
 operator bool ()
 Check if an error occured while creating this classbuffer. More...
 
bool check_size (size_t sz)
 Assert that at least <sz> bytes are left to read. More...
 
uint8_t read_u1 ()
 
uint16_t read_u2 ()
 
uint32_t read_u4 ()
 
uint64_t read_u8 ()
 
int32_t read_s4 ()
 
int64_t read_s8 ()
 
float read_float ()
 
double read_double ()
 
void read_nbytes (uint8_t *dst, size_t num_bytes)
 Transfer block of classfile into a buffer. More...
 
void skip_nbytes (size_t num_bytes)
 Skip block of classfile data. More...
 
size_t remaining ()
 The number of unread bytes in the buffer. More...
 
void free ()
 Free memory held by this classbuffer. More...
 
classinfoget_class () const
 
const uint8_t * get_data () const
 
const char * get_path () const
 
ClassFileVersion version () const
 

Private Member Functions

 ClassBuffer (const ClassBuffer &)
 
ClassBufferoperator= (const ClassBuffer &)
 
void init (classinfo *, uint8_t *, size_t, const char *)
 

Private Attributes

classinfoclazz
 
uint8_t * data
 
uint8_t * pos
 
uint8_t * end
 
const char * path
 

Detailed Description

Definition at line 80 of file suck.hpp.

Constructor & Destructor Documentation

cacao::ClassBuffer::ClassBuffer ( Utf8String  classname)

Locate and load class file for class.

ClassBuffer::ClassBuffer ( classinfo clazz)

Definition at line 351 of file suck.cpp.

ClassBuffer::ClassBuffer ( classinfo clazz,
uint8_t *  data,
size_t  sz,
const char *  path = NULL 
)

Initialize with an already loaded class file.

Definition at line 340 of file suck.cpp.

cacao::ClassBuffer::ClassBuffer ( const ClassBuffer )
private

Member Function Documentation

bool cacao::ClassBuffer::check_size ( size_t  sz)
inline

Assert that at least <sz> bytes are left to read.

Definition at line 135 of file suck.hpp.

void ClassBuffer::free ( )

Free memory held by this classbuffer.

Definition at line 438 of file suck.cpp.

classinfo* cacao::ClassBuffer::get_class ( ) const
inline

Definition at line 117 of file suck.hpp.

const uint8_t* cacao::ClassBuffer::get_data ( ) const
inline

Definition at line 118 of file suck.hpp.

const char* cacao::ClassBuffer::get_path ( ) const
inline

Definition at line 119 of file suck.hpp.

void ClassBuffer::init ( classinfo clazz,
uint8_t *  data,
size_t  sz,
const char *  path 
)
inlineprivate

Definition at line 332 of file suck.cpp.

cacao::ClassBuffer::operator bool ( )
inline

Check if an error occured while creating this classbuffer.

Definition at line 89 of file suck.hpp.

ClassBuffer& cacao::ClassBuffer::operator= ( const ClassBuffer )
private
double cacao::ClassBuffer::read_double ( )
inline

Definition at line 180 of file suck.hpp.

float cacao::ClassBuffer::read_float ( )
inline

Definition at line 175 of file suck.hpp.

void cacao::ClassBuffer::read_nbytes ( uint8_t *  dst,
size_t  num_bytes 
)
inline

Transfer block of classfile into a buffer.

Definition at line 186 of file suck.hpp.

int32_t cacao::ClassBuffer::read_s4 ( )
inline

Definition at line 165 of file suck.hpp.

int64_t cacao::ClassBuffer::read_s8 ( )
inline

Definition at line 170 of file suck.hpp.

uint8_t cacao::ClassBuffer::read_u1 ( )
inline

Definition at line 145 of file suck.hpp.

uint16_t cacao::ClassBuffer::read_u2 ( )
inline

Definition at line 150 of file suck.hpp.

uint32_t cacao::ClassBuffer::read_u4 ( )
inline

Definition at line 155 of file suck.hpp.

uint64_t cacao::ClassBuffer::read_u8 ( )
inline

Definition at line 160 of file suck.hpp.

size_t cacao::ClassBuffer::remaining ( )
inline

The number of unread bytes in the buffer.

Definition at line 194 of file suck.hpp.

void cacao::ClassBuffer::skip_nbytes ( size_t  num_bytes)
inline

Skip block of classfile data.

Definition at line 190 of file suck.hpp.

ClassFileVersion ClassBuffer::version ( ) const

Definition at line 344 of file suck.cpp.

Field Documentation

classinfo* cacao::ClassBuffer::clazz
private

Definition at line 128 of file suck.hpp.

uint8_t* cacao::ClassBuffer::data
private

Definition at line 129 of file suck.hpp.

uint8_t* cacao::ClassBuffer::end
private

Definition at line 131 of file suck.hpp.

const char* cacao::ClassBuffer::path
private

Definition at line 132 of file suck.hpp.

uint8_t* cacao::ClassBuffer::pos
private

Definition at line 130 of file suck.hpp.


The documentation for this struct was generated from the following files: