File: common.h

package info (click to toggle)
open-roms 0.0~git20210824.e4e324c-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 10,184 kB
  • sloc: asm: 25,386; cpp: 3,333; ansic: 1,667; makefile: 709
file content (58 lines) | stat: -rw-r--r-- 982 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//
// Common parts of utilities written in C++
// for providing uniform user experience
//

#include <iostream>
#include <string>


#if defined(WIN32) || defined(_WIN32)
    #define DIR_SEPARATOR "\\"
#else
    #define DIR_SEPARATOR "/"
#endif


const std::string BANNER_LINE = "//-------------------------------------------------------------------------------------------";


void ERROR()
{
    exit(-1);
}

void ERROR(const std::string &message)
{
    std::cout << "\n" << "ERROR: " << message << "\n\n";
    exit(-1);
}

void printBannerLineTop()
{
    std::cout << "\n\n\n" << BANNER_LINE << "\n";
}

void printBannerLineBottom()
{
    std::cout << BANNER_LINE << "\n\n";
}


class DualStream
{
public:
    DualStream(std::ostream& str1, std::ostream& str2) : str1(str1), str2(str2) {}

    template<class T> DualStream &operator<<(const T& x)
    {
        str1 << x;
        str2 << x;

        return *this;
    }

private:
    std::ostream& str1;
    std::ostream& str2;
};