Changeset 372 for cpp/frams/mhandlers
- Timestamp:
- 04/22/15 04:14:59 (10 years ago)
- Location:
- cpp/frams/mhandlers
- Files:
-
- 4 deleted
- 1 edited
- 4 copied
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
cpp/frams/mhandlers/mhandlers.cpp
r371 r372 3 3 // See LICENSE.txt for details. 4 4 5 #include " errmanager.h"5 #include "mhandlers.h" 6 6 #include <common/stl-util.h> 7 7 8 void _ FramMessageSingleLine(const char *o, const char *m, const char *txt, int w)8 void _HmessageSingleLine(const char *o, const char *m, const char *txt, int w) 9 9 { 10 tlsGetRef( errmgr_instance).send(o, m, txt, w);10 tlsGetRef(message_handler_manager_instance).send(o, m, txt, w); 11 11 } 12 12 13 THREAD_LOCAL_DEF( ErrorManager, errmgr_instance);13 THREAD_LOCAL_DEF(MessageHandlerManager, message_handler_manager_instance); 14 14 15 void ErrorManager::send(int level, const char *o, const char *m, const char *bl, int w)15 void MessageHandlerManager::send(int level, const char *o, const char *m, const char *bl, int w) 16 16 { 17 17 if (level >= handlers.size()) level = handlers.size() - 1; … … 19 19 for (int i = level; i >= 0; i--) 20 20 { 21 ErrorHandlerBase *r = handlers(i);22 if ((!(r->options & ErrorHandlerBase::Paused)) &&23 ((!blocked) || (r->options & ErrorHandlerBase::CannotBeBlocked)))21 MessageHandlerBase *r = handlers(i); 22 if ((!(r->options & MessageHandlerBase::Paused)) && 23 ((!blocked) || (r->options & MessageHandlerBase::CannotBeBlocked))) 24 24 { 25 25 r->handle(o, m, bl, w); 26 if (!(r->options & ErrorHandlerBase::DontBlock)) blocked = 1;26 if (!(r->options & MessageHandlerBase::DontBlock)) blocked = 1; 27 27 } 28 28 } 29 29 } 30 30 31 int ErrorManager::add(ErrorHandlerBase *h)31 int MessageHandlerManager::add(MessageHandlerBase *h) 32 32 { 33 33 h->mgr = this; … … 36 36 } 37 37 38 void ErrorManager::remove(int i)38 void MessageHandlerManager::remove(int i) 39 39 { 40 ErrorHandlerBase *h = handlers(i);40 MessageHandlerBase *h = handlers(i); 41 41 h->mgr = 0; 42 42 handlers.remove(i); 43 43 } 44 44 45 void ErrorManager::remove(ErrorHandlerBase *h)45 void MessageHandlerManager::remove(MessageHandlerBase *h) 46 46 { 47 47 int i; … … 50 50 } 51 51 52 void ErrorManager::removeAll()52 void MessageHandlerManager::removeAll() 53 53 { 54 54 while (handlers.size() > 0) … … 58 58 ////////////////////////////////// 59 59 60 void ErrorHandlerBase::send(const char *o, const char *m, const char *bl, int w)60 void MessageHandlerBase::send(const char *o, const char *m, const char *bl, int w) 61 61 { 62 62 if (!isEnabled()) return; … … 65 65 } 66 66 67 void ErrorHandlerBase::FMprintf(const char *o, const char *m, int w, const char *bl, ...)67 void MessageHandlerBase::Hprintf(const char *o, const char *m, int w, const char *bl, ...) 68 68 { 69 69 if (!isEnabled()) return; … … 77 77 78 78 79 void ErrorHandlerBase::enable()79 void MessageHandlerBase::enable() 80 80 { 81 81 if (isEnabled()) return; 82 tlsGetRef( errmgr_instance).add(this);82 tlsGetRef(message_handler_manager_instance).add(this); 83 83 } 84 84 85 void ErrorHandlerBase::disable()85 void MessageHandlerBase::disable() 86 86 { 87 87 if (!isEnabled()) return; 88 tlsGetRef( errmgr_instance).remove(this);88 tlsGetRef(message_handler_manager_instance).remove(this); 89 89 } 90 90 91 void ErrorHandlerBase::pause()91 void MessageHandlerBase::pause() 92 92 { 93 93 if (isPaused()) return; … … 95 95 } 96 96 97 void ErrorHandlerBase::resume()97 void MessageHandlerBase::resume() 98 98 { 99 99 if (!isPaused()) return; … … 103 103 ///////////////////////////////// 104 104 105 void ErrorHandler::handle(const char *o, const char *m, const char *bl, int w)105 void MessageHandlerToMemory::handle(const char *o, const char *m, const char *bl, int w) 106 106 { 107 107 if (w > maxlevel) maxlevel = w; 108 if (w >= FMLV_INFO) infocount++;109 if (w >= FMLV_WARN) warncount++;110 if (w >= FMLV_ERROR) errcount++;108 if (w >= HMLV_INFO) infocount++; 109 if (w >= HMLV_WARN) warncount++; 110 if (w >= HMLV_ERROR) errcount++; 111 111 112 112 if (w >= storlevel) -
cpp/frams/mhandlers/mhandlers.h
r371 r372 3 3 // See LICENSE.txt for details. 4 4 5 #ifndef _ ERRMANAGER_H_6 #define _ ERRMANAGER_H_5 #ifndef _MHANDLERS_H_ 6 #define _MHANDLERS_H_ 7 7 8 8 #include <frams/util/list.h> 9 9 #include <frams/util/sstring.h> 10 #include <common/ framsg.h>10 #include <common/hmessage.h> 11 11 #include <common/threads.h> 12 12 13 class ErrorHandlerBase;13 class MessageHandlerBase; 14 14 15 class ErrorManager15 class MessageHandlerManager 16 16 { 17 friend class ErrorHandlerBase;18 SListTempl< ErrorHandlerBase*> handlers;17 friend class MessageHandlerBase; 18 SListTempl<MessageHandlerBase*> handlers; 19 19 void send(int level, const char *o, const char *m, const char *bl, int w); 20 20 public: 21 int find( ErrorHandlerBase *r) { return handlers.find(r); }22 int add( ErrorHandlerBase *r);21 int find(MessageHandlerBase *r) { return handlers.find(r); } 22 int add(MessageHandlerBase *r); 23 23 void remove(int i); 24 void remove( ErrorHandlerBase *r);24 void remove(MessageHandlerBase *r); 25 25 void removeAll(); 26 26 void send(const char *o, const char *m, const char *bl, int w) … … 28 28 send(handlers.size() - 1, o, m, bl, w); 29 29 } 30 ~ ErrorManager() { removeAll(); }30 ~MessageHandlerManager() { removeAll(); } 31 31 }; 32 32 33 extern THREAD_LOCAL_DECL( ErrorManager, errmgr_instance);33 extern THREAD_LOCAL_DECL(MessageHandlerManager, message_handler_manager_instance); 34 34 35 35 //////////////////////////////////////// 36 36 37 class ErrorHandlerBase37 class MessageHandlerBase 38 38 { 39 friend class ErrorManager;39 friend class MessageHandlerManager; 40 40 protected: 41 ErrorManager* mgr;41 MessageHandlerManager* mgr; 42 42 int options; 43 43 … … 46 46 enum HandlerOptions 47 47 { 48 DontBlock = 1, CannotBeBlocked = 2, DontEnable = 4, Paused = 848 DontBlock = 1, CannotBeBlocked = 2, Enable = 4, Paused = 8 49 49 }; 50 50 51 void FMprintf(const char *o, const char *m, int w, const char *bl, ...);51 void Hprintf(const char *o, const char *m, int w, const char *bl, ...); 52 52 void send(const char *o, const char *m, const char *bl, int w); 53 53 … … 59 59 void resume(); 60 60 61 ErrorHandlerBase(int opts = 0) :mgr(0), options(opts)61 MessageHandlerBase(int opts = 0) :mgr(0), options(opts) 62 62 { 63 if ( !(options&DontEnable)) enable();63 if (options&Enable) enable(); 64 64 } 65 virtual ~ ErrorHandlerBase()65 virtual ~MessageHandlerBase() 66 66 { 67 67 disable(); … … 73 73 /////////////////////////////////////////// 74 74 75 class ErrorHandler : public ErrorHandlerBase75 class MessageHandlerToMemory : public MessageHandlerBase 76 76 { 77 77 protected: … … 81 81 public: 82 82 83 void reset() { maxlevel = FMLV_INFO - 1; errcount = warncount = storcount = infocount = 0; msgs = 0; }83 void reset() { maxlevel = HMLV_INFO - 1; errcount = warncount = storcount = infocount = 0; msgs = 0; } 84 84 85 85 enum Options2 … … 95 95 const SString& getMessages() { return msgs; } 96 96 97 ErrorHandler(int opts = 0, int store = FMLV_ERROR) :ErrorHandlerBase(opts), storlevel(store)97 MessageHandlerToMemory(int opts = 0, int minimal_level_to_store = HMLV_ERROR) :MessageHandlerBase(opts), storlevel(minimal_level_to_store) 98 98 { 99 99 reset(); … … 103 103 }; 104 104 105 class ErrorRedirector : public ErrorHandlerBase105 class RedirectingMessageHandler : public MessageHandlerBase 106 106 { 107 ErrorManager *other_mgr;107 MessageHandlerManager *other_mgr; 108 108 public: 109 ErrorRedirector(ErrorManager *om)110 : ErrorHandlerBase(), other_mgr(om) {}109 RedirectingMessageHandler(MessageHandlerManager *om,int opts=0) 110 :MessageHandlerBase(opts), other_mgr(om) {} 111 111 112 112 void handle(const char *o, const char *m, const char *bl, int w) -
cpp/frams/mhandlers/stderrors.cpp
r348 r372 5 5 #include "stderrors.h" 6 6 #include <frams/util/sstringutils.h> 7 #include <common/ framsg.h>7 #include <common/hmessage.h> 8 8 9 9 bool listIndexCheck(SList* list,int index,const char* msgobj,const char* msgfun) … … 13 13 { 14 14 if (size>0) 15 FMprintf(msgobj,msgfun,FMLV_ERROR,"Invalid index %d (allowed range is 0..%d)",index,size-1);15 Hprintf(msgobj,msgfun,HMLV_ERROR,"Invalid index %d (allowed range is 0..%d)",index,size-1); 16 16 else 17 FMprintf(msgobj,msgfun,FMLV_ERROR,"Invalid index %d (this list is empty)",index);17 Hprintf(msgobj,msgfun,HMLV_ERROR,"Invalid index %d (this list is empty)",index); 18 18 return 0; 19 19 } … … 29 29 { 30 30 SString msg2=SString(msg)+": \"%s\" (adjusted to \"%s\")"; 31 FMprintf(msgobj,msgfun,FMLV_WARN,msg2.c_str(),in.c_str(),corrected.c_str());31 Hprintf(msgobj,msgfun,HMLV_WARN,msg2.c_str(),in.c_str(),corrected.c_str()); 32 32 } 33 33 return corrected; -
cpp/frams/mhandlers/stdouthandler.cpp
r371 r372 3 3 // See LICENSE.txt for details. 4 4 5 #include "stdout err.h"5 #include "stdouthandler.h" 6 6 #ifdef SHP 7 7 #include <FBaseSys.h> //AppLog … … 10 10 #endif 11 11 12 void StdoutErrorHandler::handle(const char *o, const char *m, const char *bl, int w)12 void MessageHandlerToStdout::handle(const char *o, const char *m, const char *bl, int w) 13 13 { 14 14 if (w < -1) w = -1; else if (w>3) w = 3; 15 15 #ifdef SHP 16 AppLog( FRAMSG_FORMAT "\n",MSG_LEVEL[w+1],o,m,bl);16 AppLog(HMSG_FORMAT "\n",HMSG_LEVEL[w+1],o,m,bl); 17 17 #else 18 18 if (file) 19 file->printf( FRAMSG_FORMAT "\n",MSG_LEVEL[w + 1], o, m, bl);19 file->printf(HMSG_FORMAT "\n", HMSG_LEVEL[w + 1], o, m, bl); 20 20 else 21 printf( FRAMSG_FORMAT "\n",MSG_LEVEL[w + 1], o, m, bl);21 printf(HMSG_FORMAT "\n", HMSG_LEVEL[w + 1], o, m, bl); 22 22 #endif 23 23 } -
cpp/frams/mhandlers/stdouthandler.h
r371 r372 3 3 // See LICENSE.txt for details. 4 4 5 #ifndef _STDOUT ERRORHANDLER_H_6 #define _STDOUT ERRORHANDLER_H_5 #ifndef _STDOUTHANDLER_H_ 6 #define _STDOUTHANDLER_H_ 7 7 8 #include " errmanager.h"8 #include "mhandlers.h" 9 9 #include <frams/virtfile/virtfile.h> 10 10 11 class StdoutErrorHandler : public ErrorHandlerBase11 class MessageHandlerToStdout : public MessageHandlerBase 12 12 { 13 13 VirtFILE *file; 14 14 public: 15 StdoutErrorHandler(int opts = DontBlock, VirtFILE *_file = NULL) :ErrorHandlerBase(opts), file(_file) {}15 MessageHandlerToStdout(int opts = 0, VirtFILE *_file = NULL) :MessageHandlerBase(opts), file(_file) {} 16 16 void handle(const char *o, const char *m, const char *bl, int w); 17 17 };
Note: See TracChangeset
for help on using the changeset viewer.