|
|
- /**
- * @file Log.h
- *
- * Created on: 16.01.2017
- * @author Piotr Dergun
- */
-
- #ifndef LOG_H_
- #define LOG_H_
-
- #include "common.h"
-
- enum LOG_COLOR {
- BLACK,
- RED,
- GREEN,
- YELLOW,
- BLUE,
- MAGENTA,
- CYAN,
- WHITE
- };
-
- class Log
- {
- /** nr linii na którym ma byc domyślnie zapisany komunikat */
- int lineNumber;
- /** kolor tekstu */
- LOG_COLOR color;
- /** znaki specjalne pomiędzy nazwą zdarzenia, a komunikatem; zwykle tabulatory */
- string delimiter;
- /** wskaźnik na element z nazwą - hostname etc. */
- string *objectName;
- /** systemowy mutex blokujący pisanie przez inne wątki */
- pthread_mutex_t *writeMutex;
- /** domyślny czas delay'a */
- int delayVal;
- /** numer linii, od której będą zaczynać się wieloliniowe komunikaty (do samego dołu) */
- int firstLine;
- /** aktualny numer linii komunikatu wielolinijkowego */
- int currentLine;
- public:
- Log();
- /**
- * wypisuje na ekran komunikat obiektu
- * @param msg treść komunikatu
- * @param force wymuszenie wyświetlenia jeżeli delay obiektu=0
- * @param customLine określony nr linii, na którym ma być wyświetlony komunikat zamiast domyślnej linii
- */
- void print(string msg, bool force=false, int customLine = -1);
- /**
- * wypisuje na ekran komunikat wielolinijkowy (linia po linii, aż do końca ekranu -2 linie)
- * @param msg treść komunikatu
- * @param force wymuszenie wyświetlania jeżeli delay obiektu=0
- */
- void printLine(string msg, bool force=false);
- /**
- * tworzy efektowny progressbar wraz z wartością procentową na końcu linii
- * @param lineNumber numer linii na którym ma być wyświetlony progress bar
- * @param offset przesunięcie progressbaru w stosunku do nazwy
- * @param msg nazwa progressbara
- * @param percent procent określonego parametru, liczba wymierna z zakresu [0,1]
- */
- void printProgressBar(int lineNumber, int offset, string msg, float percent);
- /**
- * zwraca mutex (Singleton) do blokowania pisania po konsoli
- */
- static pthread_mutex_t * getMutex();
- /**
- * opóźnia wykonanie się poleceń o czas z delayVal lub customowy
- * czas pomiędzy 0-9 uruchamia systemowe sleep()
- * natomiast powyżej 9 funkcję usleep
- * @param optional opcjonalny czas (1-9 sekundy, >=10 mikrosekundy)
- */
- void delay(int optional=-1);
-
- /* mutuatory */
- LOG_COLOR getColor() const;
- void setColor(LOG_COLOR color);
- const string& getDelimiter() const;
- void setDelimiter(const string& delimiter);
- int getLineNumber() const;
- void setLineNumber(int lineNumber);
- void setLogParams(int lineNumber, LOG_COLOR color, string delimiter);
- int getDelay() const;
- void setDelay(int delay);
- string* getObjectName() const;
- void setObjectName(string* objectName);
- int getFirstLine() const;
- void setFirstLine(int firstLine);
- };
-
- #endif /* LOG_H_ */
|