OpendTect  6.6
ascstream.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: 2-5-1995
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "basicmod.h"
15 #include "bufstring.h"
16 #include "plftypes.h"
17 #include "od_iostream.h"
18 
19 #define mAscStrmParagraphMarker "!"
20 #define mAscStrmKeyValSep ':'
21 
22 
32 {
33 
34 public:
35 
37  ascostream(od_ostream*); // becomes mine
38  virtual ~ascostream();
39 
40  bool isOK() const;
41 
42  bool putHeader(const char* filetype);
43  bool put(const char*,const char* val=0);
44  bool put(const char*,const OD::String&);
45 
46 #define mAscStreamDefFns(fn,typ) \
47  bool fn(const char*,typ); \
48  bool fn(const char*,typ,typ); \
49  bool fn(const char*,typ,typ,typ); \
50  bool fn(const char*,typ,typ,typ,typ)
51  mAscStreamDefFns(put,int);
55  mAscStreamDefFns(put,float);
56  mAscStreamDefFns(put,double);
57  mAscStreamDefFns(putYN,bool);
58 #undef mAscStreamDefFns
59 
60  void newParagraph();
61 
62  inline od_ostream& stream() { return strm_; }
63 
64 protected:
65 
67  bool strmmine_;
68 
69  void putKeyword(const char*,bool wsep=true);
70 
71 };
72 
73 
83 {
84 public:
85  ascistream(od_istream&,bool rdhead=true);
86  ascistream(od_istream*,bool rdhead=true);
87  virtual ~ascistream();
88 
90  bool isOK() const;
91 
92  const char* headerStartLine() const { return header_.buf(); }
93  bool hasStandardHeader() const;
94  const char* fileType() const { return filetype_.buf(); }
95  bool isOfFileType(const char*) const;
96  const char* version() const;
97  const char* timeStamp() const { return timestamp_.buf(); }
98  int majorVersion() const;
99  int minorVersion() const;
100  int patchVersion() const;
101 
102  enum EntryType { Empty, Keyword, KeyVal, ParagraphMark, EndOfFile };
103  EntryType type() const;
104  bool atEOS() const { return type() > KeyVal; }
106 
107  const char* keyWord() const { return keybuf_.buf(); }
108  const char* value() const { return valbuf_.buf(); }
109  bool hasKeyword(const char*) const;
110  bool hasValue(const char*) const;
111  int getIValue(int i=0) const;
112  od_uint32 getUIValue(int i=0) const;
113  od_int64 getI64Value(int i=0) const;
114  od_uint64 getUI64Value(int i=0) const;
115  float getFValue(int i=0) const;
116  double getDValue(int i=0) const;
117  bool getYN(int i=0) const;
118 
119  inline od_istream& stream() { return strm_; }
120 
121  // This is for overriding what's in the file
122  void setKeyWord( const char* s ) { keybuf_ = s; }
123  void setValue( const char* s ) { valbuf_ = s; }
124 
125 protected:
126 
128  bool strmmine_;
131 
135 
136 private:
137 
138  void init(bool);
139 
140 };
141 
142 
143 inline bool atEndOfSection( const ascistream& strm )
144 { return strm.atEOS(); }
145 
146 
od_uint64
#define od_uint64
Definition: plftypes.h:36
ascostream::strmmine_
bool strmmine_
Definition: ascstream.h:67
ascistream::getDValue
double getDValue(int i=0) const
ascistream::valbuf_
BufferString valbuf_
Definition: ascstream.h:130
ascistream::getUI64Value
uint64_t getUI64Value(int i=0) const
ascostream::put
bool put(const char *, const char *val=0)
ascistream::fileType
const char * fileType() const
Definition: ascstream.h:94
ascostream::putHeader
bool putHeader(const char *filetype)
ascistream::ParagraphMark
@ ParagraphMark
Definition: ascstream.h:102
od_int64
#define od_int64
Definition: plftypes.h:35
ascistream::filetype_
BufferString filetype_
Definition: ascstream.h:133
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
od_istream
OD class for stream read common access to the std::cin.
Definition: od_istream.h:24
ascistream::minorVersion
int minorVersion() const
ascistream::value
const char * value() const
Definition: ascstream.h:108
plftypes.h
ascistream::majorVersion
int majorVersion() const
ascistream::timeStamp
const char * timeStamp() const
Definition: ascstream.h:97
ascistream::strm_
od_istream & strm_
Definition: ascstream.h:127
ascostream::~ascostream
virtual ~ascostream()
bufstring.h
ascostream::strm_
od_ostream & strm_
Definition: ascstream.h:66
ascostream::newParagraph
void newParagraph()
ascistream::keybuf_
BufferString keybuf_
Definition: ascstream.h:129
ascostream
OpendTect standard ascii format file writing.
Definition: ascstream.h:32
ascistream::EntryType
EntryType
Definition: ascstream.h:102
ascistream::headerStartLine
const char * headerStartLine() const
Definition: ascstream.h:92
ascistream::timestamp_
BufferString timestamp_
Definition: ascstream.h:134
ascistream::getIValue
int getIValue(int i=0) const
ascistream::setKeyWord
void setKeyWord(const char *s)
Definition: ascstream.h:122
ascistream::ascistream
ascistream(od_istream &, bool rdhead=true)
ascistream::hasStandardHeader
bool hasStandardHeader() const
ascistream::atEOS
bool atEOS() const
returns true if at end of segment (='paragraph')
Definition: ascstream.h:104
mAscStreamDefFns
#define mAscStreamDefFns(fn, typ)
Definition: ascstream.h:46
ascistream::patchVersion
int patchVersion() const
ascostream::put
bool put(const char *, const OD::String &)
ascostream::putKeyword
void putKeyword(const char *, bool wsep=true)
ascistream::init
void init(bool)
ascistream::type
EntryType type() const
ascistream::next
ascistream & next()
ascistream::isOK
bool isOK() const
ascistream::getFValue
float getFValue(int i=0) const
ascostream::ascostream
ascostream(od_ostream *)
ascistream::isOfFileType
bool isOfFileType(const char *) const
ascistream::hasKeyword
bool hasKeyword(const char *) const
ascistream::stream
od_istream & stream()
Definition: ascstream.h:119
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
od_iostream.h
ascistream::ascistream
ascistream(od_istream *, bool rdhead=true)
ascistream::setValue
void setValue(const char *s)
Definition: ascstream.h:123
OD::String
encapsulates the read-access-only part of strings in OD.
Definition: odstring.h:31
ascostream::ascostream
ascostream(od_ostream &)
ascistream::header_
BufferString header_
Definition: ascstream.h:132
ascistream
OpendTect standard ascii format file reading.
Definition: ascstream.h:83
ascostream::stream
od_ostream & stream()
Definition: ascstream.h:62
ascistream::version
const char * version() const
ascistream::keyWord
const char * keyWord() const
Definition: ascstream.h:107
ascistream::hasValue
bool hasValue(const char *) const
ascistream::strmmine_
bool strmmine_
Definition: ascstream.h:128
ascostream::isOK
bool isOK() const
atEndOfSection
bool atEndOfSection(const ascistream &strm)
Definition: ascstream.h:143
od_uint32
#define od_uint32
Definition: plftypes.h:31
od_ostream
OD class for stream write common access to the user log file, or std::cout in other than od_main.
Definition: od_ostream.h:26
ascistream::getYN
bool getYN(int i=0) const
ascistream::~ascistream
virtual ~ascistream()
ascistream::getI64Value
int64_t getI64Value(int i=0) const
ascistream::getUIValue
unsigned int getUIValue(int i=0) const

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