00001 #ifndef ACSERREXCEPTIONMANAGER_H 00002 #define ACSERREXCEPTIONMANAGER_H 00003 00004 /******************************************************************************* 00005 * E.S.O. - ACS project 00006 * 00007 * "@(#) $Id: acserrExceptionManager.h,v 1.4 2004/06/16 08:58:05 bjeram Exp $" 00008 * 00009 * who when what 00010 * -------- ---------- ---------------------------------------------- 00011 * oat 2004-01-13 created 00012 */ 00013 00014 #include <map> 00015 #include "acserrACSbaseExImpl.h" 00016 00017 namespace ACSErr 00018 { 00019 00020 typedef std::map<ACE_CString, ACSbaseExImpl> ExmgrMap; 00021 00022 class ExceptionManager 00023 { 00024 public: 00025 static ExceptionManager* instance() { return &exmgr; } 00026 00027 void pushException(ACE_CString &str, ACSbaseExImpl &ex); 00028 00029 ACSbaseExImpl popException(ACE_CString &str); 00030 00031 bool existException(ACE_CString &str); 00032 00033 00034 private: 00035 ExceptionManager() {} 00036 static ExceptionManager exmgr; 00037 00038 ExmgrMap mymap; 00039 00040 ACE_Recursive_Thread_Mutex m_mapMutex; 00041 };// class ExceptionManager 00042 00043 };// namespace ACSErr 00044 #endif