1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 #ifndef _ERRHDL_HXX 24 #define _ERRHDL_HXX 25 26 #ifdef DBG_UTIL 27 28 #include <tools/solar.h> 29 #include <sal/types.h> 30 #include "swdllapi.h" 31 32 extern sal_Bool bAssert; // sal_True, wenn eine ASSERT-Box hochkam 33 34 35 // ----------------------------------------------------------------------- 36 // Ausgabe einer Fehlermeldung inkl. Dateiname und Zeilennummer 37 // wo der Fehler auftrat. 38 // Die Funktion darf nicht direkt benutzt werden! 39 // ----------------------------------------------------------------------- 40 SW_DLLPUBLIC void AssertFail( const sal_Char*, const sal_Char*, sal_uInt16 ); 41 SW_DLLPUBLIC void AssertFail( sal_uInt16, const sal_Char*, sal_uInt16 ); 42 43 #define ASSERT( cond, message ) \ 44 if( !(cond) ) { \ 45 const char *_pErrorText = #message; \ 46 const char *_pFileName = __FILE__; \ 47 ::AssertFail( _pErrorText, _pFileName, __LINE__ ); \ 48 } 49 50 // ----------------------------------------------------------------------- 51 // Prueft ob die angegebene Bedingung wahr ist, wenn nicht wird eine 52 // Fehlermeldung die ueber die ID Identifiziert wird, ausgegeben. 53 // ----------------------------------------------------------------------- 54 #define ASSERT_ID( cond, id ) \ 55 if( !(cond) ) { \ 56 const char *_pFileName = __FILE__; \ 57 ::AssertFail( (sal_uInt16)id, _pFileName, __LINE__ ); \ 58 } 59 60 61 // ----------------------------------------------------------------------- 62 // Beim Bilden der Produktversion werden alle Debug-Utilities automatisch 63 // ignoriert 64 // ----------------------------------------------------------------------- 65 #else 66 #define ASSERT( cond, message ) ; 67 #define ASSERT_ID( cond, id ) ; 68 #endif // PRODUCT 69 70 71 72 #endif 73