PhoenixProgress  1.0.0
Library of progress bar
Loading...
Searching...
No Matches
ProgressTime Class Reference

Progress bar with computation of the remaning time. More...

#include <ProgressTime.h>

Public Member Functions

void finish ()
 affiche la barre de chargement finie
 
ProgressTimeoperator= (const ProgressTime &other)
 Opérateur = de ProgressTime.
 
void print ()
 fonction qui affiche la ProgressTime
 
 ProgressTime ()
 Constructeur par défaut de ProgressTime.
 
 ProgressTime (const ProgressTime &other)
 constructeur de copie de ProgressTime
 
 ProgressTime (size_t nbSteps, char chPlein='=', char chMiddle='>', char chEnd=' ')
 Constructeur de ProgressTime.
 
void setChEnd (char chEnd)
 init le charactère de remplissage de la barre vide
 
void setChMiddle (char chMiddle)
 init le charactère au bout de la ligne de remplissage
 
void setChPlein (char chPlein)
 init le caractère de remplissage
 
void setNbSteps (size_t nbSteps)
 fonction qui initialise le nombre d'étapes à faire
 
void start ()
 fonction qui démarre le chronomètre de la ProgressTime
 
virtual ~ProgressTime ()
 destructeur de ProgressTime
 

Private Member Functions

void clear ()
 fonction qui efface la barre de chargement
 
void copyProgressTime (const ProgressTime &other)
 fonction de copie de ProgressTime
 
void feelbuffer (unsigned int taille)
 affiche la barre de chargement
 
void initialisationProgressTime (size_t nbSteps, char chPlein, char chMiddle, char chEnd)
 fonction d'initialisation de ProgressTime
 

Private Attributes

unsigned int p_avancement
 
char * p_buffer
 Drawing buffer.
 
char p_chEnd
 Character which fills the progress bar.
 
char p_chMiddle
 Character at the end of the progress bar.
 
char p_chPlein
 Character used to fill the progress bar.
 
unsigned int p_consoleWidth
 
size_t p_iCurrent
 
size_t p_nbSteps
 
unsigned int p_oldAvancement
 
clock_t p_oldTempsRestant
 
unsigned int p_pourcent
 
unsigned int p_secondesRestantes
 
unsigned int p_sizeBarr
 
clock_t p_startTime
 
clock_t p_tempsRestant
 

Detailed Description

Progress bar with computation of the remaning time.

Definition at line 15 of file ProgressTime.h.

Constructor & Destructor Documentation

◆ ProgressTime() [1/3]

ProgressTime::ProgressTime ( )

Constructeur par défaut de ProgressTime.

Cette fonction démarre le chronomètre par défaut

Definition at line 15 of file ProgressTime.cpp.

15 {
16 initialisationProgressTime(0, '=', '>', ' ');
17}
void initialisationProgressTime(size_t nbSteps, char chPlein, char chMiddle, char chEnd)
fonction d'initialisation de ProgressTime

References initialisationProgressTime().

Referenced by copyProgressTime(), operator=(), and ProgressTime().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ ProgressTime() [2/3]

ProgressTime::ProgressTime ( size_t nbSteps,
char chPlein = '=',
char chMiddle = '>',
char chEnd = ' ' )

Constructeur de ProgressTime.

Parameters
nbSteps: nombre d'étapes total à effectuer pour la barre de chargement
chPlein: charactère de remplissage de la barre plein
chMiddle: charactère au bout de la ligne de remplissage
chEnd: charactère de remplissage de la barre vide Cette fonction démarre le chronomètre par défaut

Definition at line 26 of file ProgressTime.cpp.

26 {
27 initialisationProgressTime(nbSteps, chPlein, chMiddle, chEnd);
28}

References initialisationProgressTime().

+ Here is the call graph for this function:

◆ ProgressTime() [3/3]

ProgressTime::ProgressTime ( const ProgressTime & other)

constructeur de copie de ProgressTime

Parameters
other: ProgressTime à copier

