Changeset 104 for cpp/gdk/errmanager.h


Ignore:
Timestamp:
07/23/13 18:15:30 (11 years ago)
Author:
sz
Message:

introducing object de/serialization - see serialtest.cpp
the core GDK classes can be now used in multiple threads (ifdef MULTITHREADED)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpp/gdk/errmanager.h

    r66 r104  
    99#include "sstring.h"
    1010#include "framsg.h"
     11#include "threads.h"
    1112
    1213class ErrorHandlerBase;
     
    2627        {send(handlers.size()-1,o,m,bl,w);}
    2728~ErrorManager() {removeAll();}
     29
     30static ThreadSingleton<ErrorManager> instance;
    2831};
    29 
    30 extern ErrorManager globalErrorManager;
    3132
    3233////////////////////////////////////////
     
    5152void disable();
    5253
    53 ErrorHandlerBase(int opts=0):options(opts),mgr(0)
     54ErrorHandlerBase(int opts=0):mgr(0),options(opts)
    5455        {if (!(options&DontEnable)) enable();}
    5556~ErrorHandlerBase()
     
    8788};
    8889
     90class ErrorRedirector: public ErrorHandlerBase
     91{
     92        ErrorManager *other_mgr;
     93public:
     94        ErrorRedirector(ErrorManager *om)
     95                :ErrorHandlerBase(),other_mgr(om) {}
     96
     97        void handle(const char *o,const char *m,const char *bl,int w)
     98                {
     99                other_mgr->send(o,m,bl,w);
     100                }
     101};
     102
    89103#endif
    90104
Note: See TracChangeset for help on using the changeset viewer.