OpendTect  6.3
od_stream.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: Bert
8  Date: Sep 2013
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "basicmod.h"
14 
15 #include "bufstring.h"
16 #include "strmdata.h"
17 #include "uistring.h"
18 #include "od_iosfwd.h"
19 #include <iosfwd>
20 namespace File { class Path; }
21 
22 
23 
54 public:
55 
56  typedef od_stream_Count Count;
57  typedef od_stream_Pos Pos;
58 
59  virtual ~od_stream();
60 
61  bool isOK() const;
62  bool isBad() const;
63 
64  uiString errMsg() const;
66  bool forRead() const;
67  bool forWrite() const;
68  bool isLocal() const;
69 
70  enum Ref { Abs, Rel, End };
71  Pos position() const;
72  void setPosition(Pos,Ref r=Abs);
73  Pos endPosition() const;
74 
75  const char* fileName() const;
76  void setFileName(const char*);
77 
78  inline StreamData& streamData() { return sd_; }
79  inline const StreamData& streamData() const { return sd_; }
80 
81  void setNoClose( bool yn=true ) { noclose_=yn; }
82  void close();
83 
84  void addErrMsgTo(BufferString&) const;
85  void addErrMsgTo(uiString&) const;
86  void addErrMsgTo(uiRetVal&) const;
87  static od_stream* create(const char*,bool forread,
88  uiString& errmsg);
90  static const char* sStdIO();
92 
93 protected:
94 
95  od_stream();
96  od_stream(const char*,bool,bool editmode=false);
97  od_stream(const File::Path&,bool,bool editmode=false);
98  od_stream(std::ostream*);
99  od_stream(std::ostream&);
100  od_stream(std::istream*);
101  od_stream(std::istream&);
102  od_stream& operator=(const od_stream&) = delete;
103 
105  bool mine_ = true;
106  bool noclose_ = false;
107  mutable uiString errmsg_;
108 
109 };
#define mExpClass(module)
Definition: commondefs.h:157
Interface for several file and directory related services.
Definition: file.h:29
StreamData sd_
Definition: od_stream.h:104
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
od_int64 od_stream_Pos
Definition: od_iosfwd.h:19
Definition: od_stream.h:70
File pathname tools.
Definition: filepath.h:35
Definition: uistring.h:88
void setNoClose(bool yn=true)
Definition: od_stream.h:81
OD base class for stream read/write.
Definition: od_stream.h:52
od_uint64 od_stream_Count
Definition: od_iosfwd.h:16
unsigned int Abs(unsigned int i)
Definition: math2.h:78
StreamData & streamData()
Definition: od_stream.h:78
Holds data to use and close an iostream.
Definition: strmdata.h:29
uiString errmsg_
Definition: od_stream.h:107
od_stream_Pos Pos
Definition: od_stream.h:57
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
static uiHor3DInterpol * create(uiParent *)
Definition: uistring.h:299
Definition: stattype.h:21
const char * errMsg() const
Definition: horizontracker.h:59
Ref
Definition: od_stream.h:70
const StreamData & streamData() const
Definition: od_stream.h:79

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