00001
00002
00003
00004
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
00018 #include "DCFsbostreamBase.h"
00019
00020 void DCFsbostreamBase::report( ostream& os )
00021 {
00022 os << "DCF REPORT version= " <<_version << endl;
00023 os << "DCF REPORT revision= " << _revision << endl;
00024 os << "DCF REPORT release= " << _release << endl;
00025 os << "DCF REPORT author= " << _author << endl;
00026 os << "DCF REPORT descript.size()= " << _descript.size() << endl;
00027 os << "DCF REPORT descript= " << _descript << endl;
00028
00029 os << "DCF REPORT grid_dim= " << 1 << endl;
00030 os << "DCF REPORT array_dim= " << _arraydim << endl;
00031 os << "DCF REPORT bplen_mpsizeb= " << _bplen_mpsizeb << endl;
00032 os << "DCF REPORT bplen_coef= " << _bplen_coef << endl;
00033 os << "DCF REPORT bplen_n= " << _bplen_n << endl;
00034 for( int d = 0; d < _arraydim; ++d ) {
00035 os << "DCF REPORT bplen_a[" << d << "]= " << _bplen_a << endl;
00036 }
00037
00038 os << "DCF REPORT sbn= " << _sbn << endl;
00039 os << "DCF REPORT mmin_this= " << _mmin_this << endl;
00040 os << "DCF REPORT mmax_this= " << _mmax_this << endl;
00041 os << "DCF REPORT mmin_exist= " << _mmin_exist << endl;
00042 os << "DCF REPORT mmax_exist= " << _mmax_exist << endl;
00043 os << "DCF REPORT mmin_theory= " << _mmin_theory << endl;
00044 os << "DCF REPORT mmax_theory= " << _mmax_theory << endl;
00045 os << "DCF REPORT cmin_this= " << _cmin_this << endl;
00046 os << "DCF REPORT cmax_this= " << _cmax_this << endl;
00047 os << "DCF REPORT cmin_exist= " << _cmin_exist << endl;
00048 os << "DCF REPORT cmax_exist= " << _cmax_exist << endl;
00049 os << "DCF REPORT cmin_theory= " << _cmin_theory << endl;
00050 os << "DCF REPORT cmax_theory= " << _cmax_theory << endl;
00051 os << "DCF REPORT datatype_code= " << _datatype_code << endl;
00052 };
00053
00054 void DCFsbostreamBase::outheader()
00055 {
00056 bytepack bp;
00057
00058 (*_os) << "MCFsb___";
00059 (*_os) << bp( -1, 4 );
00060 (*_os) << bp( _version, 1 );
00061 (*_os) << bp( _revision, 1 );
00062 (*_os) << bp( _release, 1 );
00063 (*_os) << bp( _author, 1 );
00064 (*_os) << bp( int(_descript.size()), 1 );
00065 (*_os) << _descript;
00066
00067 (*_os) << bp( -1, 4 );
00068 (*_os) << bp( 1, 1 );
00069 (*_os) << bp( _arraydim, 1 );
00070 (*_os) << bp( _bplen_mpsizeb, 1 );
00071 (*_os) << bp( _bplen_coef, 1 );
00072 (*_os) << bp( _bplen_n, 1 );
00073 for( int d = 0; d < _arraydim; ++d ) {
00074 (*_os) << bp( _bplen_a, 1 );
00075 }
00076 (*_os) << bp( _sbn, 4 );
00077 (*_os) << bp( _mmin_this, 1 );
00078 (*_os) << bp( _mmax_this, 1 );
00079 (*_os) << bp( _mmin_exist, 1 );
00080 (*_os) << bp( _mmax_exist, 1 );
00081 (*_os) << bp( _mmin_theory, 1 );
00082 (*_os) << bp( _mmax_theory, 1 );
00083 (*_os) << bp( _cmin_this, 1 );
00084 (*_os) << bp( _cmax_this, 1 );
00085 (*_os) << bp( _cmin_exist, 1 );
00086 (*_os) << bp( _cmax_exist, 1 );
00087 (*_os) << bp( _cmin_theory, 1 );
00088 (*_os) << bp( _cmax_theory, 1 );
00089 (*_os) << bp( _datatype_code, 1 );
00090 (*_os) << bp( 3, 1 );
00091 (*_os) << bp( 0, 1 );
00092 (*_os) << bp( 3, 1 );
00093
00094 _needheader = false;
00095
00096 };
00097
00098 void DCFsbostreamBase:: close()
00099 {
00100 if ( isopen() ) {
00101 bytepack bp;
00102
00103 (*_os) << bp( 0, _bplen_mpsizeb );
00104 (*_os) << bp( 0, _bplen_mpsizeb );
00105
00106 (*_os) << bp( -1, 4 );
00107
00108 (*_os) << bp( -1, 4 );
00109
00110
00111 (*_os) << bp( _bplen_n+1, 4 );
00112 (*_os) << bp( _finalstep, _bplen_n );
00113 (*_os) << endl;
00114 }
00115 };
00116
00117