14 #error To include __FILE__, set mTheType 17 #define mDICB(fntyp,fn) \ 18 ((DataInterpreter<mTheType>::fntyp)(&DataInterpreter<mTheType>::fn)) 20 #define mDefGetPut(fnnm) \ 22 getfn = needswap ? mDICB(GetFn,get##fnnm##swp) : mDICB(GetFn,get##fnnm); \ 23 putfn = needswap ? mDICB(PutFn,put##fnnm##swp) : mDICB(PutFn,put##fnnm); \ 26 #define mDefGetPutNoSwap(fnnm) \ 27 { getfn = mDICB(GetFn,get##fnnm); putfn = mDICB(PutFn,put##fnnm); } 37 :
mDICB(SwapFn,swap2) ) );
39 getfn =
mDICB(GetFn,get0);
40 putfn =
mDICB(PutFn,put0);
41 bool needswap = !ignend && dc.
needSwap();
69 default:
pErrMsg(
"Invalid enum");
break;
90 default:
pErrMsg(
"Unhandled enum");
break;
139 #define mSet(nb,isint,frmt,iss,swpd) \ 140 dc = DataCharacteristics( isint, iss, (BinDataDesc::ByteCount)nb, \ 141 DataCharacteristics::frmt, __islittle__ != swpd ); 152 mSet(2,
true,Ieee,
true,
false)
154 mSet(2,
true,Ieee,
false,
false)
156 mSet(2,
true,Ibm,
true,
false)
158 mSet(2,
true,Ieee,
true,
true)
160 mSet(2,
true,Ieee,
false,
true)
162 mSet(2,
true,Ibm,
true,
true)
168 mSet(4,
true,Ieee,
true,
false)
170 mSet(4,
true,Ieee,
false,
false)
172 mSet(4,
false,Ieee,
true,
false)
174 mSet(4,
true,Ibm,
true,
false)
176 mSet(4,
false,Ibm,
true,
false)
178 mSet(4,
true,Ieee,
true,
true)
180 mSet(4,
true,Ieee,
false,
true)
182 mSet(4,
false,Ieee,
true,
true)
184 mSet(4,
true,Ibm,
true,
true)
186 mSet(4,
false,Ibm,
true,
true)
192 mSet(8,
false,Ieee,
true,
false)
194 mSet(8,
false,Ieee,
true,
true)
196 mSet(8,
true,Ieee,
true,
false)
198 mSet(8,
true,Ieee,
true,
true)
204 mSet(1,
true,Ieee,
true,
false)
206 mSet(1,
true,Ieee,
false,
false)
240 #define mDoChgSwp(typ) \ 241 if ( getfn == &DataInterpreter<mTheType>::get##typ ) \ 243 getfn = &DataInterpreter<mTheType>::get##typ##swp; \ 244 putfn = &DataInterpreter<mTheType>::put##typ##swp; \ 246 else if ( getfn == &DataInterpreter<mTheType>::get##typ##swp ) \ 248 getfn = &DataInterpreter<mTheType>::get##typ; \ 249 putfn = &DataInterpreter<mTheType>::put##typ; \
Definition: bindatadesc.h:45
#define mSet(nb, isint, frmt, iss, swpd)
Definition: i_datainterp.h:139
SwapFn swpfn
Definition: datainterp.h:152
DataCharacteristics dataChar() const
GetFn getfn
Definition: datainterp.h:150
void set(const DataCharacteristics &, bool ignoreendianness=false)
use ignoreendianness when you pre-byteswap the data
Definition: bindatadesc.h:45
bool isIeee() const
Definition: datachar.h:53
Byte-level data interpreter.
Definition: cbvswriter.h:20
ByteCount nrBytes() const
Definition: bindatadesc.h:60
Definition: bindatadesc.h:45
PutFn putfn
Definition: datainterp.h:151
#define mDoChgSwp(typ)
Definition: i_datainterp.h:240
byte-level data characteristics of stored data.
Definition: datachar.h:35
#define mDefGetPut(fnnm)
Definition: i_datainterp.h:20
#define mDefGetPutNoSwap(fnnm)
Definition: i_datainterp.h:26
DataInterpreter< T > & operator=(const DataInterpreter< T > &)
bool needSwap() const
Definition: datachar.h:82
bool isInteger() const
Definition: bindatadesc.h:58
Definition: bindatadesc.h:45
#define mDICB(fntyp, fn)
Definition: i_datainterp.h:17
DataInterpreter(const DataCharacteristics &, bool ignoreendianness=false)
#define pErrMsg(msg)
Usual access point for programmer error messages.
Definition: errmsg.h:34
bool isSigned() const
Definition: bindatadesc.h:59