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

MCFTPheader.h

Go to the documentation of this file.
00001 // MCFTPheader.h
00002 //////////////////////////////////////////////////////////////////////
00003 //          (c) Copyright 2002 Brown Deer Technology, LLC.
00004 //                        All rights reserved.
00005 //////////////////////////////////////////////////////////////////////
00006 
00007 #ifndef MCFTPHEADER_H
00008 #define MCFTPHEADER_H
00009 
00010 #ifdef USE_STD
00011 #include <iostream>
00012 #include <string>
00013 using namespace std;
00014 #else
00015 #include <iostream.h>
00016 #include <string.h>
00017 #endif
00018 
00019 #include "BufferBase.h"
00020 #include "MCFTPid.h"
00021 
00022 class MCFheader;
00023 
00024 class MCFTPheader
00025 {
00026    public:
00027 
00028       MCFTPheader();
00029       MCFTPheader( const MCFheader& );
00030       MCFTPheader( const MCFTPheader& rhs );
00031 
00032       MCFTPheader& operator () ();
00033       MCFTPheader& operator () ( const MCFheader& );
00034       MCFTPheader& operator () ( const MCFTPheader& );
00035 
00036       MCFTPheader& copy( const MCFTPheader& rhs );
00037       MCFTPheader& copy( const MCFheader& rhs );
00038       MCFTPheader& operator = ( const MCFTPheader& rhs );
00039       MCFTPheader& operator = ( const MCFheader& rhs );
00040 
00041       bool is_equal( const MCFTPheader& rhs );
00042       bool operator == ( const MCFTPheader& rhs );
00043       bool operator != ( const MCFTPheader& rhs );
00044 
00045       void write( BufferBase& );
00046       MCFTPheader& operator << ( BufferBase& );
00047       void read( BufferBase& );
00048       MCFTPheader& operator >> ( BufferBase& );
00049 
00050       void write( istream& );
00051       MCFTPheader& operator << ( istream& );
00052       void read( ostream& );
00053       MCFTPheader& operator >> ( ostream& );
00054 
00055       void set_tag( string& tag );
00056       void set_tag( char* tag );
00057       void set_id( MCFTPid );
00058       void set_mcftpsizeb( int mcfsizeb );
00059       void set_version( int version );
00060       void set_revision( int revision );
00061       void set_release( int release );
00062       void set_author( int author );
00063       void set_descript( string& descript );
00064       void set_descript( char* descript );
00065 
00066       string& tag();
00067       MCFTPid id();
00068       int mcftpsizeb();
00069       int version();
00070       int revision();
00071       int release();
00072       int author();
00073 //      int descriptsize();
00074       string& descript();
00075 
00076       int sizeb();
00077 
00078       void report( ostream& = cout );
00079 
00080    protected:
00081       string _tag;
00082       MCFTPid _id;
00083       int _mcftpsizeb;
00084       int _version;
00085       int _revision;
00086       int _release;
00087       int _author;
00088       string _descript;
00089 
00090    friend class MCFheader;
00091 
00092    friend BufferBase& operator >> ( BufferBase&, MCFTPheader& );
00093    friend BufferBase& operator << ( BufferBase&, MCFTPheader& );
00094 
00095    friend istream& operator >> ( istream&, MCFTPheader& );
00096    friend ostream& operator << ( ostream&, MCFTPheader& );
00097 
00098 };
00099 
00100 #include "MCFheader.h"
00101 
00102 inline
00103 MCFTPheader::MCFTPheader()
00104   : _tag("MCFTP___"), _mcftpsizeb(-1),
00105     _version(0), _revision(2), _release(0),
00106     _author(0), _descript("")
00107 {}
00108 
00109 inline
00110 MCFTPheader::MCFTPheader( const MCFheader& rhs )
00111   : _tag(rhs._tag), _mcftpsizeb(rhs._mcfsizeb),
00112     _version(rhs._version), _revision(rhs._revision), _release(rhs._release),
00113     _author(rhs._author), _descript(rhs._descript)
00114 {}
00115 
00116 inline
00117 MCFTPheader::MCFTPheader( const MCFTPheader& rhs )
00118   : _tag(rhs._tag), _id(rhs._id), _mcftpsizeb(rhs._mcftpsizeb), 
00119     _version(rhs._version), _revision(rhs._revision), _release(rhs._release),
00120     _author(rhs._author), _descript(rhs._descript)
00121 {}
00122 
00123 inline
00124 MCFTPheader& MCFTPheader::operator = ( const MCFTPheader& rhs ) 
00125 { 
00126    return copy(rhs); 
00127 }
00128 
00129 inline
00130 MCFTPheader& MCFTPheader::operator = ( const MCFheader& rhs ) 
00131 { 
00132    return copy(rhs); 
00133 }
00134 
00135 inline
00136 bool MCFTPheader::operator == ( const MCFTPheader& rhs ) 
00137 { 
00138    return is_equal(rhs); 
00139 }
00140 
00141 inline
00142 bool MCFTPheader::operator != ( const MCFTPheader& rhs ) 
00143 { 
00144    return !is_equal(rhs); 
00145 }
00146 
00147 inline
00148 MCFTPheader& MCFTPheader::operator << ( BufferBase& buffer )
00149 {
00150    write(buffer);
00151    return *this;
00152 }
00153 
00154 inline
00155 MCFTPheader& MCFTPheader::operator >> ( BufferBase& buffer )
00156 {
00157    read(buffer);
00158    return *this;
00159 }
00160 
00161 inline
00162 MCFTPheader& MCFTPheader::operator << ( istream& is )
00163 {
00164    write(is);
00165    return *this;
00166 }
00167 
00168 inline
00169 MCFTPheader& MCFTPheader::operator >> ( ostream& os )
00170 {
00171    read(os);
00172    return *this;
00173 }
00174 
00175 inline
00176 void MCFTPheader::set_tag( string& tag ) { _tag = tag; }
00177 
00178 inline
00179 void MCFTPheader::set_tag( char* tag ) { _tag = tag; }
00180 
00181 inline
00182 void MCFTPheader::set_id( MCFTPid id ) { _id = id; }
00183 
00184 inline
00185 void MCFTPheader::set_mcftpsizeb( int mcftpsizeb ) { _mcftpsizeb = mcftpsizeb; }
00186 
00187 inline
00188 void MCFTPheader::set_version( int version ) { _version = version; }
00189 
00190 inline
00191 void MCFTPheader::set_revision( int revision ) { _revision = revision; }
00192 
00193 inline
00194 void MCFTPheader::set_release( int release ) { _release = release; }
00195 
00196 inline
00197 void MCFTPheader::set_author( int author ) { _author = author; }
00198 
00199 inline
00200 void MCFTPheader::set_descript( string& descript ) { _descript = descript; }
00201 
00202 inline
00203 void MCFTPheader::set_descript( char* descript ) { _descript = descript; }
00204 
00205 inline
00206 string& MCFTPheader::tag() { return _tag; }
00207 
00208 inline
00209 MCFTPid MCFTPheader::id() { return _id; }
00210 
00211 inline
00212 int MCFTPheader::mcftpsizeb() { return _mcftpsizeb; }
00213 
00214 inline
00215 int MCFTPheader::version() { return _version; }
00216 
00217 inline
00218 int MCFTPheader::revision() { return _revision; }
00219 
00220 inline
00221 int MCFTPheader::release() { return _release; }
00222 
00223 inline
00224 int MCFTPheader::author() { return _author; }
00225 
00226 //inline
00227 //int MCFTPheader::descriptsize() { return _descript.size(); }
00228 
00229 inline
00230 string& MCFTPheader::descript() { return _descript; }
00231 
00232 inline
00233 int MCFTPheader::sizeb() { return 33 + _descript.size(); }
00234 
00235 #endif
00236 

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