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

Classic progress bar in the terminal. More...

#include <ProgressBarr.h>

Public Member Functions

void finish ()
 affiche la barre de chargement finie
 
char getChEnd () const
 retourne le charactère de remplissage de la barre vide
 
char getChMiddle () const
 retourne le charactère au bout de la ligne de remplissage
 
char getChPlein () const
 retourne le caractère de remplissage
 
size_t getMax () const
 retourne la valeur max atteinte par la barre
 
size_t getSize () const
 retourne la taille maximale de la barre
 
ProgressBarroperator= (const ProgressBarr &progressBarr)
 redéfinition de l'opérateur =
 
void progress (size_t avencement)
 fonction qui fait avancer (ou reculer) la barre de chargement
 
 ProgressBarr (const ProgressBarr &progressBarr)
 constreucteur de copie de la barre de progression
 
 ProgressBarr (size_t max=100, size_t size=100, char chPlein='=', char chMiddle='>', char chEnd=' ')
 constructeur de la barre de progression en console
 
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 setMax (size_t max)
 init la valeur max atteinte par la barre
 
void setSize (size_t size)
 init la taille de la barre
 
virtual ~ProgressBarr ()
 destructeur de la barre de progression
 

Protected Member Functions

void clear ()
 fonction qui efface la barre de chargement
 
void copy (const ProgressBarr &progressBarr)
 fonction qui copie la barre de chargement
 
void feelbuffer (size_t taille)
 affiche la barre de chargement
 

Protected Attributes

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.
 
size_t p_max
 Maximum value to reach to complete charging.
 
size_t p_old_taille
 Previous size of the progress bar.
 
size_t p_size
 Maximum size of the progress bar.
 

Private Member Functions

void init (size_t max, size_t size, char chPlein, char chMiddle, char chEnd)
 Initialisation de la barre de progression en console.
 

Detailed Description

Classic progress bar in the terminal.

Definition at line 14 of file ProgressBarr.h.

Constructor & Destructor Documentation

◆ ProgressBarr() [1/2]

ProgressBarr::ProgressBarr ( size_t max = 100,
size_t size = 100,
char chPlein = '=',
char chMiddle = '>',
char chEnd = ' ' )

constructeur de la barre de progression en console

Parameters
max: valeur maximale atteinte par barre de progression pleine
size: taille de 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

Definition at line 16 of file ProgressBarr.cpp.

16 {
17 init(max, size, chPlein, chMiddle, chEnd);
18}
void init(size_t max, size_t size, char chPlein, char chMiddle, char chEnd)
Initialisation de la barre de progression en console.

References init().

Referenced by copy(), operator=(), and ProgressBarr().

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

◆ ProgressBarr() [2/2]

ProgressBarr::ProgressBarr ( const ProgressBarr & progressBarr)

constreucteur de copie de la barre de progression

Parameters
progressBarr: barre de progression à copier

Definition at line 24 of file ProgressBarr.cpp.

24 {
25 p_buffer = NULL;
26 copy(progressBarr);
27}
void copy(const ProgressBarr &progressBarr)
fonction qui copie la barre de chargement
char * p_buffer
Drawing buffer.

References copy(), p_buffer, and ProgressBarr().

+ Here is the call graph for this function:

◆ ~ProgressBarr()

ProgressBarr::~ProgressBarr ( )
virtual

destructeur de la barre de progression

Definition at line 30 of file ProgressBarr.cpp.

30 {
31 if(p_buffer != NULL){
32 delete[] p_buffer;
33 }
34}

References p_buffer.

Member Function Documentation

◆ clear()

void ProgressBarr::clear ( )
protected

fonction qui efface la barre de chargement

Definition at line 189 of file ProgressBarr.cpp.

189 {
190 for(size_t i = 0; i < p_size; ++i){
191 p_buffer[i] = '\r';
192 }
193 p_buffer[p_size] = '\0';
194}
size_t p_size
Maximum size of the progress bar.

References p_buffer, and p_size.

Referenced by progress().

+ Here is the caller graph for this function:

◆ copy()

void ProgressBarr::copy ( const ProgressBarr & progressBarr)
protected

fonction qui copie la barre de chargement

Parameters
progressBarr: barre de chargement à copier

