OpendTect  6.3
strmdata.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: 3-4-1996
9  Contents: Data on any stream
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "basicmod.h"
15 
16 #include "ptrman.h"
17 #include "bufstring.h"
18 #include <iosfwd>
19 
20 
30 {
31 public:
32 
33  StreamData();
34  StreamData(const StreamData&) = delete;
35  StreamData(StreamData&&);
36 
37  StreamData& operator=(const StreamData&) = delete;
38  StreamData& operator=(StreamData&&);
39 
40  void mDeprecated transferTo(StreamData&);
41 
42  void close();
43  bool usable() const;
44 
45  void setFileName( const char* fn );
46  const char* fileName() const;
47 
48  std::ios* streamPtr() const;
49 
50  std::istream* iStrm() const { return impl_->istrm_; }
51  std::ostream* oStrm() const { return impl_->ostrm_; }
52 
53  void setIStrm( std::istream* );
54  void setOStrm( std::ostream* );
55 
56  //Internal use (unless you're making connectors to weird external streams)
58  {
59  public:
60  virtual void close();
61  virtual ~StreamDataImpl() {}
63  std::istream* istrm_ = 0;
64  std::ostream* ostrm_ = 0;
65  };
66 
67  void setImpl(StreamDataImpl*);
68 
69 private:
70 
72 
73 public:
74 
75  //Use iStrm() and oStrm() instead
76  mDeprecated std::istream* istrm;
77  mDeprecated std::ostream* ostrm;
78 };
#define mExpClass(module)
Definition: commondefs.h:157
CompoundKey & operator=(const char *s)
Definition: compoundkey.h:30
BufferString fname_
Definition: strmdata.h:62
Definition: ptrman.h:115
std::istream * istrm
Definition: strmdata.h:76
std::ostream * oStrm() const
Definition: strmdata.h:51
Holds data to use and close an iostream.
Definition: strmdata.h:29
std::istream * iStrm() const
Definition: strmdata.h:50
#define mDeprecated
Definition: plfdefs.h:213
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
std::ostream * ostrm
Definition: strmdata.h:77
PtrMan< StreamDataImpl > impl_
Definition: strmdata.h:71
Definition: strmdata.h:57
BufferString impl_
Definition: compoundkey.h:55
virtual ~StreamDataImpl()
Definition: strmdata.h:61

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