OpendTect  6.6
conn.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: 21-10-1995
9  Contents: Connections with data providers (Streams, databases)
10  RCS: $Id$
11 ________________________________________________________________________
12 
13 -*/
14 
15 
16 #include "generalmod.h"
17 #include "multiid.h"
18 class IOObj;
19 class StreamConn;
20 
29 mExpClass(General) Conn
30 {
31 public:
32 
33  virtual ~Conn() {}
34  virtual void close() {}
35 
36  virtual bool isBad() const = 0;
37  virtual const char* creationMessage() const { return 0; }
38 
39  virtual const char* connType() const = 0;
40  virtual bool forRead() const = 0;
41  virtual bool forWrite() const { return !forRead(); }
42 
43  virtual StreamConn* getStream() { return 0; }
44  inline bool isStream() const
45  { return const_cast<Conn*>(this)->getStream(); }
46 
47  inline Conn* conn() { return gtConn(); }
48  inline const Conn* conn() const { return gtConn(); }
50 
51  const MultiID& linkedTo() const { return ioobjid_; }
52  void setLinkedTo( const MultiID& id ) { ioobjid_ = id; }
53 
54  // to fill 'forread' variables
55  static const bool Read; // true
56  static const bool Write; // false
57 
58 protected:
59 
60  Conn() {}
61 
63 
64  virtual Conn* gtConn() const { return const_cast<Conn*>(this); }
65 
66 };
67 
68 
73 mExpClass(General) XConn : public Conn
74 {
75 
76  friend class IOX;
77 
78 public:
79 
80  XConn() : conn_(0), mine_(true) {}
81  ~XConn() { if ( mine_ ) delete conn_; }
82 
83  virtual bool isBad() const
84  { return conn_ ? conn_->isBad() : true; }
85  virtual const char* creationMessage() const
86  { return conn_ ? conn_->creationMessage() : 0; }
87  virtual bool forRead() const
88  { return conn_ && conn_->forRead(); }
89  virtual bool forWrite() const
90  { return conn_ && conn_->forWrite(); }
91  virtual void close()
92  { if ( conn_ ) conn_->close(); }
93  virtual StreamConn* getStream()
94  { return conn_ ? conn_->getStream() : 0; }
95 
96  void setConn( Conn* c, bool becomesmine=true )
97  { if ( mine_ ) delete conn_;
98  conn_ = c; mine_ = becomesmine; }
99 
100  const char* connType() const { return sType(); }
101  static const char* sType();
102 
103 protected:
104 
106  bool mine_;
107 
108  Conn* gtConn() const { return const_cast<Conn*>(conn_); }
109 
110 };
111 
112 
Conn::conn
Conn * conn()
Definition: conn.h:47
XConn
Connection implemented in terms of another Conn object.
Definition: conn.h:74
Conn
Data connection.
Definition: conn.h:30
Conn::connType
virtual const char * connType() const =0
XConn::gtConn
Conn * gtConn() const
Definition: conn.h:108
XConn::forRead
virtual bool forRead() const
Definition: conn.h:87
Conn::ioobjid_
MultiID ioobjid_
Definition: conn.h:62
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
XConn::conn_
Conn * conn_
Definition: conn.h:105
Conn::creationMessage
virtual const char * creationMessage() const
Definition: conn.h:37
Conn::forWrite
virtual bool forWrite() const
Definition: conn.h:41
Conn::conn
const Conn * conn() const
Returns the actual connection doing the work.
Definition: conn.h:48
Conn::close
virtual void close()
Definition: conn.h:34
multiid.h
Conn::setLinkedTo
void setLinkedTo(const MultiID &id)
Definition: conn.h:52
XConn::isBad
virtual bool isBad() const
Definition: conn.h:83
StreamConn
Connection with an underlying iostream.
Definition: streamconn.h:26
Conn::isBad
virtual bool isBad() const =0
XConn::creationMessage
virtual const char * creationMessage() const
Definition: conn.h:85
IOObj
Definition: ioobj.h:58
XConn::sType
static const char * sType()
Conn::Write
static const bool Write
Definition: conn.h:56
XConn::close
virtual void close()
Definition: conn.h:91
XConn::XConn
XConn()
Definition: conn.h:80
Conn::linkedTo
const MultiID & linkedTo() const
Definition: conn.h:51
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
XConn::forWrite
virtual bool forWrite() const
Definition: conn.h:89
StreamConn::forRead
virtual bool forRead() const
XConn::~XConn
~XConn()
Definition: conn.h:81
IOX
Definition: iox.h:22
XConn::getStream
virtual StreamConn * getStream()
Definition: conn.h:93
Conn::~Conn
virtual ~Conn()
Definition: conn.h:33
XConn::setConn
void setConn(Conn *c, bool becomesmine=true)
Definition: conn.h:96
Conn::Read
static const bool Read
Definition: conn.h:55
StreamConn::getStream
virtual StreamConn * getStream()
Definition: streamconn.h:40
Conn::Conn
Conn()
Definition: conn.h:60
XConn::mine_
bool mine_
Definition: conn.h:106
Conn::forRead
virtual bool forRead() const =0
Conn::isStream
bool isStream() const
Definition: conn.h:44
Conn::gtConn
virtual Conn * gtConn() const
Definition: conn.h:64
Conn::getStream
virtual StreamConn * getStream()
Definition: conn.h:43
XConn::connType
const char * connType() const
Definition: conn.h:100

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