Definition at line 33 of file ProgressTime.cpp.

33 {
34 p_buffer = NULL;
35 copyProgressTime(other);
36}
void copyProgressTime(const ProgressTime &other)
fonction de copie de ProgressTime
char * p_buffer
Drawing buffer.

References copyProgressTime(), p_buffer, and ProgressTime().

+ Here is the call graph for this function:

◆ ~ProgressTime()

ProgressTime::~ProgressTime ( )
virtual

destructeur de ProgressTime

Definition at line 39 of file ProgressTime.cpp.

39 {
40 if(p_buffer != NULL){
41 delete [] p_buffer;
42 }
43}

References p_buffer.

Member Function Documentation

◆ clear()

void ProgressTime::clear ( )
private

fonction qui efface la barre de chargement

Definition at line 181 of file ProgressTime.cpp.

181 {
182 for(unsigned int i(0); i < p_sizeBarr; ++i){
183 p_buffer[i] = '\r';
184 }
185 p_buffer[p_sizeBarr] = '\0';
186}
unsigned int p_sizeBarr

References p_buffer, and p_sizeBarr.

Referenced by finish(), and print().

+ Here is the caller graph for this function:

◆ copyProgressTime()

void ProgressTime::copyProgressTime ( const ProgressTime & other)
private

fonction de copie de ProgressTime

Parameters
other: ProgressTime à copier

Definition at line 124 of file ProgressTime.cpp.

124 {
125 if(p_buffer != NULL){
126 delete [] p_buffer;
127 }
128 p_buffer = new char[other.p_sizeBarr + 1]; //on pense au caractère \0
129 p_startTime = other.p_startTime;
131 p_nbSteps = other.p_nbSteps;
132 p_iCurrent = other.p_iCurrent;
138 p_pourcent = other.p_pourcent;
139 p_sizeBarr = other.p_sizeBarr;
140 p_chPlein = other.p_chPlein;
141 p_chMiddle = other.p_chMiddle;
142 p_chEnd = other.p_chEnd;
143
144 p_buffer[p_sizeBarr] = '\0';
145}
unsigned int p_oldAvancement
char p_chPlein
Character used to fill the progress bar.
char p_chMiddle
Character at the end of the progress bar.
unsigned int p_consoleWidth
size_t p_iCurrent
clock_t p_startTime
clock_t p_tempsRestant
unsigned int p_secondesRestantes
clock_t p_oldTempsRestant
char p_chEnd
Character which fills the progress bar.
unsigned int p_avancement
unsigned int p_pourcent
size_t p_nbSteps

References p_avancement, p_buffer, p_chEnd, p_chMiddle, p_chPlein, p_consoleWidth, p_iCurrent, p_nbSteps, p_oldAvancement, p_oldTempsRestant, p_pourcent, p_secondesRestantes, p_sizeBarr, p_startTime, p_tempsRestant, and ProgressTime().

Referenced by operator=(), and ProgressTime().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ feelbuffer()

void ProgressTime::feelbuffer ( unsigned int taille)
private

affiche la barre de chargement

Parameters
taille: taille de la barre à afficher

Definition at line 167 of file ProgressTime.cpp.

167 {
168 if(taille <= p_sizeBarr){
169 for(unsigned int i(0); i < taille; ++i){
170 p_buffer[i] = p_chPlein;
171 }
172 p_buffer[taille] = p_chMiddle;
173 }
174 for(unsigned int i(taille + 1); i <= p_sizeBarr; ++i){
175 p_buffer[i] = p_chEnd;
176 }
177 p_buffer[p_sizeBarr] = '\0';
178}

References p_buffer, p_chEnd, p_chMiddle, p_chPlein, and p_sizeBarr.

Referenced by finish(), and print().

+ Here is the caller graph for this function:

◆ finish()

void ProgressTime::finish ( )

affiche la barre de chargement finie

Definition at line 76 of file ProgressTime.cpp.

