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

MCFTPheader.cpp

Go to the documentation of this file.
00001 // MCFTPheader.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 <string>
00010 using namespace std;
00011 #else
00012 #include <iostream.h>
00013 #include <string.h>
00014 #endif
00015 
00016 #include "utility.h"
00017 #include "MCFheader.h"
00018 
00019 #include "MCFTPheader.h"
00020 
00021 MCFTPheader& MCFTPheader::operator () ()
00022 {
00023    _tag = "MCFTP___";
00024    _id();
00025    _mcftpsizeb = -1;
00026    _version = 0;
00027    _revision = 2;
00028    _release = 0;
00029    _author = 0;
00030    _descript = "";
00031    return *this;
00032 }
00033 
00034 MCFTPheader& MCFTPheader::operator () ( const MCFheader& header )
00035 {
00036    _tag = header._tag;
00037    _id();
00038    _mcftpsizeb = -1;
00039    _version = header._version;
00040    _revision = header._revision;
00041    _release = header._release;
00042    _author = header._author;
00043    _descript = header._descript;
00044    return *this;
00045 }
00046 
00047 MCFTPheader& MCFTPheader::operator () ( const MCFTPheader& header )
00048 {
00049    _tag = header._tag;
00050    _id = header._id;
00051    _mcftpsizeb = header._mcftpsizeb;
00052    _version = header._version;
00053    _revision = header._revision;
00054    _release = header._release;
00055    _author = header._author;
00056    _descript = header._descript;
00057    return *this;
00058 }
00059 
00060 MCFTPheader& MCFTPheader::copy( const MCFTPheader& rhs )
00061 {
00062    if ( this != &rhs ) {
00063       _tag = rhs._tag;
00064       _id = rhs._id;
00065       _mcftpsizeb = rhs._mcftpsizeb;
00066       _version = rhs._version;
00067       _revision = rhs._revision;
00068       _release = rhs._release;
00069       _author = rhs._author;
00070       _descript = rhs._descript;
00071    }
00072    return *this;
00073 }
00074 
00075 MCFTPheader& MCFTPheader::copy( const MCFheader& rhs )
00076 {
00077    _tag = rhs._tag;
00078    _id();
00079    _mcftpsizeb = rhs._mcfsizeb;
00080    _version = rhs._version;
00081    _revision = rhs._revision;
00082    _release = rhs._release;
00083    _author = rhs._author;
00084    _descript = rhs._descript;
00085    return *this;
00086 }
00087 
00088 bool MCFTPheader::is_equal( const MCFTPheader& rhs )
00089 {
00090    if ( this != &rhs ) {
00091       if ( _tag != rhs._tag ) return false;
00092       if ( _id != rhs._id ) return false;
00093       if ( _mcftpsizeb != rhs._mcftpsizeb ) return false;
00094       if ( _version != rhs._version ) return false;
00095       if ( _revision != rhs._revision ) return false;
00096       if ( _release != rhs._release ) return false;
00097       if ( _author != rhs._author ) return false;
00098       if ( _descript != rhs._descript ) return false;
00099    }
00100    return true;
00101 }
00102 
00103 void MCFTPheader::write( BufferBase& buffer )
00104 {
00105    bytepack bp;
00106    _tag = "";
00107    for( int i = 0; i < 8; ++i ) _tag += buffer.get();
00108    buffer >> _id;
00109    buffer >> bp( 0, 4 ); _mcftpsizeb = int(bp);
00110    buffer >> bp( 0, 1 ); _version = int(bp);
00111    buffer >> bp( 0, 1 ); _revision = int(bp);
00112    buffer >> bp( 0, 1 ); _release = int(bp);
00113    buffer >> bp( 0, 1 ); _author = int(bp);
00114    buffer >> bp( 0, 1 ); int descriptsize = int(bp);
00115    _descript = "";
00116    for( int i = 0; i < descriptsize; ++i ) _descript += buffer.get();
00117 }
00118 
00119 void MCFTPheader::read( BufferBase& buffer )
00120 {
00121    bytepack bp;
00122    for( int i = 0; i < 8; ++i ) buffer.put( _tag[i] );
00123    buffer << _id;
00124    buffer << bp( _mcftpsizeb, 4 );
00125    buffer << bp( _version, 1 );
00126    buffer << bp( _revision, 1 );
00127    buffer << bp( _release, 1 );
00128    buffer << bp( _author, 1 );
00129    buffer << bp( int(_descript.size()), 1 );
00130    for(unsigned int i = 0; i < _descript.size(); ++i) buffer.put(_descript[i]);
00131 }
00132 
00133 void MCFTPheader::write( istream& is )
00134 {
00135    bytepack bp;
00136    _tag = "";
00137    for( int i = 0; i < 8; ++i ) _tag += is.get();
00138    is >> _id;
00139    is >> bp( 0, 4 ); _mcftpsizeb = int(bp);
00140    is >> bp( 0, 1 ); _version = int(bp);
00141    is >> bp( 0, 1 ); _revision = int(bp);
00142    is >> bp( 0, 1 ); _release = int(bp);
00143    is >> bp( 0, 1 ); _author = int(bp);
00144    is >> bp( 0, 1 ); int descriptsize = int(bp);
00145    _descript = "";
00146    for( int i = 0; i < descriptsize; ++i ) _descript += is.get();
00147 }
00148 
00149 void MCFTPheader::read( ostream& os )
00150 {
00151    bytepack bp;
00152    for( int i = 0; i < 8; ++i ) os.put( _tag[i] );
00153    os << _id;
00154    os << bp( _mcftpsizeb, 4 );
00155    os << bp( _version, 1 );
00156    os << bp( _revision, 1 );
00157    os << bp( _release, 1 );
00158    os << bp( _author, 1 );
00159    os << bp( int(_descript.size()), 1 );
00160    for(unsigned int i = 0; i < _descript.size(); ++i) os.put(_descript[i]);
00161 }
00162 
00163 void MCFTPheader::report( ostream& os )
00164 {
00165    os << "MCFTPheader::report(){\n";
00166    os << "tag = |" << _tag << "|;\n";
00167    os << "id =\n";
00168    _id.report();
00169    os << "mcftpsizeb = " << _mcftpsizeb << '\n';
00170    os << "version = " << _version << '\n';
00171    os << "revision = " << _revision << '\n';
00172    os << "release = " << _release << '\n';
00173    os << "author = " << _author << '\n';
00174    os << "descript.size() = " << _descript.size() << '\n';
00175    os << "descript = |" << _descript << "|\n";
00176    os << "}\n";
00177 }
00178 
00179 // ##### friends #####
00180 
00181 BufferBase& operator << ( BufferBase& buffer, MCFTPheader& header )
00182 {
00183    header.read(buffer);
00184    return buffer;
00185 }
00186 
00187 BufferBase& operator >> ( BufferBase& buffer, MCFTPheader& header )
00188 {
00189    header.write(buffer);
00190    return buffer;
00191 }
00192 
00193 ostream& operator << ( ostream& os, MCFTPheader& header )
00194 {
00195    header.read(os);
00196    return os;
00197 }
00198 
00199 istream& operator >> ( istream& is, MCFTPheader& header )
00200 {
00201    header.write(is);
00202    return is;
00203 }
00204 

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