Main Page | Class Hierarchy | Compound List | File List | Compound Members | File Members | Related Pages

ClassEncoder::ClassWriterBase Class Reference

Base class for all functions writing to the class stream. More...

#include <classwriterbase.hpp>

Inheritance diagram for ClassEncoder::ClassWriterBase:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 ClassWriterBase ()
 Default constructor.

virtual ~ClassWriterBase ()
 Default destructor.

void writeu1Array (std::ofstream &stream, const char *data, unsigned int length) const
 Write an array to the stream.

void writeu1 (std::ofstream &stream, const u1 &num) const
 Write an u1 value to the stream.

void writeu2 (std::ofstream &stream, const u2 &num) const
 Write an u2 value to the stream.

void writeu4 (std::ofstream &stream, const u4 &num) const
 Write an u4 value to the stream.


Private Member Functions

u2 u2ToBigEndian (u2 num) const
 Convert an u2 value to big endian.

u4 u4ToBigEndian (u4 num) const
 Convert an u4 value to big endian.


Detailed Description

Base class for all functions writing to the class stream.

This class contains functionality for writing u1, u2 and u4 values as defined by SUN to the class stream. Note that this class assumes that the code is run on a little endian machine as it converts everything to big endian as defined by SUN. If you want to port this code to a big endian architecture this class must be adapted accordingly.

Definition at line 24 of file classwriterbase.hpp.


Constructor & Destructor Documentation

ClassEncoder::ClassWriterBase::ClassWriterBase  ) 
 

Default constructor.

Empty

Definition at line 20 of file classwriterbase.cpp.

ClassEncoder::ClassWriterBase::~ClassWriterBase  )  [virtual]
 

Default destructor.

Empty

Definition at line 28 of file classwriterbase.cpp.


Member Function Documentation

u2 ClassEncoder::ClassWriterBase::u2ToBigEndian u2  num  )  const [private]
 

Convert an u2 value to big endian.

Parameters:
num The number to convert.

Definition at line 84 of file classwriterbase.cpp.

Referenced by writeu2().

u4 ClassEncoder::ClassWriterBase::u4ToBigEndian u4  num  )  const [private]
 

Convert an u4 value to big endian.

Parameters:
num The number to convert.

Definition at line 93 of file classwriterbase.cpp.

Referenced by writeu4().

void ClassEncoder::ClassWriterBase::writeu1 std::ofstream &  stream,
const u1 &  num
const
 

Write an u1 value to the stream.

This function is provided for completeness as there is no conversien necessary.

Parameters:
stream The class stream
num The u1 value to write to the stream

Definition at line 50 of file classwriterbase.cpp.

Referenced by ClassEncoder::cp_info::write(), and ClassEncoder::ByteCode::write().

void ClassEncoder::ClassWriterBase::writeu1Array std::ofstream &  stream,
const char *  data,
unsigned int  length
const
 

Write an array to the stream.

Writes an array of bytes to the class stream as u1 units.

Parameters:
stream The class stream
data A pointer to the data that should be written
length The length of the data to be written in bytes

Definition at line 39 of file classwriterbase.cpp.

Referenced by ClassEncoder::Utf8_info::write().

void ClassEncoder::ClassWriterBase::writeu2 std::ofstream &  stream,
const u2 &  num
const
 

Write an u2 value to the stream.

Converts the number to big endian and writes it to the class stream.

Parameters:
stream The class stream
num The u2 value to write to the stream

Definition at line 61 of file classwriterbase.cpp.

References u2ToBigEndian().

Referenced by ClassEncoder::method_info::write(), ClassEncoder::Utf8_info::write(), ClassEncoder::String_info::write(), ClassEncoder::NameAndType_info::write(), ClassEncoder::Fieldref_info::write(), ClassEncoder::InterfaceMethodref_info::write(), ClassEncoder::Methodref_info::write(), ClassEncoder::Class_info::write(), ClassEncoder::code_attribute::write(), ClassEncoder::Class::write(), and ClassEncoder::attribute_info::write().

void ClassEncoder::ClassWriterBase::writeu4 std::ofstream &  stream,
const u4 &  num
const
 

Write an u4 value to the stream.

Converts the number to big endian and writes it to the class stream.

Parameters:
stream The class stream
num The u4 value to write to the stream

Definition at line 73 of file classwriterbase.cpp.

References u4ToBigEndian().

Referenced by ClassEncoder::Double_info::write(), ClassEncoder::Long_info::write(), ClassEncoder::Float_info::write(), ClassEncoder::Integer_info::write(), ClassEncoder::code_attribute::write(), ClassEncoder::Class::write(), and ClassEncoder::attribute_info::write().


The documentation for this class was generated from the following files:
Generated on Mon Dec 1 14:26:29 2003 for Ck by doxygen 1.3.3