OpendTect  6.3
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 ________________________________________________________________________
10 
11 
12 -*/
13 
14 #include "volumeprocessingmod.h"
15 #include "executor.h"
16 #include "dbkey.h"
17 #include "trckeyzsampling.h"
18 #include "threadlock.h"
19 
20 class IOPar;
21 class JobCommunic;
22 class ProgressRecorder;
23 class SeisDataPackWriter;
24 
25 
26 namespace VolProc
27 {
28 
29 class Chain;
30 class ChainExecutor;
31 class ChainOutputStorer;
32 
35 mExpClass(VolumeProcessing) ChainOutput : public Executor
37 public:
38 
39  ChainOutput();
40  ~ChainOutput();
41 
42  void setChainID(const DBKey&);
43  void setOutputID(const DBKey&);
44  void setTrcKeyZSampling(const TrcKeyZSampling&);
45 
46  bool setCalculationScope(const TrcKeySampling&,
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 message() const;
53  virtual uiString nrDoneText() const;
54  virtual int nextStep();
55 
56  virtual void setProgressMeter(ProgressMeter*);
57  virtual void controlWork(Control);
58  virtual void enableWorkControl(bool yn=true);
59  void setJobCommunicator(JobCommunic*);
60 
61 protected:
62 
67 
72  int nrexecs_;
76 
80  bool storererr_;
82 
83  int getChain();
84  int setupChunking();
85  int setNextChunk();
86  bool openOutput();
87  void createNewChainExec();
88  int retError(const uiString&);
89  void startWriteChunk();
90  void manageStorers();
91  void reportFinished(ChainOutputStorer&);
92 
93  friend class ChainOutputStorer;
94 
95 };
96 
97 } // namespace VolProc
#define mExpClass(module)
Definition: commondefs.h:157
ObjectSet< ChainOutputStorer > storers_
Definition: volprocchainoutput.h:78
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:51
is an interface where processes can report their progress.
Definition: progressmeter.h:19
#define mODTextTranslationClass(clss)
Definition: uistring.h:37
void usePar(const IOPar &iop, ODPolygon< T > &poly, const char *inpkey)
Definition: polygon.h:200
#define od_int64
Definition: plftypes.h:34
Definition: uistring.h:88
bool neednextchunk_
Definition: volprocchainoutput.h:71
Threads::Lock storerlock_
Definition: volprocchainoutput.h:77
void message(const char *)
default: to stderr
Generalized set of parameters of the keyword-value type.
Definition: iopar.h:53
Definition: seisdatapackwriter.h:25
A chain of Steps that can be applied to a volume of scalars.
Definition: volprocchain.h:27
JobCommunic * jobcomm_
Definition: volprocchainoutput.h:81
Horizontal sampling (inline and crossline range and steps).
Definition: trckeysampling.h:25
ObjectSet< ChainOutputStorer > toremstorers_
Definition: volprocchainoutput.h:79
TrcKeyZSampling tkzs_
Definition: volprocchainoutput.h:65
Chain * chain_
Definition: volprocchainoutput.h:68
Adapter for a VolProc chain to external attribute calculation.
Definition: velocitygridder.h:29
Control
Definition: task.h:45
Hor+Vert sampling in 3D surveys.
Definition: trckeyzsampling.h:32
int nrexecs_
Definition: volprocchainoutput.h:72
DBKey outid_
Definition: volprocchainoutput.h:64
Manages output creation for a VolProc::Chain.
Definition: volprocchainoutput.h:35
executes the work for a single VolProc::Chain.
Definition: volprocchainexec.h:24
StepInterval< int > outputzrg_
Definition: volprocchainoutput.h:74
IOPar * chainpar_
Definition: volprocchainoutput.h:66
bool storererr_
Definition: volprocchainoutput.h:80
ProgressMeter that helps unifying different tasks.
Definition: progressmeterimpl.h:23
SeisDataPackWriter * wrr_
Definition: volprocchainoutput.h:70
int curexecnr_
Definition: volprocchainoutput.h:73
Full key to any object in the OpendTect data store.
Definition: dbkey.h:36
FixedString Chain()
Definition: keystrs.h:43
Multi-machine socket communicator Handles the communication between a client and the master...
Definition: jobcommunic.h:49
ChainExecutor * chainexec_
Definition: volprocchainoutput.h:69
Specification to enable chunkwise execution of a process.
Definition: executor.h:38
ProgressRecorder & progresskeeper_
Definition: volprocchainoutput.h:75
DBKey chainid_
Definition: volprocchainoutput.h:63

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