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

classwriterbase.cpp

00001 /*
00002  * Copyright (c) 2003, Raymond Bosman
00003  * Copyright (c) 2003, Frederik Holljen
00004  * All Rights Reserved.
00005  *
00006  * See COPYING for licensing.
00007  */
00008 
00009 
00010 #include "classwriterbase.hpp"
00011 
00012 namespace ClassEncoder
00013 {
00014 using namespace std;
00015 
00017 
00020 ClassWriterBase::ClassWriterBase()
00021 {
00022 }
00023 
00025 
00028 ClassWriterBase::~ClassWriterBase()
00029 {
00030 }
00031 
00033 
00039 void ClassWriterBase::writeu1Array( ofstream &stream, const char* data, unsigned int length ) const
00040 {
00041     stream.write( data, length );
00042 }
00043 
00045 
00050 void ClassWriterBase::writeu1( ofstream &stream, const u1 &num ) const
00051 {
00052     stream.write( (const char *) &num, 1 );
00053 }
00054 
00056 
00061 void ClassWriterBase::writeu2( ofstream &stream, const u2 &num ) const
00062 {
00063     u2 bigNum = u2ToBigEndian( num );
00064     stream.write( (const char*)&bigNum, 2 );
00065 }
00066 
00068 
00073 void ClassWriterBase::writeu4( ofstream &stream, const u4 &num ) const
00074 {
00075     u4 bigNum = u4ToBigEndian( num );
00076     stream.write( (const char*)&bigNum, 4 );
00077 }
00078 
00079 
00081 
00084 u2 ClassWriterBase::u2ToBigEndian( u2 num ) const
00085 {
00086     return ( num >> 8 ) + (( num & 0xFF ) <<8 );
00087 }
00088 
00090 
00093 u4 ClassWriterBase::u4ToBigEndian( u4 num ) const
00094 {
00095     return (( num & 0xFF ) << 24 ) +
00096         (( num >> 8 & 0xFF ) << 16 ) +
00097         (( num >> 16 & 0xFF ) << 8 ) +
00098         ( num >> 24 );
00099 }
00100 
00101 } // end namespace

Generated on Mon Dec 1 14:26:27 2003 for Ck by doxygen 1.3.3