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

MCFTPrequest.cpp

Go to the documentation of this file.
00001 // MCFTPrequest.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 "MRAmspec.h"
00018 #include "MRAcspec.h"
00019 #include "MCFTPquote.h"
00020 
00021 #include "MCFTPrequest.h"
00022 
00023 MCFTPrequest::MCFTPrequest( int grid_dim, int array_dim ) 
00024   : _grid_dim(grid_dim), _array_dim(array_dim), _name("")
00025 {
00026    _sbn(_grid_dim);
00027    _mspec(_grid_dim);
00028 }
00029 
00030 MCFTPrequest::MCFTPrequest( const MCFTPrequest& request )
00031 {
00032    _grid_dim = request._grid_dim;
00033    _array_dim = request._array_dim;
00034    _name = request._name;
00035    _sbn = request._sbn;
00036    _mspec = request._mspec;
00037    _cspec = request._cspec;
00038 }
00039 
00040 MCFTPrequest::MCFTPrequest( const MCFTPquote& quote )
00041 {
00042    _grid_dim = quote._grid_dim;
00043    _array_dim = quote._array_dim;
00044    _name = quote._name;
00045    _sbn = quote._sbn;
00046    _mspec = quote._mspec;
00047    _cspec = quote._cspec;
00048 }
00049 
00050 MCFTPrequest& MCFTPrequest::operator () ()
00051 {
00052    _grid_dim = 0;
00053    _array_dim = 0;
00054    _name = "";
00055    _sbn(0);
00056    _mspec(0);
00057    return *this;
00058 }
00059 
00060 MCFTPrequest& MCFTPrequest::operator () ( int grid_dim, int array_dim )
00061 {
00062    _grid_dim = grid_dim;
00063    _array_dim = array_dim;
00064    _name = "";
00065    _sbn(_grid_dim);
00066    _mspec(_grid_dim);
00067    return *this;
00068 }
00069 
00070 MCFTPrequest& MCFTPrequest::operator () ( const MCFTPquote& quote )
00071 {
00072    _grid_dim = quote._grid_dim;
00073    _array_dim = quote._array_dim;
00074    _name = quote._name;
00075    _sbn(_grid_dim) = quote._sbn;
00076    _mspec(_grid_dim) = quote._mspec;
00077    _cspec = quote._cspec;
00078    return *this;
00079 }
00080 
00081 MCFTPrequest& MCFTPrequest::operator () ( const MCFTPrequest& request )
00082 {
00083    _grid_dim = request._grid_dim;
00084    _array_dim = request._array_dim;
00085    _name = request._name;
00086    _sbn(_grid_dim) = request._sbn;
00087    _mspec(_grid_dim) = request._mspec;
00088    _cspec = request._cspec;
00089    return *this;
00090 }
00091 
00092 MCFTPrequest& MCFTPrequest::copy( const MCFTPrequest& request )
00093 {
00094    if ( this != &request ) {
00095       _grid_dim = request._grid_dim;
00096       _array_dim = request._array_dim;
00097       _name = request._name;
00098       _sbn = request._sbn;
00099       _mspec = request._mspec;
00100       _cspec = request._cspec;
00101    }
00102    return *this;
00103 }
00104 
00105 MCFTPrequest& MCFTPrequest::copy( const MCFTPquote& quote )
00106 {
00107    _grid_dim = quote._grid_dim;
00108    _array_dim = quote._array_dim;
00109    _name = quote._name;
00110    _sbn = quote._sbn;
00111    _mspec = quote._mspec;
00112    _cspec = quote._cspec;
00113    return *this;
00114 }
00115 
00116 bool MCFTPrequest::is_equal( const MCFTPrequest& request )
00117 {
00118    if ( this != &request ) {
00119       if ( _grid_dim != request._grid_dim ) return false;
00120       if ( _array_dim != request._array_dim ) return false;
00121       if ( _name != request._name ) return false;
00122       if ( _sbn != request._sbn ) return false;
00123       if ( _mspec != request._mspec ) return false;
00124       if ( _cspec != request._cspec ) return false;
00125    }
00126    return true;
00127 }
00128 
00129 bool MCFTPrequest::is_equal( const MCFTPquote& quote )
00130 {
00131    if ( _grid_dim != quote._grid_dim ) return false;
00132    if ( _array_dim != quote._array_dim ) return false;
00133    if ( _name != quote._name ) return false;
00134    if ( _sbn != quote._sbn ) return false;
00135    if ( _mspec != quote._mspec ) return false;
00136    if ( _cspec != quote._cspec ) return false;
00137    return true;
00138 }
00139 
00140 void MCFTPrequest::write( BufferBase& buffer )
00141 {
00142    bytepack bp;
00143    buffer >> bp( 0, 1 ); _grid_dim = int(bp);
00144    buffer >> bp( 0, 1 ); _array_dim = int(bp);
00145    buffer >> bp( 0, 1 ); int namesize = int(bp);
00146    _name = "";
00147    for( int i = 0; i < namesize; ++i ) _name += buffer.get();
00148      _sbn(_grid_dim);
00149      buffer >> _sbn;
00150      _mspec(_grid_dim);
00151      buffer >> _mspec;
00152      buffer >> _cspec;
00153 }
00154 
00155 void MCFTPrequest::read( BufferBase& buffer )
00156 {
00157    bytepack bp;
00158    buffer << bp( _grid_dim, 1 );
00159    buffer << bp( _array_dim, 1 );
00160    buffer << bp( int(_name.size()), 1 );
00161    for(unsigned int i = 0; i < _name.size(); ++i ) buffer.put( _name[i] );
00162    buffer << _sbn;
00163    buffer << _mspec;
00164    buffer << _cspec;
00165 }
00166 
00167 void MCFTPrequest::write( istream& is )
00168 {
00169    bytepack bp;
00170    is >> bp( 0, 1 ); _grid_dim = int(bp);
00171    is >> bp( 0, 1 ); _array_dim = int(bp);
00172    is >> bp( 0, 1 ); int namesize = int(bp);
00173    _name = "";
00174    for( int i = 0; i < namesize; ++i ) _name += is.get();
00175    _sbn(_grid_dim);
00176    is >> _sbn;
00177    _mspec(_grid_dim);
00178    is >> _mspec;
00179    is >> _cspec;
00180 }
00181 
00182 void MCFTPrequest::read( ostream& os )
00183 
00184 {
00185    bytepack bp;
00186    os << bp( _grid_dim, 1 );
00187    os << bp( _array_dim, 1 );
00188    os << bp( int(_name.size()), 1 );
00189    for(unsigned int i = 0; i < _name.size(); ++i ) os.put( _name[i] );
00190    os << _sbn;
00191    os << _mspec;
00192    os << _cspec;
00193 }
00194 
00195 int MCFTPrequest::sizeb()
00196 {
00197    return 3 + _name.size() + _sbn.sizeb() + _mspec.sizeb() + _cspec.sizeb();
00198 }
00199 
00200 void MCFTPrequest::report( ostream& os ) 
00201 {
00202    os << "MCFTPrequest::report(){\n";
00203    os << "grid_dim = " << _grid_dim << '\n';
00204    os << "array_dim = " << _array_dim << '\n';
00205    os << "name.size() = " << _name.size() << '\n';
00206    os << "name = " << _name << '\n';
00207    os << "sbn = \n";
00208    _sbn.report(os);
00209    os << "mspec = \n";
00210    _mspec.report(os);
00211    os << "cspec = \n";
00212    _cspec.report(os);
00213    os << "}\n";
00214 }
00215 
00216 // ##### friends #####
00217 
00218 BufferBase& operator << ( BufferBase& buffer, MCFTPrequest& request )
00219 {
00220    request.read(buffer);
00221    return buffer;
00222 }
00223 
00224 BufferBase& operator >> ( BufferBase& buffer, MCFTPrequest& request )
00225 {
00226    request.write(buffer);
00227    return buffer;
00228 }
00229 
00230 ostream& operator << ( ostream& os, MCFTPrequest& request )
00231 {
00232    request.read(os);
00233    return os;
00234 }
00235 
00236 istream& operator >> ( istream& is, MCFTPrequest& request )
00237 {
00238    request.write(is);
00239    return is;
00240 }
00241 

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