00001
00002
00003
00004
00005
00006
00007 #ifdef USE_STD
00008 #include <iostream>
00009 using namespace std;
00010 #else
00011 #include <iostream.h>
00012 #endif
00013
00014 #include "DCFmpacketBase.h"
00015
00016 void DCFmpacketBase::put( bytepack& bp)
00017 {
00018 for( int i = 0; i < bp.size(); i++ ) { _ptmpacket[ _sizeb++ ] = bp[i]; }
00019 };
00020
00021 ostream& operator << (ostream& os, DCFmpacketBase& mp )
00022 {
00023 bytepack bp;
00024 if ( !mp.empty() && os.good() ) {
00025 os << bp( mp._sizeb, mp._bplen_sizeb );
00026 os << bp( mp._mcode, 1 );
00027 os << bp( mp._n, mp._bplen_n );
00028
00029 if ( mp._sizeb ) {
00030 for( int i = 0; i < mp._sizeb; i++ ) {
00031 os.put( mp._ptmpacket[i] );
00032 }
00033 }
00034
00035 os << bp(mp._sizeb,mp._bplen_sizeb);
00036 }
00037 return os;
00038 };
00039
00040 istream& operator >> ( istream& is, DCFmpacketBase& mp )
00041 {
00042 int itmp;
00043 bytepack bp;
00044 mp.clear();
00045 if ( is.good() ) {
00046 is >> bp( 0, mp._bplen_sizeb ); mp._sizeb = bp;
00047 if ( !mp.empty() ) {
00048 is >> bp(0,1); mp._mcode = char(bp);
00049 is >> bp(0,mp._bplen_n); mp._n = int(bp);
00050 if (mp._sizeb) for( int i = 0; i < mp._sizeb; i++ ) {
00051 is.get( mp._ptmpacket[i] );
00052 }
00053 is >> bp( 0, mp._bplen_sizeb ); itmp = int(bp);
00054 if ( itmp != mp._sizeb ) {
00055 cout << mp._bplen_sizeb << " ERROR !=sizeb\n";
00056 }
00057 }
00058 }
00059 return is;
00060 };
00061