Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
.
[graphlib.git] / MainDrawingThread.h
1 #ifndef MAIN_DRAWING_THREAD_H
2 #define MAIN_DRAWING_THREAD_H
3
4 #include <DrawingThreadCore.h>
5
6 class MainDrawingThread: public DrawingThreadCore {
7 private:
8     int argc;
9     char **argv;
10
11     template<int (*f)()>
12     static int mainWrapper(int, char **)
13     {
14         return f();
15     }
16
17     template<int (*f)(int, char **)>
18     static int mainWrapper(int argc, char **argv)
19     {
20         return f(argc, argv);
21     }
22
23     static int (*main)(int, char **);
24
25     int runForReal();
26
27 public:
28     MainDrawingThread(int argc_, char **argv_);
29         
30 };
31
32 #define MAIN_DRAWING_THREAD(function)                   \
33     int (*MainDrawingThread::main)(int, char **) =      \
34         MainDrawingThread::mainWrapper<function>;
35
36 #endif // !MAIN_DRAWING_THREAD_H