Definition at line 159 of file ProgressBarr.cpp.

159 {
160 if(p_buffer != NULL){
161 delete [] p_buffer;
162 }
163 p_buffer = new char[progressBarr.p_size + 1]; //on pense au caractère \0
164 p_size = progressBarr.p_size;
165 p_max = progressBarr.p_max;
166 p_chPlein = progressBarr.p_chPlein;
167 p_chMiddle = progressBarr.p_chMiddle;
168 p_chEnd = progressBarr.p_chEnd;
169 p_old_taille = progressBarr.p_old_taille;
170}
size_t p_old_taille
Previous size of the progress bar.
char p_chPlein
Character used to fill the progress bar.
char p_chEnd
Character which fills the progress bar.
char p_chMiddle
Character at the end of the progress bar.
size_t p_max
Maximum value to reach to complete charging.

References p_buffer, p_chEnd, p_chMiddle, p_chPlein, p_max, p_old_taille, p_size, and ProgressBarr().

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

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

◆ feelbuffer()

void ProgressBarr::feelbuffer ( size_t taille)
protected

affiche la barre de chargement

Parameters
taille: taille de la barre à afficher

Definition at line 175 of file ProgressBarr.cpp.

175 {
176 if(taille <= p_size){
177 for(size_t i = 0; i < taille; ++i){
178 p_buffer[i] = p_chPlein;
179 }
180 p_buffer[taille] = p_chMiddle;
181 }
182 for(size_t i = taille + 1; i < p_size; ++i){
183 p_buffer[i] = p_chEnd;
184 }
185 p_buffer[p_size] = '\0';
186}

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

Referenced by progress().

+ Here is the caller graph for this function:

◆ finish()

void ProgressBarr::finish ( )

affiche la barre de chargement finie

Definition at line 126 of file ProgressBarr.cpp.

126 {
128 std::cout << std::endl;
129}
void progress(size_t avencement)
fonction qui fait avancer (ou reculer) la barre de chargement

References p_max, and progress().

+ Here is the call graph for this function:

◆ getChEnd()

char ProgressBarr::getChEnd ( ) const

retourne le charactère de remplissage de la barre vide

Returns
charactère de remplissage de la barre vide

Definition at line 86 of file ProgressBarr.cpp.

86 {
87 return p_chEnd;
88}

References p_chEnd.

◆ getChMiddle()

char ProgressBarr::getChMiddle ( ) const

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

Returns
charactère au bout de la ligne de remplissage

Definition at line 79 of file ProgressBarr.cpp.

79 {
80 return p_chMiddle;
81}

References p_chMiddle.

◆ getChPlein()

char ProgressBarr::getChPlein ( ) const

retourne le caractère de remplissage

Returns
caractère de remplissage

Definition at line 72 of file ProgressBarr.cpp.

72 {
73 return p_chPlein;
74}

References p_chPlein.

◆ getMax()

size_t ProgressBarr::getMax ( ) const

retourne la valeur max atteinte par la barre

Returns
valeur max atteinte par la barre

Definition at line 58 of file ProgressBarr.cpp.

58 {
59 return p_max;
60}

References p_max.

◆ getSize()

size_t ProgressBarr::getSize ( ) const

retourne la taille maximale de la barre

Returns
taille maximale de la barre

Definition at line 65 of file ProgressBarr.cpp.

65 {
66 return p_size;
67}

References p_size.

◆ init()

void ProgressBarr::init ( size_t max,
size_t size,
char chPlein,
char chMiddle,
char chEnd )
private

Initialisation de la barre de progression en console.

Parameters
max: valeur maximale atteinte par barre de progression pleine
size: taille de 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

Definition at line 146 of file ProgressBarr.cpp.

146 {
147 p_buffer = new char[size + 1lu];
148 p_size = size;
149 p_max = max;
150 p_chPlein = chPlein;
151 p_chMiddle = chMiddle;
152 p_chEnd = chEnd;
153 p_old_taille = 0lu;
154}

References p_buffer, p_chEnd, p_chMiddle, p_chPlein, p_max, p_old_taille, and p_size.

Referenced by ProgressBarr().

+ Here is the caller graph for this function:

◆ operator=()

ProgressBarr & ProgressBarr::operator= ( const ProgressBarr & progressBarr)

