OpendTect  6.6
volprocchainoutput.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: Feb 2016
9  RCS: $Id$
10 ________________________________________________________________________
11 
12 
13 -*/
14 
15 #include "volumeprocessingmod.h"
16 #include "executor.h"
17 #include "multiid.h"
18 #include "trckeyzsampling.h"
19 #include "threadlock.h"
20 
21 class IOPar;
22 class JobCommunic;
23 class ProgressRecorder;
24 class SeisDataPackWriter;
25 
26 
27 namespace VolProc
28 {
29 
30 class Chain;
31 class ChainExecutor;
32 class ChainOutputStorer;
33 
36 mExpClass(VolumeProcessing) ChainOutput : public Executor
38 public:
39 
42 
43  void setChainID(const MultiID&);
44  void setOutputID(const MultiID&);
47  const StepInterval<int>&);
48  void usePar(const IOPar&);
49 
50  virtual od_int64 nrDone() const;
51  virtual od_int64 totalNr() const;
52  virtual uiString uiMessage() const;
53  virtual uiString uiNrDoneText() const;
54  virtual int nextStep();
55 
57  virtual void controlWork(Control);
58  virtual void enableWorkControl(bool yn=true);
60 
61 protected:
62 
69 
74  int nrexecs_;
78 
82  bool storererr_;
84 
85  int getChain();
87  int setNextChunk();
88  bool openOutput();
90  int retError(const uiString&);
91  int retMoreToDo();
93  void manageStorers();
94  void reportFinished(ChainOutputStorer&);
95 
96  friend class ChainOutputStorer;
97 
98 };
99 
100 } // namespace VolProc
101 
VolProc::ChainOutput::jobcomm_
JobCommunic * jobcomm_
Definition: volprocchainoutput.h:83
VolProc::ChainOutput::chain_
Chain * chain_
Definition: volprocchainoutput.h:70
VolProc::ChainOutput::mODTextTranslationClass
mODTextTranslationClass(ChainOutput)
VolProc::ChainOutput::toremstorers_
ObjectSet< ChainOutputStorer > toremstorers_
Definition: volprocchainoutput.h:81
TrcKeySampling
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:35
VolProc
Adapter for a VolProc chain to external attribute calculation.
Definition: seisdatapackwriter.h:24
VolProc::ChainOutput::setChainID
void setChainID(const MultiID &)
VolProc::ChainOutput
Manages output creation for a VolProc::Chain.
Definition: volprocchainoutput.h:37
VolProc::ChainOutput::outputzrg_
StepInterval< int > outputzrg_
Definition: volprocchainoutput.h:76
VolProc::ChainOutput::controlWork
virtual void controlWork(Control)
JobCommunic
Multi-machine socket communicator Handles the communication between a client and the primary host,...
Definition: jobcommunic.h:50
VolProc::ChainOutput::uiNrDoneText
virtual uiString uiNrDoneText() const
will be nrDoneText() in 7.x
ObjectSet< ChainOutputStorer >
VolProc::ChainOutput::usePar
void usePar(const IOPar &)
VolProc::ChainOutput::chainpar_
IOPar * chainpar_
Definition: volprocchainoutput.h:68
VolProc::ChainOutput::setupChunking
int setupChunking()
VolProc::ChainOutput::ChainOutput
ChainOutput()
od_int64
#define od_int64
Definition: plftypes.h:35
ProgressMeter
is an interface where processes can report their progress.
Definition: progressmeter.h:21
sKey::Chain
FixedString Chain()
Definition: keystrs.h:44
VolProc::ChainOutput::cs_
TrcKeyZSampling cs_
Definition: volprocchainoutput.h:65
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
VolProc::ChainOutput::setProgressMeter
virtual void setProgressMeter(ProgressMeter *)
Must be called before execute()
VolProc::ChainOutput::curexecnr_
int curexecnr_
Definition: volprocchainoutput.h:75
Task::Control
Control
Definition: task.h:55
SeisDataPackWriter
Definition: seisdatapackwriter.h:28
VolProc::Chain
A chain of Steps that can be applied to a volume of scalars.
Definition: volprocchain.h:29
VolProc::ChainOutput::storererr_
bool storererr_
Definition: volprocchainoutput.h:82
VolProc::ChainOutput::openOutput
bool openOutput()
VolProc::ChainOutput::uiMessage
virtual uiString uiMessage() const
will be message() again in 7.x
VolProc::ChainOutput::nrDone
virtual od_int64 nrDone() const
TrcKeyZSampling
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:35
VolProc::ChainOutput::setJobCommunicator
void setJobCommunicator(JobCommunic *)
VolProc::ChainOutput::wrr_
SeisDataPackWriter * wrr_
Definition: volprocchainoutput.h:72
VolProc::ChainOutput::chainexec_
ChainExecutor * chainexec_
Definition: volprocchainoutput.h:71
multiid.h
StepInterval< int >
VolProc::ChainOutput::tkscalcscope_
TrcKeySampling tkscalcscope_
Definition: volprocchainoutput.h:66
VolProc::ChainOutput::progresskeeper_
ProgressRecorder & progresskeeper_
Definition: volprocchainoutput.h:77
VolProc::ChainOutput::startWriteChunk
void startWriteChunk()
VolProc::ChainOutput::getChain
int getChain()
VolProc::ChainOutput::setTrcKeyZSampling
void setTrcKeyZSampling(const TrcKeyZSampling &)
trckeyzsampling.h
VolProc::ChainOutput::setOutputID
void setOutputID(const MultiID &)
Executor
Specification to enable chunkwise execution of a process.
Definition: executor.h:39
VolProc::ChainOutput::setCalculationScope
bool setCalculationScope(const TrcKeySampling &, const StepInterval< int > &)
executor.h
VolProc::ChainOutput::storers_
ObjectSet< ChainOutputStorer > storers_
Definition: volprocchainoutput.h:80
VolProc::ChainExecutor
executes the work for a single VolProc::Chain.
Definition: volprocchainexec.h:27
VolProc::ChainOutput::totalNr
virtual od_int64 totalNr() const
MultiID
Compound key consisting of ints.
Definition: multiid.h:24
VolProc::ChainOutput::tkscalcdone_
TrcKeySampling tkscalcdone_
Definition: volprocchainoutput.h:67
VolProc::ChainOutput::reportFinished
void reportFinished(ChainOutputStorer &)
VolProc::ChainOutput::setNextChunk
int setNextChunk()
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
VolProc::ChainOutput::retError
int retError(const uiString &)
VolProc::ChainOutput::nextStep
virtual int nextStep()
VolProc::ChainOutput::createNewChainExec
void createNewChainExec()
threadlock.h
VolProc::ChainOutput::manageStorers
void manageStorers()
VolProc::ChainOutput::neednextchunk_
bool neednextchunk_
Definition: volprocchainoutput.h:73
VolProc::ChainOutput::retMoreToDo
int retMoreToDo()
VolProc::ChainOutput::chainid_
MultiID chainid_
Definition: volprocchainoutput.h:63
VolProc::ChainOutput::enableWorkControl
virtual void enableWorkControl(bool yn=true)
Must be called before execute()
VolProc::ChainOutput::storerlock_
Threads::Lock storerlock_
Definition: volprocchainoutput.h:79
VolProc::ChainOutput::~ChainOutput
~ChainOutput()
Threads::Lock
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class.
Definition: threadlock.h:53
ProgressRecorder
ProgressMeter that helps unifying different tasks.
Definition: progressmeterimpl.h:26
IOPar
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:55
VolProc::ChainOutput::nrexecs_
int nrexecs_
Definition: volprocchainoutput.h:74
VolProc::ChainOutput::outid_
MultiID outid_
Definition: volprocchainoutput.h:64

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