OpendTect  6.3
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 ________________________________________________________________________
11 
12 */
13 
14 
15 #include "generalmod.h"
16 #include "bindatadesc.h"
17 #include "enums.h"
18 
19 #define mDeclConstr(T,ii,is) \
20 DataCharacteristics( const T* ) \
21 : BinDataDesc(ii,is,sizeof(T)), fmt_(Ieee), littleendian_(__islittle__) {} \
22 DataCharacteristics( const T& ) \
23 : BinDataDesc(ii,is,sizeof(T)), fmt_(Ieee), littleendian_(__islittle__) {}
24 
36 {
37 public:
38 
39  enum Format { Ieee, Ibm };
40 
43 
44  DataCharacteristics( bool ii=false, bool is=true,
45  ByteCount n=N4, Format f=Ieee,
46  bool l=__islittle__ )
47  : BinDataDesc(ii,is,n)
48  , fmt_(f), littleendian_(l) {}
49  DataCharacteristics( const BinDataDesc& bd )
50  : BinDataDesc(bd)
51  , fmt_(Ieee), littleendian_(__islittle__) {}
52 
53  inline bool isIeee() const { return fmt_ == Ieee; }
54 
55  DataCharacteristics( unsigned char c1,unsigned char c2 )
56  { set(c1,c2); }
57  DataCharacteristics( const char* s ) { set(s); }
58 
59  virtual int maxStringifiedSize() const { return 50; }
60  virtual void toString(BufferString&) const;
61  virtual void set(const char*);
62  virtual void dump(unsigned char&,unsigned char&) const;
63  virtual void set(unsigned char,unsigned char);
64 
65  mDeclConstr(signed char,true,true)
66  mDeclConstr(short,true,true)
67  mDeclConstr(int,true,true)
68  mDeclConstr(unsigned char,true,false)
69  mDeclConstr(unsigned short,true,false)
70  mDeclConstr(unsigned int,true,false)
71  mDeclConstr(float,false,true)
72  mDeclConstr(double,false,true)
73  mDeclConstr(od_int64,true,true)
74 
75  bool operator ==( const DataCharacteristics& dc ) const
76  { return isEqual(dc); }
77  bool operator !=( const DataCharacteristics& dc ) const
78  { return !isEqual(dc); }
79  DataCharacteristics& operator =( const BinDataDesc& bd )
80  { BinDataDesc::operator=(bd); return *this; }
81 
82  bool needSwap() const
83  { return (int)nrbytes_ > 1
84  && littleendian_ != __islittle__; }
85 
87  mDeclareEnumUtils(UserType)
88  DataCharacteristics(UserType);
89  UserType userType() const;
90 
91  double getLimitValue(bool max) const;
92 
93 };
94 
95 #undef mDeclConstr
#define mExpClass(module)
Definition: commondefs.h:157
ByteCount
Definition: bindatadesc.h:45
#define od_int64
Definition: plftypes.h:34
FPDataRepType
Definition: commontypes.h:63
#define mDeclareEnumUtils(enm)
Some utilities surrounding the often needed enum <-> string table.
Definition: enums.h:188
bool isIeee() const
Definition: datachar.h:53
OD::FPDataRepType UserType
Definition: datachar.h:86
#define __islittle__
Definition: plfdefs.h:113
DataCharacteristics(bool ii=false, bool is=true, ByteCount n=N4, Format f=Ieee, bool l=__islittle__)
Definition: datachar.h:44
bool littleendian_
Definition: datachar.h:42
byte-level data characteristics of stored data.
Definition: datachar.h:35
Format fmt_
Definition: datachar.h:41
bool operator!=(const ArrayNDInfo &a1, const ArrayNDInfo &a2)
Definition: arrayndinfo.h:60
BufferString toString(const DBKey &ky)
Definition: dbkey.h:115
bool needSwap() const
Definition: datachar.h:82
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Definition: datachar.h:39
DataCharacteristics(const BinDataDesc &bd)
Definition: datachar.h:49
virtual int maxStringifiedSize() const
Definition: datachar.h:59
DataCharacteristics(const char *s)
Definition: datachar.h:57
Format
Definition: datachar.h:39
Description of binary data.
Definition: bindatadesc.h:41
#define mDeclConstr(T, ii, is)
Definition: datachar.h:19
DataCharacteristics(unsigned char c1, unsigned char c2)
Definition: datachar.h:55

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