00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 #ifndef _SK_UTIL_SYSTEMEXIT_
00010 #define _SK_UTIL_SYSTEMEXIT_
00011 
00012 #include <string>
00013 #include <exception>
00014 
00015 namespace sk {
00016   namespace util {
00017     class SystemExit
00018     {
00019       public:
00020         SystemExit(int code);
00021         SystemExit(int code, const std::string& message);
00022         SystemExit(const std::string& message);
00023         SystemExit(int code, const std::exception& exception);
00024         SystemExit(const std::exception& exception);
00025 
00026         int getCode() const;
00027         const std::string getMessage() const;
00028         
00029       private:
00030         int _code;
00031         const std::string _message;
00032     };
00033   }
00034 }
00035 
00036 #endif