76 {
77 clear();
78 std::cerr << "\r" << p_buffer << "\r\r\r\r";
80 std::cerr << "[" << p_buffer << "|" << p_pourcent << "%] " << p_secondesRestantes << "s";
81 std::cerr << std::endl;
82}
void clear()
fonction qui efface la barre de chargement
void feelbuffer(unsigned int taille)
affiche la barre de chargement

References clear(), feelbuffer(), p_buffer, p_pourcent, p_secondesRestantes, and p_sizeBarr.

+ Here is the call graph for this function:

◆ initialisationProgressTime()

void ProgressTime::initialisationProgressTime ( size_t nbSteps,
char chPlein,
char chMiddle,
char chEnd )
private

fonction d'initialisation de ProgressTime

Parameters
nbSteps: nombre d'étapes à faire pour arriver à 100%
chPlein: caractère de remplissage de la barre de chargement
chMiddle: caractère entre la partie vide et la partie remplie de la barre de chargement
chEnd: caractère de la partie vide de la barre de chargement

Definition at line 153 of file ProgressTime.cpp.

153 {
154 p_nbSteps = nbSteps;
155 p_chPlein = chPlein;
156 p_chMiddle = chMiddle;
157 p_chEnd = chEnd;
158 start();
159 p_consoleWidth = phoenix_getNbColTerminal();
160 p_sizeBarr = (3u*p_consoleWidth)/4u; //on prend 3/4 de la taille de la console
161 p_buffer = new char[p_sizeBarr + 1u];
162}
void start()
fonction qui démarre le chronomètre de la ProgressTime

References p_buffer, p_chEnd, p_chMiddle, p_chPlein, p_consoleWidth, p_nbSteps, p_sizeBarr, and start().

Referenced by ProgressTime(), and ProgressTime().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ operator=()

ProgressTime & ProgressTime::operator= ( const ProgressTime & other)

Opérateur = de ProgressTime.

Parameters
other: ProgressTime à copier
Returns
ProgressTime copié

Definition at line 116 of file ProgressTime.cpp.

116 {
117 copyProgressTime(other);
118 return *this;
119}

References copyProgressTime(), and ProgressTime().

+ Here is the call graph for this function:

◆ print()

void ProgressTime::print ( )

fonction qui affiche la ProgressTime

Definition at line 56 of file ProgressTime.cpp.

56 {
57 ++p_iCurrent;
59 p_tempsRestant = (clock_t)(((clock() - p_startTime)*((clock_t)(p_nbSteps - p_iCurrent)))/((clock_t)p_iCurrent));
62 //on efface la ligne de la console où il y a la barre de chargement
63 clear();
64 std::cerr << "\r" << p_buffer << "\r\r\r\r";
65 //on affiche la barre de chargement
67 p_secondesRestantes = p_tempsRestant/CLOCKS_PER_SEC;
68 std::cerr << "[" << p_buffer << "|" << p_pourcent << "%] " << p_secondesRestantes << "s";
69 //on met old_taille à jour
72 }
73}

References clear(), feelbuffer(), p_avancement, p_buffer, p_iCurrent, p_nbSteps, p_oldAvancement, p_oldTempsRestant, p_pourcent, p_secondesRestantes, p_sizeBarr, p_startTime, and p_tempsRestant.

+ Here is the call graph for this function:

◆ setChEnd()

void ProgressTime::setChEnd ( char chEnd)

init le charactère de remplissage de la barre vide

Parameters
chEnd: charactère de remplissage de la barre vide

Definition at line 108 of file ProgressTime.cpp.

108 {
109 p_chEnd = chEnd;
110}

References p_chEnd.

◆ setChMiddle()

void ProgressTime::setChMiddle ( char chMiddle)

init le charactère au bout de la ligne de remplissage

Parameters
chMiddle: charactère au bout de la ligne de remplissage

Definition at line 101 of file ProgressTime.cpp.

101 {
102 p_chMiddle = chMiddle;
103}

References p_chMiddle.

◆ setChPlein()

void ProgressTime::setChPlein ( char chPlein)

