OpendTect  6.6
datachar.h
Go to the documentation of this file.
1 #pragma once
2 
3 /*
4 ________________________________________________________________________
5 
6  (C) dGB Beheer B.V.; (LICENSE) http://opendtect.org/OpendTect_license.txt
7  Author: A.H.Bril
8  Date: Nov 2000
9  Contents: Binary data interpretation
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 */
14 
15 
16 #include "generalmod.h"
17 #include "bindatadesc.h"
18 #include "enums.h"
19 
20 #define mDeclConstr(T,ii,is) \
21 DataCharacteristics( const T* ) \
22 : BinDataDesc(ii,is,sizeof(T)), fmt_(Ieee), littleendian_(__islittle__) {} \
23 DataCharacteristics( const T& ) \
24 : BinDataDesc(ii,is,sizeof(T)), fmt_(Ieee), littleendian_(__islittle__) {}
25 
37 {
38 public:
39 
40  enum Format { Ieee, Ibm };
41 
44 
45  DataCharacteristics( bool ii=false, bool is=true,
46  ByteCount n=N4, Format f=Ieee,
47  bool l=__islittle__ )
48  : BinDataDesc(ii,is,n)
49  , fmt_(f), littleendian_(l) {}
51  : BinDataDesc(bd)
52  , fmt_(Ieee), littleendian_(__islittle__) {}
53 
54  inline bool isIeee() const { return fmt_ == Ieee; }
55 
56  DataCharacteristics( unsigned char c1,unsigned char c2 )
57  { set(c1,c2); }
58  DataCharacteristics( const char* s ) { set(s); }
59 
60  virtual int maxStringifiedSize() const { return 50; }
61  virtual void toString(BufferString&) const;
62  virtual void set(const char*);
63  virtual void dump(unsigned char&,unsigned char&) const;
64  virtual void set(unsigned char,unsigned char);
65 
66  mDeclConstr(signed char,true,true)
67  mDeclConstr(short,true,true)
68  mDeclConstr(int,true,true)
69  mDeclConstr(unsigned char,true,false)
70  mDeclConstr(unsigned short,true,false)
71  mDeclConstr(unsigned int,true,false)
72  mDeclConstr(float,false,true)
73  mDeclConstr(double,false,true)
74  mDeclConstr(od_int64,true,true)
75 
76  bool operator ==( const DataCharacteristics& dc ) const
77  { return isEqual(dc); }
78  bool operator !=( const DataCharacteristics& dc ) const
79  { return !isEqual(dc); }
81  { BinDataDesc::operator=(bd); return *this; }
82 
83  bool needSwap() const
84  { return (int)nrbytes_ > 1
85  && littleendian_ != __islittle__; }
86 
87  enum UserType { Auto=0, SI8, UI8, SI16, UI16, SI32, UI32, F32,
88  F64, SI64 };
91  UserType userType() const;
92  static bool getUserTypeFromPar(const IOPar&,UserType&);
94  void putUserType( IOPar& iop ) const
95  { putUserTypeToPar( iop, userType() ); }
96 
97  double getLimitValue(bool max) const;
98 
101  {}
102 };
103 
104 #undef mDeclConstr
105 
DataCharacteristics::putUserType
void putUserType(IOPar &iop) const
Definition: datachar.h:94
mDeclConstr
#define mDeclConstr(T, ii, is)
Definition: datachar.h:20
DataCharacteristics::getLimitValue
double getLimitValue(bool max) const
DataCharacteristics::DataCharacteristics
DataCharacteristics(OD::DataRepType tp)
Definition: datachar.h:99
OD::SI16
@ SI16
Definition: commontypes.h:49
DataCharacteristics::set
virtual void set(unsigned char, unsigned char)
OD::F64
@ F64
Definition: commontypes.h:49
DataCharacteristics::Format
Format
Definition: datachar.h:40
od_int64
#define od_int64
Definition: plftypes.h:35
OD::SI32
@ SI32
Definition: commontypes.h:49
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
__islittle__
#define __islittle__
Definition: plfdefs.h:135
DataCharacteristics::dump
virtual void dump(unsigned char &, unsigned char &) const
DataCharacteristics::maxStringifiedSize
virtual int maxStringifiedSize() const
Definition: datachar.h:60
DataCharacteristics::mDeclareEnumUtils
mDeclareEnumUtils(UserType) DataCharacteristics(UserType)
DataCharacteristics::Ieee
@ Ieee
Definition: datachar.h:40
BinDataDesc::ByteCount
ByteCount
Definition: bindatadesc.h:46
OD::SI64
@ SI64
Definition: commontypes.h:49
DataCharacteristics::DataCharacteristics
DataCharacteristics(const BinDataDesc &bd)
Definition: datachar.h:50
DataCharacteristics::needSwap
bool needSwap() const
Definition: datachar.h:83
DataCharacteristics::userType
UserType userType() const
will return 'nearest'
DataCharacteristics::UserType
UserType
Definition: datachar.h:87
operator!=
bool operator!=(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:90
DataCharacteristics::putUserTypeToPar
static void putUserTypeToPar(IOPar &, UserType)
BufferStringSet::operator=
BufferStringSet & operator=(const char *arr[])
OD::UI8
@ UI8
Definition: commontypes.h:49
DataCharacteristics::DataCharacteristics
DataCharacteristics(const char *s)
Definition: datachar.h:58
DataCharacteristics::littleendian_
bool littleendian_
Definition: datachar.h:43
BinDataDesc
Description of binary data.
Definition: bindatadesc.h:43
DataCharacteristics::fmt_
Format fmt_
Definition: datachar.h:42
DataCharacteristics::isIeee
bool isIeee() const
Definition: datachar.h:54
Conv::set
void set(T &_to, const F &fr)
template based type conversion
Definition: convert.h:27
OD::SI8
@ SI8
Definition: commontypes.h:49
DataCharacteristics::DataCharacteristics
DataCharacteristics(unsigned char c1, unsigned char c2)
Definition: datachar.h:56
OD::F32
@ F32
Definition: commontypes.h:49
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
bindatadesc.h
DataCharacteristics::set
virtual void set(const char *)
OD::DataRepType
DataRepType
Definition: commontypes.h:49
DataCharacteristics::toString
virtual void toString(BufferString &) const
DataCharacteristics::DataCharacteristics
DataCharacteristics(bool ii=false, bool is=true, ByteCount n=N4, Format f=Ieee, bool l=__islittle__)
Definition: datachar.h:45
enums.h
DataCharacteristics::getUserTypeFromPar
static bool getUserTypeFromPar(const IOPar &, UserType &)
OD::UI32
@ UI32
Definition: commontypes.h:49
OD::UI16
@ UI16
Definition: commontypes.h:49
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
DataCharacteristics
byte-level data characteristics of stored data.
Definition: datachar.h:37

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2021