redéfinition de l'opérateur =

Parameters
progressBarr: barre de chargement à copier

Definition at line 134 of file ProgressBarr.cpp.

134 {
135 copy(progressBarr);
136 return *this;
137}

References copy(), and ProgressBarr().

+ Here is the call graph for this function:

◆ progress()

void ProgressBarr::progress ( size_t avencement)

fonction qui fait avancer (ou reculer) la barre de chargement

Parameters
avencement: avencement de la barre (plus petit ou égal à max)

Definition at line 40 of file ProgressBarr.cpp.

40 {
41 size_t taille = (avencement*p_size)/p_max;
42 if(p_old_taille != taille){
43 int pourcent = (avencement*100)/p_max;
44 //on efface la ligne de la console où il y a la barre de chargement
45 clear();
46 std::cerr << "\r" << p_buffer << "\r\r\r\r";
47 //on affiche la barre de chargement
48 feelbuffer(taille);
49 std::cerr << "[" << p_buffer << "|" << pourcent << "%]";
50 //on met old_taille à jour
51 p_old_taille = taille;
52 }
53}
void clear()
fonction qui efface la barre de chargement
void feelbuffer(size_t taille)
affiche la barre de chargement

References clear(), feelbuffer(), p_buffer, p_max, p_old_taille, and p_size.

Referenced by finish().

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

◆ setChEnd()

void ProgressBarr::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 121 of file ProgressBarr.cpp.

121 {
122 p_chEnd = chEnd;
123}

References p_chEnd.

◆ setChMiddle()

void ProgressBarr::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 114 of file ProgressBarr.cpp.

114 {
115 p_chMiddle = chMiddle;
116}

References p_chMiddle.

◆ setChPlein()

void ProgressBarr::setChPlein ( char chPlein)

init le caractère de remplissage

Parameters
chPlein: caractère de remplissage

Definition at line 107 of file ProgressBarr.cpp.

107 {
108 p_chPlein = chPlein;
109}

References p_chPlein.

◆ setMax()

void ProgressBarr::setMax ( size_t max)

init la valeur max atteinte par la barre

Parameters
max: valeur max atteinte par la barre

Definition at line 93 of file ProgressBarr.cpp.

93 {
94 p_max = max;
95}

References p_max.

◆ setSize()

void ProgressBarr::setSize ( size_t size)

init la taille de la barre

Parameters
size: taille de la barre de chargement pleine

Definition at line 100 of file ProgressBarr.cpp.

100 {
101 p_size = size;
102}

References p_size.

Member Data Documentation

◆ p_buffer

char* ProgressBarr::p_buffer
protected

Drawing buffer.

Definition at line 42 of file ProgressBarr.h.

Referenced by clear(), copy(), feelbuffer(), init(), progress(), ProgressBarr(), and ~ProgressBarr().

◆ p_chEnd

char ProgressBarr::p_chEnd
protected

Character which fills the progress bar.

Definition at line 54 of file ProgressBarr.h.

Referenced by copy(), feelbuffer(), getChEnd(), init(), and setChEnd().

◆ p_chMiddle

char ProgressBarr::p_chMiddle
protected

Character at the end of the progress bar.

Definition at line 52 of file ProgressBarr.h.

Referenced by copy(), feelbuffer(), getChMiddle(), init(), and setChMiddle().

◆ p_chPlein

char ProgressBarr::p_chPlein
protected

Character used to fill the progress bar.

Definition at line 50 of file ProgressBarr.h.

Referenced by copy(), feelbuffer(), getChPlein(), init(), and setChPlein().

◆ p_max

size_t ProgressBarr::p_max
protected

Maximum value to reach to complete charging.

Definition at line 46 of file ProgressBarr.h.

Referenced by copy(), finish(), getMax(), init(), progress(), and setMax().

◆ p_old_taille

size_t ProgressBarr::p_old_taille
protected

Previous size of the progress bar.

Definition at line 48 of file ProgressBarr.h.

Referenced by copy(), init(), and progress().

◆ p_size

size_t ProgressBarr::p_size
protected

Maximum size of the progress bar.

Definition at line 44 of file ProgressBarr.h.

Referenced by clear(), copy(), feelbuffer(), getSize(), init(), progress(), and setSize().


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