OpendTect  6.6
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  RCS: $Id$
10 ________________________________________________________________________
11 
12 -*/
13 
14 #include "basicmod.h"
15 #include "progressmeter.h"
16 #include "bufstring.h"
17 #include "threadlock.h"
18 #include "callback.h"
19 #include "od_iosfwd.h"
20 class Task;
21 
22 
26 {
27 public:
28 
31  void reset();
32 
33  void setFrom(const Task&);
34 
36  virtual void setStarted();
37  virtual void setFinished();
38  virtual void setName(const char*);
39  virtual void setTotalNr(od_int64);
40  virtual void setNrDone(od_int64);
41  virtual void setMessage(const uiString&);
42  void setMessage(const uiString&,bool printtolog);
43  virtual void setNrDoneText(const uiString&);
44  virtual void operator++();
45 
46  const char* name() const;
47  virtual od_int64 nrDone() const;
48  od_int64 totalNr() const;
49  uiString message() const;
51  bool isStarted() const;
52  bool isFinished() const;
54 
55  virtual void skipProgress(bool);
56 
57 protected:
58 
64  bool isstarted_;
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();
91  {
92  Threads::Locker lock( lock_ );
93  totalnr_ = t;
94  }
95 
96  void setMessage(const uiString&);
97  void printMessage(const uiString&);
98 
100  void skipProgress( bool yn ) { skipprog_ = yn; }
101 
102  void operator++();
103  od_int64 nrDone() const { return nrdone_; }
104 
105  void reset();
106 
107 protected:
108 
109  void addProgress(int);
110 
114  unsigned short rowlen_;
115  unsigned char distcharidx_;
120  int oldtime_;
122  bool inited_;
123  bool finished_;
125  bool skipprog_;
126 
127  void annotate(bool);
128 };
129 
130 
ProgressRecorder::setFrom
void setFrom(const Task &)
ProgressRecorder::isStarted
bool isStarted() const
ProgressRecorder::setNrDoneText
virtual void setNrDoneText(const uiString &)
TextStreamProgressMeter::skipProgress
void skipProgress(bool yn)
Definition: progressmeterimpl.h:100
TextStreamProgressMeter::skipprog_
bool skipprog_
Definition: progressmeterimpl.h:125
ProgressRecorder::forwardTo
ProgressMeter * forwardTo() const
ProgressRecorder::setTotalNr
virtual void setTotalNr(int64_t)
TextStreamProgressMeter::name_
BufferString name_
Definition: progressmeterimpl.h:113
Threads::Locker
Locks the lock, shutting out access from other threads if needed.
Definition: threadlock.h:85
ProgressRecorder::lock_
Threads::Lock & lock_
Definition: progressmeterimpl.h:68
TextStreamProgressMeter::printMessage
void printMessage(const uiString &)
TextStreamProgressMeter::cDefaultRowLen
static int cDefaultRowLen()
Definition: progressmeterimpl.h:83
ProgressRecorder::setNrDone
virtual void setNrDone(int64_t)
ProgressRecorder::setForwardTo
void setForwardTo(ProgressMeter *)
ProgressRecorder::~ProgressRecorder
~ProgressRecorder()
od_int64
#define od_int64
Definition: plftypes.h:35
ProgressRecorder::totalnr_
int64_t totalnr_
Definition: progressmeterimpl.h:61
ProgressMeter
is an interface where processes can report their progress.
Definition: progressmeter.h:21
mExpClass
#define mExpClass(module)
Definition: commondefs.h:177
ProgressRecorder::ProgressRecorder
ProgressRecorder()
TextStreamProgressMeter::rowlen_
unsigned short rowlen_
Definition: progressmeterimpl.h:114
ProgressRecorder::forwardto_
ProgressMeter * forwardto_
Definition: progressmeterimpl.h:66
callback.h
TextStreamProgressMeter::distcharidx_
unsigned char distcharidx_
Definition: progressmeterimpl.h:115
TextStreamProgressMeter::TextStreamProgressMeter
TextStreamProgressMeter(od_ostream &, unsigned short rowlen=cDefaultRowLen())
TextStreamProgressMeter::nrdoneperchar_
int64_t nrdoneperchar_
Definition: progressmeterimpl.h:116
ProgressRecorder::isfinished_
bool isfinished_
Definition: progressmeterimpl.h:65
TextStreamProgressMeter::strm_
od_ostream & strm_
Definition: progressmeterimpl.h:111
bufstring.h
TextStreamProgressMeter::totalnr_
int64_t totalnr_
Definition: progressmeterimpl.h:119
TextStreamProgressMeter::annotate
void annotate(bool)
ProgressRecorder::setName
virtual void setName(const char *)
ProgressRecorder::setFinished
virtual void setFinished()
ProgressRecorder::message
uiString message() const
TextStreamProgressMeter::finished_
bool finished_
Definition: progressmeterimpl.h:123
TextStreamProgressMeter::reset
void reset()
progressmeter.h
ProgressRecorder::isstarted_
bool isstarted_
Definition: progressmeterimpl.h:64
ProgressRecorder::setMessage
void setMessage(const uiString &, bool printtolog)
TextStreamProgressMeter::setTotalNr
void setTotalNr(int64_t t)
Definition: progressmeterimpl.h:90
TextStreamProgressMeter::oldtime_
int oldtime_
Definition: progressmeterimpl.h:120
ProgressRecorder::setMessage
virtual void setMessage(const uiString &)
Task
Generalization of something (e.g. a computation) that needs to be done in multiple steps.
Definition: task.h:28
ProgressRecorder::operator++
virtual void operator++()
TextStreamProgressMeter::setName
void setName(const char *)
TextStreamProgressMeter::nrdotsonline_
int nrdotsonline_
Definition: progressmeterimpl.h:121
TextStreamProgressMeter::setMessage
void setMessage(const uiString &)
TextStreamProgressMeter::nrdone_
int64_t nrdone_
Definition: progressmeterimpl.h:117
TextStreamProgressMeter::lock_
Threads::Lock lock_
Definition: progressmeterimpl.h:124
TextStreamProgressMeter
Textual progress indicator for batch programs.
Definition: progressmeterimpl.h:76
TextStreamProgressMeter::cNrCharsPerRow
static int cNrCharsPerRow()
Definition: progressmeterimpl.h:84
TextStreamProgressMeter::inited_
bool inited_
Definition: progressmeterimpl.h:122
BufferString
OD::String with its own variable length buffer. The buffer has a guaranteed minimum size.
Definition: bufstring.h:40
ProgressRecorder::totalNr
int64_t totalNr() const
TextStreamProgressMeter::addProgress
void addProgress(int)
TextStreamProgressMeter::message_
uiString message_
Definition: progressmeterimpl.h:112
ProgressRecorder::name
const char * name() const
ProgressRecorder::reset
void reset()
TextStreamProgressMeter::~TextStreamProgressMeter
~TextStreamProgressMeter()
ProgressRecorder::nrDone
virtual int64_t nrDone() const
ProgressRecorder::skipProgress
virtual void skipProgress(bool)
TextStreamProgressMeter::operator++
void operator++()
uiString
String that is able to hold international (UTF-8) strings for the user interface.
Definition: uistring.h:121
ProgressRecorder::setStarted
virtual void setStarted()
od_iosfwd.h
TextStreamProgressMeter::lastannotatednrdone_
int64_t lastannotatednrdone_
Definition: progressmeterimpl.h:118
threadlock.h
ProgressRecorder::nrdonetext_
uiString nrdonetext_
Definition: progressmeterimpl.h:63
TextStreamProgressMeter::setFinished
void setFinished()
ProgressRecorder::message_
uiString message_
Definition: progressmeterimpl.h:62
ProgressRecorder::nrDoneText
uiString nrDoneText() const
TextStreamProgressMeter::setStarted
void setStarted()
TextStreamProgressMeter::setNrDone
void setNrDone(int64_t)
TextStreamProgressMeter::nrDone
int64_t nrDone() const
Definition: progressmeterimpl.h:103
od_ostream
OD class for stream write common access to the user log file, or std::cout in other than od_main.
Definition: od_ostream.h:26
ProgressRecorder::name_
BufferString name_
Definition: progressmeterimpl.h:59
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
ProgressRecorder::nrdone_
int64_t nrdone_
Definition: progressmeterimpl.h:60
ProgressRecorder::isFinished
bool isFinished() const

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