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