00001 // OSB library ********************************************* -*- C++ -*- 00009 /* 00010 AUTHOR(S): Stephan Broennimann (vb) 00011 00012 RCS information 00013 $Name: OSB_060808 $ 00014 $Revision: 1.9 $ 00015 00016 License 00017 OSB rating and billing library for communication networks 00018 Copyright (C) 2004, 2005, 2006 OSB systems 00019 00020 This file may be distributed and/or modify under the terms of the 00021 GNU General Public License (GPL) as published by the Free Software 00022 Foundation which is provided in the file LICENSE.GPL included in the 00023 packaging of this file. 00024 00025 The file is distributed in the hope that it will be useful, but WITHOUT 00026 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00027 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00028 for more details. 00029 00030 Holders of a OSB Commercial License may use this file under the terms 00031 and conditions of this commercial license. 00032 */ 00033 #ifndef _OSBFAIL_H_ 00034 #define _OSBFAIL_H_ 00035 00036 // ********************************************************************* 00037 // namespace extensions 00038 namespace OSB_LIB { 00039 00040 // ********************************************************************* 00041 // class definitions 00066 class FailPoint { 00067 public: 00069 enum Action {aThrow, aAbort}; 00071 FailPoint() : counter_(0), action_(aAbort) {} 00072 00074 int counter_; 00076 Action action_; 00077 00079 void operator()(const char* where = 0); 00080 }; 00081 00083 extern FailPoint theFailPoint; 00084 } // namespace OSB_LIB 00085 #endif // #ifndef _OSBFAIL_H_