ADBC
Arrow 数据库连接性
正在加载...
正在搜索...
无匹配项
status.h 文件参考
#include <cassert>
#include <cstring>
#include <memory>
#include <sstream>
#include <string>
#include <utility>
#include <variant>
#include <vector>
#include <arrow-adbc/adbc.h>

转到此文件的源代码。

类  adbc::driver::Status
 AdbcStatusCode + AdbcError 的包装器。 更多...
 
结构  adbc::driver::Status::Impl
 私有 Status 实现细节。 更多...
 
类  adbc::driver::Result< T >
 一个值或错误的包装器。 更多...
 

#define STATUS_CTOR(NAME, CODE)
 
#define RAISE_RESULT_IMPL(NAME, ERROR, LHS, RHS)
 
#define RAISE_STATUS_IMPL(NAME, ERROR, RHS)
 
#define UNWRAP_RESULT_IMPL(name, lhs, rhs)
 
#define UNWRAP_STATUS_IMPL(name, rhs)
 
#define DRIVER_CONCAT(x, y)
 
#define UNWRAP_RESULT_NAME(x, y)
 
#define RAISE_RESULT(ERROR, LHS, RHS)
 一个辅助函数,用于在返回 AdbcStatusCode 的函数中展开 Result。
 
#define RAISE_STATUS(ERROR, RHS)
 一个辅助函数,用于在返回 AdbcStatusCode 的函数中展开 Status。
 
#define UNWRAP_RESULT(lhs, rhs)
 一个辅助函数,用于在返回 Result/Status 的函数中展开 Result。
 
#define UNWRAP_STATUS(rhs)
 一个辅助函数,用于在返回 Result/Status 的函数中展开 Status。
 
#define STATUS_CTOR(NAME, CODE)
 
#define UNWRAP_ERRNO_IMPL(NAME, CODE, RHS)
 
#define UNWRAP_ERRNO(CODE, RHS)
 
#define UNWRAP_NANOARROW_IMPL(NAME, ERROR, CODE, RHS)
 
#define UNWRAP_NANOARROW(ERROR, CODE, RHS)
 

函数

driver::Status adbc::driver::status::Ok ()
 

宏定义文档

◆ DRIVER_CONCAT

#define DRIVER_CONCAT ( x,
y )
x##y

◆ RAISE_RESULT

#define RAISE_RESULT ( ERROR,
LHS,
RHS )
RAISE_RESULT_IMPL(UNWRAP_RESULT_NAME(driver_raise_result, __COUNTER__), ERROR, LHS, RHS)

一个辅助函数,用于在返回 AdbcStatusCode 的函数中展开 Result。

◆ RAISE_RESULT_IMPL

#define RAISE_RESULT_IMPL ( NAME,
ERROR,
LHS,
RHS )
auto&& NAME = (RHS); \
if (!(NAME).has_value()) { \
return (NAME).status().ToAdbc(ERROR); \
} \
LHS = std::move((NAME).value());

◆ RAISE_STATUS

#define RAISE_STATUS ( ERROR,
RHS )
RAISE_STATUS_IMPL(UNWRAP_RESULT_NAME(driver_raise_status, __COUNTER__), ERROR, RHS)

一个辅助函数,用于在返回 AdbcStatusCode 的函数中展开 Status。

◆ RAISE_STATUS_IMPL

#define RAISE_STATUS_IMPL ( NAME,
ERROR,
RHS )
auto&& NAME = (RHS); \
if (!(NAME).ok()) { \
return (NAME).ToAdbc(ERROR); \
}

◆ STATUS_CTOR [1/2]

#define STATUS_CTOR ( NAME,
CODE )
template <typename... Args> \
static Status NAME(Args&&... args) { \
std::stringstream ss; \
([&] { ss << args; }(), ...); \
return Status(ADBC_STATUS_##CODE, ss.str()); \
}

◆ STATUS_CTOR [2/2]

#define STATUS_CTOR ( NAME,
CODE )
template <typename... Args> \
static Status NAME(Args&&... args) { \
std::stringstream ss; \
([&] { ss << args; }(), ...); \
return Status(ADBC_STATUS_##CODE, ss.str()); \
}

◆ UNWRAP_ERRNO

#define UNWRAP_ERRNO ( CODE,
RHS )
UNWRAP_ERRNO_IMPL(UNWRAP_RESULT_NAME(driver_errno, __COUNTER__), CODE, RHS)

◆ UNWRAP_ERRNO_IMPL

#define UNWRAP_ERRNO_IMPL ( NAME,
CODE,
RHS )
auto&& NAME = (RHS); \
if (NAME != 0) { \
return adbc::driver::status::CODE("调用失败: ", #RHS, " = (errno ", NAME, ") ", \
std::strerror(NAME)); \
}

◆ UNWRAP_NANOARROW

#define UNWRAP_NANOARROW ( ERROR,
CODE,
RHS )
UNWRAP_NANOARROW_IMPL(UNWRAP_RESULT_NAME(driver_errno_na, __COUNTER__), ERROR, CODE, \
RHS)

◆ UNWRAP_NANOARROW_IMPL

#define UNWRAP_NANOARROW_IMPL ( NAME,
ERROR,
CODE,
RHS )
auto&& NAME = (RHS); \
if (NAME != 0) { \
return adbc::driver::status::CODE("nanoarrow 调用失败: ", #RHS, " = (", NAME, \
") ", std::strerror(NAME), ". ", (ERROR).message); \
}

◆ UNWRAP_RESULT

#define UNWRAP_RESULT ( lhs,
rhs )
UNWRAP_RESULT_IMPL(UNWRAP_RESULT_NAME(driver_unwrap_result, __COUNTER__), lhs, rhs)

一个辅助函数,用于在返回 Result/Status 的函数中展开 Result。

◆ UNWRAP_RESULT_IMPL

#define UNWRAP_RESULT_IMPL ( name,
lhs,
rhs )
auto&& name = (rhs); \
if (!(name).has_value()) { \
return std::move(name).status(); \
} \
lhs = std::move((name).value());

◆ UNWRAP_RESULT_NAME

#define UNWRAP_RESULT_NAME ( x,
y )
DRIVER_CONCAT(x, y)

◆ UNWRAP_STATUS

#define UNWRAP_STATUS ( rhs)
UNWRAP_STATUS_IMPL(UNWRAP_RESULT_NAME(driver_unwrap_status, __COUNTER__), rhs)

一个辅助函数,用于在返回 Result/Status 的函数中展开 Status。

◆ UNWRAP_STATUS_IMPL

#define UNWRAP_STATUS_IMPL ( name,
rhs )
auto&& name = (rhs); \
if (!(name).ok()) { \
return std::move(name); \
}