AWS SDK for C++

AWS SDK for C++ Version 1.11.606

Loading...
Searching...
No Matches
ErrorMacros.h
1
6#pragma once
7
8#include <aws/core/Core_EXPORTS.h>
9
10#include <aws/core/utils/logging/LogLevel.h>
11#include <aws/core/utils/logging/AWSLogging.h>
12#include <aws/core/utils/logging/LogMacros.h>
13
14#include <aws/core/utils/RAIICounter.h>
15
16#define AWS_OPERATION_CHECK_PTR(PTR, OPERATION, ERROR_TYPE, ERROR) \
17do { \
18 if (PTR == nullptr) \
19 { \
20 AWS_LOGSTREAM_FATAL(#OPERATION, "Unexpected nullptr: " #PTR); \
21 return OPERATION##Outcome(Aws::Client::AWSError<ERROR_TYPE>(ERROR, #ERROR, "Unexpected nullptr: " #PTR, false)); \
22 } \
23} while (0)
24
25#define AWS_CHECK(LOG_TAG, CONDITION, ERROR_MESSAGE, RETURN) \
26do { \
27 if (!(CONDITION)) \
28 { \
29 AWS_LOGSTREAM_ERROR(LOG_TAG, ERROR_MESSAGE); \
30 return RETURN; \
31 } \
32} while (0)
33
34#define AWS_CHECK_PTR(LOG_TAG, PTR) \
35do { \
36 if (PTR == nullptr) \
37 { \
38 AWS_LOGSTREAM_FATAL(LOG_TAG, "Unexpected nullptr: " #PTR); \
39 return; \
40 } \
41} while (0)
42
43#define AWS_OPERATION_CHECK_SUCCESS(OUTCOME, OPERATION, ERROR_TYPE, ERROR, ERROR_MESSAGE) \
44do { \
45 if (!OUTCOME.IsSuccess()) \
46 { \
47 AWS_LOGSTREAM_ERROR(#OPERATION, ERROR_MESSAGE); \
48 return OPERATION##Outcome(Aws::Client::AWSError<ERROR_TYPE>(ERROR, #ERROR, ERROR_MESSAGE, false)); \
49 } \
50} while (0)
51
52#define AWS_OPERATION_CHECK_PARAMETER_PRESENT(REQUEST, FIELD, OPERATION, CLIENT_NAMESPACE) \
53do { \
54 if (!REQUEST##.##FIELD##HasBeenSet()) \
55 { \
56 AWS_LOGSTREAM_ERROR(#OPERATION, "Required field: "#FIELD" is not set"); \
57 return OPERATION##Outcome(Aws::Client::AWSError<CLIENT_NAMESPACE##Errors>(CLIENT_NAMESPACE##Errors::MISSING_PARAMETER, "MISSING_PARAMETER", "Missing required field ["#FIELD"]", false)); \
58 } \
59} while (0)
60
61#define AWS_OPERATION_GUARD(OPERATION) \
62if(!m_isInitialized) \
63{ \
64 AWS_LOGSTREAM_ERROR(#OPERATION, "Unable to call " #OPERATION ": client is not initialized (or already terminated)"); \
65 return Aws::Client::AWSError<CoreErrors>(CoreErrors::NOT_INITIALIZED, "NOT_INITIALIZED", "Client is not initialized or already terminated", false); \
66} \
67Aws::Utils::RAIICounter raiiGuard(this->m_operationsProcessed, &this->m_shutdownSignal)
68
69#define AWS_ASYNC_OPERATION_GUARD(OPERATION) \
70if(!m_isInitialized) \
71{ \
72 AWS_LOGSTREAM_ERROR(#OPERATION, "Unable to call " #OPERATION ": client is not initialized (or already terminated)"); \
73 return handler(this, request, Aws::Client::AWSError<CoreErrors>(CoreErrors::NOT_INITIALIZED, "NOT_INITIALIZED", "Client is not initialized or already terminated", false), handlerContext); \
74} \
75Aws::Utils::RAIICounter raiiGuard(this->m_operationsProcessed, &this->m_shutdownSignal)