Line data Source code
1 : /********************************************************************** 2 : * $Id$ 3 : * 4 : * Name: cpl_error_internal.h 5 : * Project: CPL - Common Portability Library 6 : * Purpose: CPL Error handling 7 : * Author: Even Rouault, <even.rouault at spatialys.com> 8 : * 9 : ********************************************************************** 10 : * Copyright (c) 2019, Even Rouault, <even.rouault at spatialys.com> 11 : * 12 : * SPDX-License-Identifier: MIT 13 : ****************************************************************************/ 14 : 15 : #ifndef CPL_ERROR_INTERNAL_H_INCLUDED 16 : #define CPL_ERROR_INTERNAL_H_INCLUDED 17 : 18 : #ifdef GDAL_COMPILATION 19 : // internal only 20 : 21 : #include "cpl_error.h" 22 : #include "cpl_string.h" 23 : #include <vector> 24 : 25 : /************************************************************************/ 26 : /* ErrorHandlerAccumulator() */ 27 : /************************************************************************/ 28 : 29 : class CPL_DLL CPLErrorHandlerAccumulatorStruct 30 : { 31 : public: 32 : CPLErr type; 33 : CPLErrorNum no; 34 : CPLString msg{}; 35 : 36 0 : CPLErrorHandlerAccumulatorStruct() : type(CE_None), no(CPLE_None) 37 : { 38 0 : } 39 : 40 351 : CPLErrorHandlerAccumulatorStruct(CPLErr eErrIn, CPLErrorNum noIn, 41 : const char *msgIn) 42 351 : : type(eErrIn), no(noIn), msg(msgIn) 43 : { 44 351 : } 45 : }; 46 : 47 : void CPL_DLL CPLInstallErrorHandlerAccumulator( 48 : std::vector<CPLErrorHandlerAccumulatorStruct> &aoErrors); 49 : void CPL_DLL CPLUninstallErrorHandlerAccumulator(); 50 : 51 : #endif 52 : 53 : #endif // CPL_ERROR_INTERNAL_H_INCLUDED