AWS SDK for C++
AWS SDK for C++
Loading...
Searching...
No Matches
ErrorMacros.h
Go to the documentation of this file.
1
6#pragma once
7
9
13
14#define AWS_OPERATION_CHECK_PTR(PTR, OPERATION, ERROR_TYPE, ERROR) \
15do { \
16 if (PTR == nullptr) \
17 { \
18 AWS_LOGSTREAM_FATAL(#OPERATION, "Unexpected nullptr: " #PTR); \
19 return OPERATION##Outcome(Aws::Client::AWSError<ERROR_TYPE>(ERROR, #ERROR, "Unexpected nullptr: " #PTR, false)); \
20 } \
21} while (0)
22
23#define AWS_CHECK(LOG_TAG, CONDITION, ERROR_MESSAGE, RETURN) \
24do { \
25 if (!(CONDITION)) \
26 { \
27 AWS_LOGSTREAM_ERROR(LOG_TAG, ERROR_MESSAGE); \
28 return RETURN; \
29 } \
30} while (0)
31
32#define AWS_CHECK_PTR(LOG_TAG, PTR) \
33do { \
34 if (PTR == nullptr) \
35 { \
36 AWS_LOGSTREAM_FATAL(LOG_TAG, "Unexpected nullptr: " #PTR); \
37 return; \
38 } \
39} while (0)
40
41#define AWS_OPERATION_CHECK_SUCCESS(OUTCOME, OPERATION, ERROR_TYPE, ERROR, ERROR_MESSAGE) \
42do { \
43 if (!OUTCOME.IsSuccess()) \
44 { \
45 AWS_LOGSTREAM_ERROR(#OPERATION, ERROR_MESSAGE); \
46 return OPERATION##Outcome(Aws::Client::AWSError<ERROR_TYPE>(ERROR, #ERROR, ERROR_MESSAGE, false)); \
47 } \
48} while (0)
49
50#define AWS_OPERATION_CHECK_PARAMETER_PRESENT(REQUEST, FIELD, OPERATION, CLIENT_NAMESPACE) \
51do { \
52 if (!REQUEST##.##FIELD##HasBeenSet()) \
53 { \
54 AWS_LOGSTREAM_ERROR(#OPERATION, "Required field: "#FIELD" is not set"); \
55 return OPERATION##Outcome(Aws::Client::AWSError<CLIENT_NAMESPACE##Errors>(CLIENT_NAMESPACE##Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field ["#FIELD"]", false)); \
56 } \
57} while (0)