GDAL
cpl_vsi_error.h
1/******************************************************************************
2 * $Id$
3 *
4 * Project: VSI Virtual File System
5 * Purpose: Implement an error system for reporting file system errors.
6 * Filesystem errors need to be handled separately from the
7 * CPLError architecture because they are potentially ignored.
8 * Author: Rob Emanuele, rdemanuele at gmail.com
9 *
10 ******************************************************************************
11 * Copyright (c) 2016, Rob Emanuele <rdemanuele at gmail.com>
12 *
13 * SPDX-License-Identifier: MIT
14 ****************************************************************************/
15
16#ifndef CPL_VSI_ERROR_H_INCLUDED
17#define CPL_VSI_ERROR_H_INCLUDED
18
19#include "cpl_port.h"
20#include "cpl_error.h"
21
22/* ====================================================================
23 Filesystem error codes.
24 ==================================================================== */
25
27
28typedef int VSIErrorNum;
29
30#define VSIE_None 0
31#define VSIE_FileError 1
32#define VSIE_HttpError 2
33
34#define VSIE_AWSError 5
35#define VSIE_AWSAccessDenied 6
36#define VSIE_AWSBucketNotFound 7
37#define VSIE_AWSObjectNotFound 8
38#define VSIE_AWSInvalidCredentials 9
39#define VSIE_AWSSignatureDoesNotMatch 10
40
41void CPL_DLL VSIError(VSIErrorNum err_no, CPL_FORMAT_STRING(const char *fmt),
42 ...) CPL_PRINT_FUNC_FORMAT(2, 3);
43
44void CPL_DLL CPL_STDCALL VSIErrorReset(void);
45VSIErrorNum CPL_DLL CPL_STDCALL VSIGetLastErrorNo(void);
46const char CPL_DLL *CPL_STDCALL VSIGetLastErrorMsg(void);
47
48int CPL_DLL CPL_STDCALL VSIToCPLError(CPLErr eErrClass,
49 CPLErrorNum eDefaultErrorNo);
50void CPL_DLL VSIToCPLErrorWithMsg(CPLErr eErrClass, CPLErrorNum eDefaultErrorNo,
51 const char *pszMsg);
52
54
55#endif /* CPL_VSI_ERROR_H_INCLUDED */
CPL error handling services.
CPLErr
Error category.
Definition: cpl_error.h:37
int CPLErrorNum
Error number.
Definition: cpl_error.h:79
Core portability definitions for CPL.
#define CPL_C_END
Macro to end a block of C symbols.
Definition: cpl_port.h:283
#define CPL_C_START
Macro to start a block of C symbols.
Definition: cpl_port.h:279
#define CPL_FORMAT_STRING(arg)
Macro into which to wrap the format argument of a printf-like function.
Definition: cpl_port.h:954
#define CPL_PRINT_FUNC_FORMAT(format_idx, arg_idx)
Tag a function to have printf() formatting.
Definition: cpl_port.h:938