source: Sophya/trunk/AddOn/TAcq/brpaqu.cc@ 3538

Last change on this file since 3538 was 3538, checked in by ansari, 17 years ago

This commit was generated by cvs2svn to compensate for changes in r3537,
which included commits to RCS files with non-trunk default branches.

File size: 2.2 KB
RevLine 
[3537]1#include "brpaqu.h"
2
3
4static inline void bswap4(void* p)
5{
6 UInt32 tmp = *(UInt32*)p;
7 *(UInt32*)p = ((tmp >> 24) & 0x000000FF) |
8 ((tmp >> 8) & 0x0000FF00) |
9 ((tmp & 0x0000FF00) << 8) |
10 ((tmp & 0x000000FF) << 24);
11}
12
13BRPaquet::BRPaquet(Byte* src, Byte* dst, int paqsz)
14{
15 dst_ = dst;
16 sz_ = paqsz;
17 if ((src==NULL)||(dst==NULL)) return;
18 // On copie l'entete sans swapper
19 for(int k=0; k<BRHDRSIZE; k++) dst_[k] = src[k];
20 // On copie la zone donnees en faisant un byte-swap correspondant a 4 octets
21 for(int ka=BRHDRSIZE; ka<sz_-BRTRLSIZE; ka+=4) {
22 for(int kb=0; kb<4; kb++)
23 dst_[ka+kb] = src[ka+3-kb];
24 }
25 // On copie le trailer sans swapper
26 for(int k=sz_-1; k>=sz_-BRTRLSIZE; k--) dst_[k] = src[k];
27
28}
29
30
31void BRPaquet::Print(ostream & os, int nelt, bool prht)
32{
33 os << "BRPaquet::Print() PaqSz=" << PaquetSize() << " DataSize=" << DataSize()
34 << " dst_pointer=(hex)" << hex << (unsigned long)dst_ << dec << endl;
35 if (TrailerSize() > 0)
36 os << " ...HDRMarker(hex)=" << hex << HDRMarker() << " TRLMarker=" << TRLMarker() << dec << endl;
37 else
38 os << " ...HDRMarker(hex)=" << hex << HDRMarker() << " NO TRLMarker=" << dec << endl;
39 UInt32 tt1, tt2;
40// tt2 = (TimeTag()&0xFFFFFFFF00000000) >> 32;
41 tt2=0;
42 tt1 = TimeTag()&0x00000000FFFFFFFF;
43 os << " ...TimeTag (hex)=" << hex << TimeTag() << " TT1= " << tt1 << " TT2=" << tt2 << dec << endl;
44 if (nelt > DataSize()/2) nelt = DataSize()/2;
45 os << " ...Data[1.." << nelt << "]= ";
46 for(int k=0; k<nelt; k++) os << (int)(*(Data()+k)) << " , ";
47 os << endl;
48 os << " ...Data[" << DataSize()-nelt << ".." << DataSize()-1 << "]= ";
49 for(int k=DataSize()-nelt; k<DataSize(); k++) os << (int)(*(Data()+k)) << " , ";
50 os << endl;
51 if (prht) { // Impression header / trailer
52 UInt32* hdr = (UInt32*)Header();
53 os << " ...Header (hex):" << hex ;
54 for(int k=0; k<HeaderSize()/sizeof(UInt32); k++)
55 os << hdr[k] << " , " ;
56 os << dec << endl;
57 if (TrailerSize() > 0) {
58 UInt32* trl = (UInt32*)Trailer();
59 os << " ...Trailer (hex):" << hex ;
60 for(int k=0; k<TrailerSize()/sizeof(UInt32); k++)
61 os << trl[k] << " , " ;
62 os << dec << endl;
63 }
64 }
65}
Note: See TracBrowser for help on using the repository browser.