tool_exit.h 787 B

123456789101112131415161718192021222324252627282930
  1. #ifndef AFUN_EXIT_H
  2. #define AFUN_EXIT_H
  3. #ifdef __cplusplus
  4. #include <functional>
  5. #include "aFunToolExport.h"
  6. #include "tool_macro.h"
  7. #ifndef AFUN_TOOL_C
  8. namespace aFuntool {
  9. #endif
  10. typedef std::function<void(void *)> aFunExitFunc;
  11. typedef std::function<void()> ExitFunc;
  12. AFUN_TOOL_EXPORT void aFunExit(int exit_code) noexcept(false);
  13. [[noreturn]] AFUN_TOOL_EXPORT void aFunExitReal(int exit_code);
  14. AFUN_TOOL_EXPORT bool aFunTryExitPseudo();
  15. AFUN_TOOL_EXPORT void aFunExitPseudo();
  16. AFUN_TOOL_EXPORT bool aFunAtExitTry(const aFunExitFunc &func, void *data);
  17. AFUN_TOOL_EXPORT void aFunAtExit(const aFunExitFunc &func, void *data);
  18. AFUN_TOOL_EXPORT void aFunAtExit(const ExitFunc& func);
  19. #ifndef AFUN_TOOL_C
  20. }
  21. #endif
  22. #endif
  23. #endif //AFUN_EXIT_H