Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

MCFsb.cpp

Go to the documentation of this file.
00001 // MCFsb.cpp
00002 //////////////////////////////////////////////////////////////////////
00003 //          (c) Copyright 2002 Brown Deer Technology, LLC.        
00004 //                        All rights reserved.              
00005 //////////////////////////////////////////////////////////////////////
00006 
00007 #ifdef USE_STD
00008 #include <iostream>
00009 #include <algorithm>
00010 using namespace std;
00011 #else
00012 #include <iostream.h>
00013 #include <algorithm.h>
00014 #endif
00015 
00016 #include "utility.h"
00017 #include "BufferBase.h"
00018 
00019 #include "MCFsb.h"
00020 
00021 void MCFsb::write( BufferBase& buffer )
00022 {
00023    int tmp;
00024    bytepack bp;
00025    buffer >> (*_header);
00026    buffer >> (*_sb);
00027    buffer >> bp( tmp, 4 );
00028    if ( _header->mcfsizeb() == 0 ) _header->set_mcfsizeb(tmp);
00029    _postscript = "";
00030    while ( !buffer.eob() ) _postscript += buffer.get();
00031 }
00032 
00033 void MCFsb::read( BufferBase& buffer )
00034 {
00035    bytepack bp;
00036    _header->set_mcfsizeb( mcfsizeb() );
00037    buffer << (*_header);
00038    buffer << (*_sb);
00039    buffer << bp( mcfsizeb(), 4 );
00040    for(unsigned int i = 0; i < _postscript.size(); ++i) {
00041       buffer.put(_postscript[i]);
00042    }
00043 }
00044 
00045 void MCFsb::write( istream& is )
00046 {
00047    char c;
00048    int tmp;
00049    bytepack bp;
00050    is >> (*_header);
00051    is >> (*_sb);
00052    is >> bp( tmp, 4 );
00053    if ( _header->mcfsizeb() == 0 ) _header->set_mcfsizeb(tmp);
00054    _postscript = "";
00055    while ( is.get(c) ) _postscript += c; 
00056 }
00057 
00058 void MCFsb::read( ostream& os )
00059 {
00060    bytepack bp;
00061    _header->set_mcfsizeb( mcfsizeb() );
00062    os << (*_header);
00063    os << (*_sb);
00064    os << bp( mcfsizeb(), 4 );
00065    for(unsigned int i = 0; i < _postscript.size(); ++i) os.put(_postscript[i]);
00066 }
00067 
00068 // ##### friends #####
00069 
00070 BufferBase& operator << ( BufferBase& buffer, MCFsb& mcfsb ) 
00071 {
00072    mcfsb.read(buffer);
00073    return buffer;
00074 }
00075 
00076 BufferBase& operator>>( BufferBase& buffer, MCFsb& mcfsb )
00077 {
00078    mcfsb.write(buffer);
00079    return buffer;
00080 }
00081 
00082 ostream& operator << ( ostream& os, MCFsb& mcfsb ) 
00083 {
00084    mcfsb.read(os);
00085    return os;
00086 }
00087 
00088 istream& operator>>( istream& is, MCFsb& mcfsb )
00089 {
00090    mcfsb.write(is);
00091    return is;
00092 }
00093 

Generated on Mon May 31 21:38:49 2004 for SR2k4 Assembler by doxygen 1.3.6