Markopy
Utilizing Markov Models for brute forcing attacks
term.h
Go to the documentation of this file.
1 /** @file term.h
2  * @brief Terminal handler for pretty stuff like colors
3  * @authors Ata Hakçıl
4  *
5  * @copydoc Markov::API::CLI::Terminal
6  */
7 
8 #pragma once
9 
10 #ifdef _WIN32
11 #include <Windows.h>
12 #endif
13 
14 #include <iostream>
15 #include <map>
16 
17 #define TERM_FAIL "[" << Markov::API::CLI::Terminal::color::RED << "+" << Markov::API::CLI::Terminal::color::RESET << "] "
18 #define TERM_INFO "[" << Markov::API::CLI::Terminal::color::BLUE << "+" << Markov::API::CLI::Terminal::color::RESET << "] "
19 #define TERM_WARN "[" << Markov::API::CLI::Terminal::color::YELLOW << "+" << Markov::API::CLI::Terminal::color::RESET << "] "
20 #define TERM_SUCC "[" << Markov::API::CLI::Terminal::color::GREEN << "+" << Markov::API::CLI::Terminal::color::RESET << "] "
21 
22 namespace Markov::API::CLI{
23  /** @brief pretty colors for Terminal. Windows Only.
24  */
25  class Terminal {
26  public:
27 
28  /** Default constructor.
29  * Get references to stdout and stderr handles.
30  */
31  Terminal();
32 
34  #ifdef _WIN32
35  static HANDLE _stdout;
36  static HANDLE _stderr;
38  #else
39  static std::map<Markov::API::CLI::Terminal::color, int> colormap;
40  #endif
41 
42 
43 
44  static std::ostream endl;
45 
46 
47  };
48 
49  /** overload for std::cout.
50  */
51  std::ostream& operator<<(std::ostream& os, const Markov::API::CLI::Terminal::color& c);
52 
53 }