Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 10, 2008, 12:05:03 AM (16 years ago)
Author:
landauf
Message:

merged revisions 2111-2170 from objecthierarchy branch back to trunk.

Location:
code/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • code/trunk

  • code/trunk/src/util

  • code/trunk/src/util/SignalHandler.h

    r2103 r2171  
    4040#include <string>
    4141
    42 typedef int (*SignalCallback)( void * someData );
     42namespace orxonox
     43{
     44    typedef int (*SignalCallback)( void * someData );
     45}
    4346
    4447#if ORXONOX_PLATFORM != ORXONOX_PLATFORM_WIN32
    4548#include <signal.h>
    4649
    47 struct SignalRec
     50namespace orxonox
    4851{
    49   int signal;
    50   sig_t handler;
    51 };
     52    struct SignalRec
     53    {
     54        int signal;
     55        sig_t handler;
     56    };
    5257
    53 struct SignalCallbackRec
    54 {
    55   SignalCallback cb;
    56   void * someData;
    57 };
     58    struct SignalCallbackRec
     59    {
     60        SignalCallback cb;
     61        void * someData;
     62    };
    5863
    5964
    60 typedef std::list<SignalRec> SignalRecList;
    61 typedef std::list<SignalCallbackRec> SignalCallbackList;
     65    typedef std::list<SignalRec> SignalRecList;
     66    typedef std::list<SignalCallbackRec> SignalCallbackList;
    6267
    63 class SignalHandler
    64 {
    65   private:
    66     SignalHandler();
    67   public:
    68     inline static SignalHandler* getInstance() { if (!SignalHandler::singletonRef) SignalHandler::singletonRef = new SignalHandler(); return SignalHandler::singletonRef; }
    69     ~SignalHandler(){ SignalHandler::singletonRef = NULL; }
     68    class SignalHandler
     69    {
     70    private:
     71        SignalHandler();
     72    public:
     73        inline static SignalHandler* getInstance() { if (!SignalHandler::singletonRef) SignalHandler::singletonRef = new SignalHandler(); return SignalHandler::singletonRef; }
     74        ~SignalHandler(){ SignalHandler::singletonRef = NULL; }
    7075
    71     void registerCallback( SignalCallback cb, void * someData );
     76        void registerCallback( SignalCallback cb, void * someData );
    7277
    73     void doCatch( const std::string & appName, const std::string & filename );
    74     void dontCatch();
     78        void doCatch( const std::string & appName, const std::string & filename );
     79        void dontCatch();
    7580
    76   private:
    77     static void sigHandler( int sig );
     81    private:
     82        static void sigHandler( int sig );
    7883
    79     void catchSignal( int sig );
    80     SignalRecList sigRecList;
     84        void catchSignal( int sig );
     85        SignalRecList sigRecList;
    8186
    82     SignalCallbackList callbackList;
     87        SignalCallbackList callbackList;
    8388
    84     static SignalHandler * singletonRef;
     89        static SignalHandler * singletonRef;
    8590
    86     std::string appName;
    87     std::string filename;
     91        std::string appName;
     92        std::string filename;
    8893
    89     // used to turn on KeyAutoRepeat if OIS crashes
    90     static bool bXAutoKeyRepeatOn_;
    91 };
     94        // used to turn on KeyAutoRepeat if OIS crashes
     95        static bool bXAutoKeyRepeatOn_;
     96    };
     97}
    9298
    9399#else /* ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32 */
    94100
    95 class _UtilExport SignalHandler
     101namespace orxonox
    96102{
    97   public:
    98     inline static SignalHandler* getInstance() { if (!SignalHandler::singletonRef) SignalHandler::singletonRef = new SignalHandler(); return SignalHandler::singletonRef; };
    99     void doCatch( const std::string & appName, const std::string & filename ) {};
    100     void dontCatch() {};
    101     void registerCallback( SignalCallback cb, void * someData ) {};
     103    class _UtilExport SignalHandler
     104    {
     105    public:
     106        inline static SignalHandler* getInstance() { if (!SignalHandler::singletonRef) SignalHandler::singletonRef = new SignalHandler(); return SignalHandler::singletonRef; };
     107        void doCatch( const std::string & appName, const std::string & filename ) {};
     108        void dontCatch() {};
     109        void registerCallback( SignalCallback cb, void * someData ) {};
    102110
    103   private:
    104     static SignalHandler * singletonRef;
    105 };
     111    private:
     112        static SignalHandler * singletonRef;
     113    };
     114}
    106115
    107116#endif /* ORXONOX_PLATFORM == ORXONOX_PLATFORM_WIN32 */
Note: See TracChangeset for help on using the changeset viewer.