init le caractère de remplissage

Parameters
chPlein: caractère de remplissage

Definition at line 94 of file ProgressTime.cpp.

94 {
95 p_chPlein = chPlein;
96}

References p_chPlein.

◆ setNbSteps()

void ProgressTime::setNbSteps ( size_t nbSteps)

fonction qui initialise le nombre d'étapes à faire

Parameters
nbSteps: nombre d'étapes à faire pour arriver à 100%

Definition at line 87 of file ProgressTime.cpp.

87 {
88 p_nbSteps = nbSteps;
89}

References p_nbSteps.

◆ start()

void ProgressTime::start ( )

fonction qui démarre le chronomètre de la ProgressTime

Definition at line 46 of file ProgressTime.cpp.

46 {
47 p_startTime = clock();
48 p_iCurrent = 0;
50 p_avancement = 0;
53}

References p_avancement, p_iCurrent, p_oldAvancement, p_oldTempsRestant, p_secondesRestantes, and p_startTime.

Referenced by initialisationProgressTime().

+ Here is the caller graph for this function:

Member Data Documentation

◆ p_avancement

unsigned int ProgressTime::p_avancement
private

Definition at line 44 of file ProgressTime.h.

Referenced by copyProgressTime(), print(), and start().

◆ p_buffer

char* ProgressTime::p_buffer
private

◆ p_chEnd

char ProgressTime::p_chEnd
private

Character which fills the progress bar.

Definition at line 57 of file ProgressTime.h.

Referenced by copyProgressTime(), feelbuffer(), initialisationProgressTime(), and setChEnd().

◆ p_chMiddle

char ProgressTime::p_chMiddle
private

Character at the end of the progress bar.

Definition at line 55 of file ProgressTime.h.

Referenced by copyProgressTime(), feelbuffer(), initialisationProgressTime(), and setChMiddle().

◆ p_chPlein

char ProgressTime::p_chPlein
private

Character used to fill the progress bar.

Definition at line 53 of file ProgressTime.h.

Referenced by copyProgressTime(), feelbuffer(), initialisationProgressTime(), and setChPlein().

◆ p_consoleWidth

unsigned int ProgressTime::p_consoleWidth
private

Definition at line 48 of file ProgressTime.h.

Referenced by copyProgressTime(), and initialisationProgressTime().

◆ p_iCurrent

size_t ProgressTime::p_iCurrent
private

Definition at line 43 of file ProgressTime.h.

Referenced by copyProgressTime(), print(), and start().

◆ p_nbSteps

size_t ProgressTime::p_nbSteps
private

Definition at line 42 of file ProgressTime.h.

Referenced by copyProgressTime(), initialisationProgressTime(), print(), and setNbSteps().

◆ p_oldAvancement

unsigned int ProgressTime::p_oldAvancement
private

Definition at line 45 of file ProgressTime.h.

Referenced by copyProgressTime(), print(), and start().

◆ p_oldTempsRestant

clock_t ProgressTime::p_oldTempsRestant
private

Definition at line 47 of file ProgressTime.h.

Referenced by copyProgressTime(), print(), and start().

◆ p_pourcent

unsigned int ProgressTime::p_pourcent
private

Definition at line 49 of file ProgressTime.h.

Referenced by copyProgressTime(), finish(), and print().

◆ p_secondesRestantes

unsigned int ProgressTime::p_secondesRestantes
private

Definition at line 46 of file ProgressTime.h.

Referenced by copyProgressTime(), finish(), print(), and start().

◆ p_sizeBarr

unsigned int ProgressTime::p_sizeBarr
private

◆ p_startTime

clock_t ProgressTime::p_startTime
private

Definition at line 40 of file ProgressTime.h.

Referenced by copyProgressTime(), print(), and start().

◆ p_tempsRestant

clock_t ProgressTime::p_tempsRestant
private

Definition at line 41 of file ProgressTime.h.

Referenced by copyProgressTime(), and print().


The documentation for this class was generated from the following files: