OpendTect  6.6
seisrandomprovider.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: K. Tingdahl
8  Date: June 2012
9  RCS: $Id$
10  ________________________________________________________________________
11 
12  */
13 
14 
15 #include "seismod.h"
16 #include "binidvalset.h"
17 #include "callback.h"
18 #include "multidimstorage.h"
19 #include "thread.h"
20 #include "seistrc.h"
21 #include "refcount.h"
22 
23 class SeisTrcTranslator;
24 class SeisTrcReader;
25 
26 /* Request a trace anywhere, and it will become available to you as soon as
27  soon as possible. All reading is done int the background.
28 */
29 
31 {
32 public:
35 
36 
37  void requestTrace(const BinID&);
38 
40  const SeisTrc& getTrace() const { return curtrace_; }
41 
42 
43 protected:
44  bool readTraces();
45  void triggerWork();
47 
48  bool isreading_;
49 
51 
54 
57 };
58 
59 
60 
62 {
63 public:
65 
66  void addInterest(const BinID&);
67  void removeInterest(const BinID);
68 
69  const SeisTrc* getTrace(const BinID&) const;
71  const BinID& newTraceBid() const { return newtracebid_; }
72 
73 protected:
74 
75  struct TraceHolder
77  TraceHolder() : trc_( 0 ) {}
78 
80  };
81 
83 
84 
87 };
88 
SeisRandomRepository::TraceHolder
Definition: seisrandomprovider.h:76
SeisRandomRepository::SeisRandomRepository
SeisRandomRepository(const MultiID &mid)
binidvalset.h
SeisRandomProvider::lock_
Threads::ConditionVar lock_
Definition: seisrandomprovider.h:50
SeisTrcReader
reads from a seismic data store.
Definition: seisread.h:50
SeisRandomProvider::requestTrace
void requestTrace(const BinID &)
SeisRandomProvider::~SeisRandomProvider
~SeisRandomProvider()
BinIDValueSet
A Pos::IdxPairValueSet with BinIDs.
Definition: binidvalset.h:23
SeisRandomProvider::wantedbids_
BinIDValueSet wantedbids_
Definition: seisrandomprovider.h:56
SeisRandomProvider::reader_
SeisTrcReader * reader_
Definition: seisrandomprovider.h:52
Seis
Summary for a Seismic object.
Definition: segydirectdef.h:22
SeisRandomProvider::readFinished
void readFinished(CallBacker *)
SeisRandomProvider::SeisRandomProvider
SeisRandomProvider(const MultiID &mid)
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
SeisRandomProvider::readTraces
bool readTraces()
SeisTrc
Seismic trace.
Definition: seistrc.h:34
SeisRandomRepository
Definition: seisrandomprovider.h:62
SeisRandomProvider
Definition: seisrandomprovider.h:31
SeisRandomProvider::triggerWork
void triggerWork()
callback.h
CallBacker
Inherit from this class to be able to send and/or receive CallBacks.
Definition: callback.h:185
SeisRandomRepository::TraceHolder::TraceHolder
TraceHolder()
Definition: seisrandomprovider.h:77
MultiDimStorage
Definition: multidimstorage.h:25
SeisRandomProvider::isreading_
bool isreading_
Definition: seisrandomprovider.h:48
BinID
Positioning in a seismic survey: inline/crossline or lineNr/trcNr.
Definition: binid.h:31
Threads::ConditionVar
Is an object that faciliates many threads to wait for something to happen.
Definition: thread.h:110
Notifier< SeisRandomProvider >
SeisTrcTranslator
Definition: seistrctr.h:90
SeisRandomRepository::removeInterest
void removeInterest(const BinID)
SeisRandomRepository::TraceHolder::trc_
SeisTrc * trc_
Definition: seisrandomprovider.h:79
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
SeisRandomProvider::translator_
SeisTrcTranslator * translator_
Definition: seisrandomprovider.h:53
SeisRandomRepository::traceAvailable
Notifier< SeisRandomRepository > traceAvailable
Definition: seisrandomprovider.h:70
seistrc.h
SeisRandomRepository::storage_
MultiDimStorage< TraceHolder * > storage_
Definition: seisrandomprovider.h:85
SeisRandomRepository::newtracebid_
BinID newtracebid_
Definition: seisrandomprovider.h:86
refcount.h
SeisRandomProvider::curtrace_
SeisTrc curtrace_
Definition: seisrandomprovider.h:55
SeisRandomProvider::getTrace
const SeisTrc & getTrace() const
Definition: seisrandomprovider.h:40
SeisRandomRepository::getTrace
const SeisTrc * getTrace(const BinID &) const
SeisRandomRepository::incomingTrace
void incomingTrace(CallBacker *)
SeisRandomRepository::addInterest
void addInterest(const BinID &)
SeisRandomRepository::newTraceBid
const BinID & newTraceBid() const
Definition: seisrandomprovider.h:71
SeisRandomRepository::TraceHolder::mRefCountImpl
mRefCountImpl(TraceHolder)
thread.h
SeisRandomProvider::traceAvailable
Notifier< SeisRandomProvider > traceAvailable
Definition: seisrandomprovider.h:39
multidimstorage.h

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