PhoenixMock  1.8.7
Tools to split/merge/print mock used in Phoenix
ProgressTime Class Reference

classe qui permet de gérer des barres de chargement en console avec l'affichage et le calcul du temps restant More...

#include <ProgressTime.h>

Public Member Functions

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

Private Member Functions

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

Private Attributes

unsigned int p_avancement
 
char * p_buffer
 tampon pour l'affichage More...
 
char p_chEnd
 charactère de remplissage de la barre vide More...
 
char p_chMiddle
 charactère au bout de la ligne de remplissage More...
 
char p_chPlein
 caractère de remplissage More...
 
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

classe qui permet de gérer des barres de chargement en console avec l'affichage et le calcul du temps restant

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 16 of file ProgressTime.cpp.

16  {
17  initialisationProgressTime(0, '=', '>', ' ');
18 }

◆ 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 27 of file ProgressTime.cpp.

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

◆ ProgressTime() [3/3]

ProgressTime::ProgressTime ( const ProgressTime other)

constructeur de copie de ProgressTime

Parameters
other: ProgressTime à copier

Definition at line 34 of file ProgressTime.cpp.

34  {
35  p_buffer = NULL;
36  copyProgressTime(other);
37 }

◆ ~ProgressTime()

ProgressTime::~ProgressTime ( )
virtual

destructeur de ProgressTime

Definition at line 40 of file ProgressTime.cpp.

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

Member Function Documentation

◆ clear()

void ProgressTime::clear ( )
private

fonction qui efface la barre de chargement

Definition at line 182 of file ProgressTime.cpp.

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

◆ copyProgressTime()

void ProgressTime::copyProgressTime ( const ProgressTime other)
private

fonction de copie de ProgressTime

Parameters
other: ProgressTime à copier

Definition at line 125 of file ProgressTime.cpp.

125  {
126  if(p_buffer != NULL){
127  delete [] p_buffer;
128  }
129  p_buffer = new char[other.p_sizeBarr + 1]; //on pense au caractère \0
130  p_startTime = other.p_startTime;
132  p_nbSteps = other.p_nbSteps;
133  p_iCurrent = other.p_iCurrent;
134  p_avancement = other.p_avancement;
139  p_pourcent = other.p_pourcent;
140  p_sizeBarr = other.p_sizeBarr;
141  p_chPlein = other.p_chPlein;
142  p_chMiddle = other.p_chMiddle;
143  p_chEnd = other.p_chEnd;
144 
145  p_buffer[p_sizeBarr] = '\0';
146 }

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

◆ feelbuffer()

void ProgressTime::feelbuffer ( unsigned int  taille)
private

affiche la barre de chargement

Parameters
taille: taille de la barre à afficher

Definition at line 168 of file ProgressTime.cpp.

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

◆ finish()

void ProgressTime::finish ( )

affiche la barre de chargement finie

Definition at line 77 of file ProgressTime.cpp.

77  {
78  clear();
79  cerr << "\r" << p_buffer << "\r\r\r\r";
81  cerr << "[" << p_buffer << "|" << p_pourcent << "%] " << p_secondesRestantes << "s";
82  cerr << endl;
83 }

Referenced by testProgressTime().

+ Here is the caller 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 154 of file ProgressTime.cpp.

154  {
155  p_nbSteps = nbSteps;
156  p_chPlein = chPlein;
157  p_chMiddle = chMiddle;
158  p_chEnd = chEnd;
159  start();
161  p_sizeBarr = (3u*p_consoleWidth)/4u; //on prend 3/4 de la taille de la console
162  p_buffer = new char[p_sizeBarr + 1u];
163 }

References getNbColTerminal().

+ Here is the call 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 117 of file ProgressTime.cpp.

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

◆ print()

void ProgressTime::print ( )

fonction qui affiche la ProgressTime

Definition at line 57 of file ProgressTime.cpp.

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

Referenced by testProgressTime().

+ Here is the caller 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 109 of file ProgressTime.cpp.

109  {
110  p_chEnd = chEnd;
111 }

Referenced by testProgressTime().

+ Here is the caller graph for this function:

◆ 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 102 of file ProgressTime.cpp.

102  {
103  p_chMiddle = chMiddle;
104 }

Referenced by testProgressTime().

+ Here is the caller graph for this function:

◆ setChPlein()

void ProgressTime::setChPlein ( char  chPlein)

init le caractère de remplissage

Parameters
chPlein: caractère de remplissage

Definition at line 95 of file ProgressTime.cpp.

95  {
96  p_chPlein = chPlein;
97 }

Referenced by testProgressTime().

+ Here is the caller graph for this function:

◆ 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 88 of file ProgressTime.cpp.

88  {
89  p_nbSteps = nbSteps;
90 }

Referenced by testProgressTime().

