1370b324cSopenharmony_ci// ConsoleClose.h
2370b324cSopenharmony_ci
3370b324cSopenharmony_ci#ifndef ZIP7_INC_CONSOLE_CLOSE_H
4370b324cSopenharmony_ci#define ZIP7_INC_CONSOLE_CLOSE_H
5370b324cSopenharmony_ci
6370b324cSopenharmony_cinamespace NConsoleClose {
7370b324cSopenharmony_ci
8370b324cSopenharmony_ciclass CCtrlBreakException {};
9370b324cSopenharmony_ci
10370b324cSopenharmony_ci#ifdef UNDER_CE
11370b324cSopenharmony_ci
12370b324cSopenharmony_ciinline bool TestBreakSignal() { return false; }
13370b324cSopenharmony_cistruct CCtrlHandlerSetter {};
14370b324cSopenharmony_ci
15370b324cSopenharmony_ci#else
16370b324cSopenharmony_ci
17370b324cSopenharmony_ciextern unsigned g_BreakCounter;
18370b324cSopenharmony_ci
19370b324cSopenharmony_ciinline bool TestBreakSignal()
20370b324cSopenharmony_ci{
21370b324cSopenharmony_ci  return (g_BreakCounter != 0);
22370b324cSopenharmony_ci}
23370b324cSopenharmony_ci
24370b324cSopenharmony_ciclass CCtrlHandlerSetter Z7_final
25370b324cSopenharmony_ci{
26370b324cSopenharmony_ci  #ifndef _WIN32
27370b324cSopenharmony_ci  void (*memo_sig_int)(int);
28370b324cSopenharmony_ci  void (*memo_sig_term)(int);
29370b324cSopenharmony_ci  #endif
30370b324cSopenharmony_cipublic:
31370b324cSopenharmony_ci  CCtrlHandlerSetter();
32370b324cSopenharmony_ci  ~CCtrlHandlerSetter();
33370b324cSopenharmony_ci};
34370b324cSopenharmony_ci
35370b324cSopenharmony_ci#endif
36370b324cSopenharmony_ci
37370b324cSopenharmony_ci}
38370b324cSopenharmony_ci
39370b324cSopenharmony_ci#endif
40