1 /************************************************************************* 2 * 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * Copyright 2000, 2010 Oracle and/or its affiliates. 6 * 7 * OpenOffice.org - a multi-platform office productivity suite 8 * 9 * This file is part of OpenOffice.org. 10 * 11 * OpenOffice.org is free software: you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser General Public License version 3 13 * only, as published by the Free Software Foundation. 14 * 15 * OpenOffice.org is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU Lesser General Public License version 3 for more details 19 * (a copy is included in the LICENSE file that accompanied this code). 20 * 21 * You should have received a copy of the GNU Lesser General Public License 22 * version 3 along with OpenOffice.org. If not, see 23 * <http://www.openoffice.org/license.html> 24 * for a copy of the LGPLv3 License. 25 * 26 ************************************************************************/ 27 #ifndef _ERRHDL_HXX 28 #define _ERRHDL_HXX 29 30 #ifdef DBG_UTIL 31 32 #include <tools/solar.h> 33 #include <sal/types.h> 34 #include "swdllapi.h" 35 36 extern sal_Bool bAssert; // sal_True, wenn eine ASSERT-Box hochkam 37 38 39 // ----------------------------------------------------------------------- 40 // Ausgabe einer Fehlermeldung inkl. Dateiname und Zeilennummer 41 // wo der Fehler auftrat. 42 // Die Funktion darf nicht direkt benutzt werden! 43 // ----------------------------------------------------------------------- 44 SW_DLLPUBLIC void AssertFail( const sal_Char*, const sal_Char*, sal_uInt16 ); 45 SW_DLLPUBLIC void AssertFail( sal_uInt16, const sal_Char*, sal_uInt16 ); 46 47 #define ASSERT( cond, message ) \ 48 if( !(cond) ) { \ 49 const char *_pErrorText = #message; \ 50 const char *_pFileName = __FILE__; \ 51 ::AssertFail( _pErrorText, _pFileName, __LINE__ ); \ 52 } 53 54 // ----------------------------------------------------------------------- 55 // Prueft ob die angegebene Bedingung wahr ist, wenn nicht wird eine 56 // Fehlermeldung die ueber die ID Identifiziert wird, ausgegeben. 57 // ----------------------------------------------------------------------- 58 #define ASSERT_ID( cond, id ) \ 59 if( !(cond) ) { \ 60 const char *_pFileName = __FILE__; \ 61 ::AssertFail( (sal_uInt16)id, _pFileName, __LINE__ ); \ 62 } 63 64 65 // ----------------------------------------------------------------------- 66 // Beim Bilden der Produktversion werden alle Debug-Utilities automatisch 67 // ignoriert 68 // ----------------------------------------------------------------------- 69 #else 70 #define ASSERT( cond, message ) ; 71 #define ASSERT_ID( cond, id ) ; 72 #endif // PRODUCT 73 74 75 76 #endif 77