+ Here is the caller graph for this function:

◆ start()

void ProgressTime::start ( )

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

Definition at line 47 of file ProgressTime.cpp.

47  {
48  p_startTime = clock();
49  p_iCurrent = 0;
50  p_oldAvancement = 0;
51  p_avancement = 0;
54 }

Referenced by testProgressTime().

+ Here is the caller graph for this function:

Member Data Documentation

◆ p_avancement

unsigned int ProgressTime::p_avancement
private

Definition at line 48 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_buffer

char* ProgressTime::p_buffer
private

tampon pour l'affichage

Definition at line 63 of file ProgressTime.h.

◆ p_chEnd

char ProgressTime::p_chEnd
private

charactère de remplissage de la barre vide

Definition at line 61 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_chMiddle

char ProgressTime::p_chMiddle
private

charactère au bout de la ligne de remplissage

Definition at line 59 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_chPlein

char ProgressTime::p_chPlein
private

caractère de remplissage

Definition at line 57 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_consoleWidth

unsigned int ProgressTime::p_consoleWidth
private

Definition at line 52 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_iCurrent

size_t ProgressTime::p_iCurrent
private

Definition at line 47 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_nbSteps

size_t ProgressTime::p_nbSteps
private

Definition at line 46 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_oldAvancement

unsigned int ProgressTime::p_oldAvancement
private

Definition at line 49 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_oldTempsRestant

clock_t ProgressTime::p_oldTempsRestant
private

Definition at line 51 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_pourcent

unsigned int ProgressTime::p_pourcent
private

Definition at line 53 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_secondesRestantes

unsigned int ProgressTime::p_secondesRestantes
private

Definition at line 50 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_sizeBarr

unsigned int ProgressTime::p_sizeBarr
private

Definition at line 54 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_startTime

clock_t ProgressTime::p_startTime
private

Definition at line 44 of file ProgressTime.h.

Referenced by copyProgressTime().

◆ p_tempsRestant

clock_t ProgressTime::p_tempsRestant
private

Definition at line 45 of file ProgressTime.h.

Referenced by copyProgressTime().


The documentation for this class was generated from the following files:
getNbColTerminal
short unsigned int getNbColTerminal()
fonction qui renvoie le nombre de colonnes du terminal
Definition: string_color.cpp:206
ProgressTime::p_buffer
char * p_buffer
tampon pour l'affichage
Definition: ProgressTime.h:63
ProgressTime::p_tempsRestant
clock_t p_tempsRestant
Definition: ProgressTime.h:45
ProgressTime::p_avancement
unsigned int p_avancement
Definition: ProgressTime.h:48
ProgressTime::start
void start()
fonction qui démarre le chronomètre de la ProgressTime
Definition: ProgressTime.cpp:47
ProgressTime::p_consoleWidth
unsigned int p_consoleWidth
Definition: ProgressTime.h:52
ProgressTime::initialisationProgressTime
void initialisationProgressTime(size_t nbSteps, char chPlein, char chMiddle, char chEnd)
fonction d'initialisation de ProgressTime
Definition: ProgressTime.cpp:154
ProgressTime::p_startTime
clock_t p_startTime
Definition: ProgressTime.h:44
ProgressTime::p_nbSteps
size_t p_nbSteps
Definition: ProgressTime.h:46
ProgressTime::p_chMiddle
char p_chMiddle
charactère au bout de la ligne de remplissage
Definition: ProgressTime.h:59
ProgressTime::p_chEnd
char p_chEnd
charactère de remplissage de la barre vide
Definition: ProgressTime.h:61
ProgressTime::feelbuffer
void feelbuffer(unsigned int taille)
affiche la barre de chargement
Definition: ProgressTime.cpp:168
ProgressTime::p_chPlein
char p_chPlein
caractère de remplissage
Definition: ProgressTime.h:57
ProgressTime::clear
void clear()
fonction qui efface la barre de chargement
Definition: ProgressTime.cpp:182
ProgressTime::p_secondesRestantes
unsigned int p_secondesRestantes
Definition: ProgressTime.h:50
ProgressTime::p_pourcent
unsigned int p_pourcent
Definition: ProgressTime.h:53
ProgressTime::copyProgressTime
void copyProgressTime(const ProgressTime &other)
fonction de copie de ProgressTime
Definition: ProgressTime.cpp:125
ProgressTime::p_oldAvancement
unsigned int p_oldAvancement
Definition: ProgressTime.h:49
ProgressTime::p_sizeBarr
unsigned int p_sizeBarr
Definition: ProgressTime.h:54
ProgressTime::p_iCurrent
size_t p_iCurrent
Definition: ProgressTime.h:47
ProgressTime::p_oldTempsRestant
clock_t p_oldTempsRestant
Definition: ProgressTime.h:51