OpendTect  6.3
progressmeterimpl.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: Kristofer Tingdahl / Bert Bril
8  Date: 07-10-1999
9 ________________________________________________________________________
10 
11 -*/
12 
13 #include "basicmod.h"
14 #include "progressmeter.h"
15 #include "bufstring.h"
16 #include "od_iosfwd.h"
17 class Task;
18 namespace Threads { class Lock; }
19 
20 
24 {
25 public:
26 
29  void reset();
30 
31  void setFrom(const Task&);
32 
33  void setForwardTo(ProgressMeter*);
34  virtual void setStarted();
35  virtual void setFinished();
36  virtual void setName(const char*);
37  virtual void setTotalNr(od_int64);
38  virtual void setNrDone(od_int64);
39  virtual void setNrDoneText(const uiString&);
40  virtual void setMessage(const uiString&);
41  void setMessage(const uiString&,bool printtolog);
42 
43  virtual void operator++();
44 
45  const char* name() const;
46  virtual od_int64 nrDone() const;
47  od_int64 totalNr() const;
48  uiString message() const;
49  uiString nrDoneText() const;
50  bool isStarted() const;
51  bool isFinished() const;
52  ProgressMeter* forwardTo() const;
53 
54  virtual void skipProgress(bool);
55 
56 protected:
57 
63  bool isstarted_;
65  ProgressMeter* forwardto_;
66  bool skipprog_;
67 
69 
70 };
71 
72 
76 {
77 public:
78 
80  unsigned short rowlen=cDefaultRowLen());
82 
83  static int cDefaultRowLen() { return 50; }
84  static int cNrCharsPerRow() { return 80; }
85 
86  void setName(const char*);
87  void setStarted();
88  void setFinished();
89  void setNrDone(od_int64);
90  void setTotalNr(od_int64 t);
91 
92  void setMessage(const uiString&);
93  virtual void printMessage(const uiString&);
94 
96  void skipProgress( bool yn ) { skipprog_ = yn; }
97 
98  void operator++();
99  od_int64 nrDone() const { return nrdone_; }
100 
101  void reset();
102 
103 protected:
104 
105  void addProgress(int);
106 
110  unsigned short rowlen_;
111  unsigned char distcharidx_;
116  int oldtime_;
118  bool inited_;
119  bool finished_;
121  bool skipprog_;
122 
123  void annotate(bool);
124 };
#define mExpClass(module)
Definition: commondefs.h:157
bool isstarted_
Definition: progressmeterimpl.h:63
OD class for stream write common access to the user log file, or std::cout in batch progs...
Definition: od_ostream.h:25
void skipProgress(bool yn)
Definition: progressmeterimpl.h:96
A lock of a type that (hopefully) suits your needs. To use it, you need the Locker class...
Definition: threadlock.h:51
bool skipprog_
Definition: progressmeterimpl.h:121
is an interface where processes can report their progress.
Definition: progressmeter.h:19
uiString message_
Definition: progressmeterimpl.h:61
#define od_int64
Definition: plftypes.h:34
static int cDefaultRowLen()
Definition: progressmeterimpl.h:83
int64_t totalnr_
Definition: progressmeterimpl.h:115
uiString nrdonetext_
Definition: progressmeterimpl.h:62
Definition: uistring.h:88
int oldtime_
Definition: progressmeterimpl.h:116
unsigned short rowlen_
Definition: progressmeterimpl.h:110
unsigned char distcharidx_
Definition: progressmeterimpl.h:111
int64_t nrDone() const
Definition: progressmeterimpl.h:99
interface to threads that should be portable.
Definition: atomic.h:24
void message(const char *)
default: to stderr
bool finished_
Definition: progressmeterimpl.h:119
int64_t nrdoneperchar_
Definition: progressmeterimpl.h:112
od_ostream & strm_
Definition: progressmeterimpl.h:107
static int cNrCharsPerRow()
Definition: progressmeterimpl.h:84
Threads::Lock & lock_
Definition: progressmeterimpl.h:120
bool inited_
Definition: progressmeterimpl.h:118
int64_t nrdone_
Definition: progressmeterimpl.h:113
int64_t totalnr_
Definition: progressmeterimpl.h:60
bool skipprog_
Definition: progressmeterimpl.h:66
BufferString name_
Definition: progressmeterimpl.h:58
int64_t nrdone_
Definition: progressmeterimpl.h:59
ProgressMeter * forwardto_
Definition: progressmeterimpl.h:65
bool isfinished_
Definition: progressmeterimpl.h:64
int nrdotsonline_
Definition: progressmeterimpl.h:117
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size...
Definition: bufstring.h:38
Textual progress indicator for batch programs.
Definition: progressmeterimpl.h:75
Threads::Lock & lock_
Definition: progressmeterimpl.h:68
ProgressMeter that helps unifying different tasks.
Definition: progressmeterimpl.h:23
int64_t lastannotatednrdone_
Definition: progressmeterimpl.h:114
uiString message_
Definition: progressmeterimpl.h:108
bool isFinished(const uiRetVal &)
Generalization of something (e.g. a computation) that needs to be done in multiple steps...
Definition: task.h:26
BufferString name_
Definition: progressmeterimpl.h:109

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