161#ifndef INCLUDED_STATUS
162#define INCLUDED_STATUS
218#define STATUS_ADD_DEFINITIONS(definitions) static StatusDefinitionBucket definitions##_bucket = { definitions, ARRAY_SIZE(definitions), StatusAddDefinitions(&definitions##_bucket) }
257#define WARN_RETURN(status)\
260 DEBUG_WARN_ERR(status);\
267#define WARN_IF_ERR(expression)\
270 const Status status_ = (expression);\
272 DEBUG_WARN_ERR(status_);\
278#define RETURN_STATUS_IF_ERR(expression)\
281 const Status status_ = (expression);\
289#define WARN_RETURN_STATUS_IF_ERR(expression)\
292 const Status status_ = (expression);\
295 DEBUG_WARN_ERR(status_);\
303#define WARN_THROW(status)\
306 DEBUG_WARN_ERR(status);\
313#define THROW_STATUS_IF_ERR(expression)\
316 const Status status_ = (expression);\
324#define WARN_THROW_STATUS_IF_ERR(expression)\
327 const Status status_ = (expression);\
330 DEBUG_WARN_ERR(status_);\
340#define RETURN_STATUS_FROM_CALLBACK(expression)\
343 const Status status_ = (expression);\
344 if(status_ == INFO::ALL_COMPLETE)\
346 else if(status_ != INFO::OK)\
352#define RETURN_0_IF_ERR(expression)\
355 const Status status_ = (expression);\
362#define WARN_IF_FALSE(expression)\
366 debug_warn(L"FYI: WARN_IF_FALSE reports that a function failed. Feel free to ignore or suppress this warning.");\
371#define WARN_RETURN_0_IF_FALSE(expression)\
376 debug_warn(L"FYI: WARN_RETURN_0_IF_FALSE reports that a function failed. Feel free to ignore or suppress this warning.");\
const Status INVALID_VERSION
Definition: status.h:426
const Status _21
Definition: status.h:461
const Status INVALID_SIZE
Definition: status.h:423
const Status _7
Definition: status.h:449
const Status ABORTED
Definition: status.h:416
const Status _27
Definition: status.h:467
const Status _11
Definition: status.h:452
const Status _16
Definition: status.h:457
const Status _19
Definition: status.h:460
const Status LOGIC
Definition: status.h:411
const Status CORRUPTED
Definition: status.h:415
const Status FAIL
Definition: status.h:408
const Status INVALID_FLAG
Definition: status.h:424
const Status _29
Definition: status.h:469
const Status _26
Definition: status.h:466
const Status _13
Definition: status.h:454
const Status INVALID_HANDLE
Definition: status.h:421
const Status _12
Definition: status.h:453
const Status _6
Definition: status.h:448
const Status _15
Definition: status.h:456
const Status NO_MEM
Definition: status.h:432
const Status TIMED_OUT
Definition: status.h:413
const Status _23
Definition: status.h:463
const Status REENTERED
Definition: status.h:414
const Status INVALID_PARAM
Definition: status.h:425
const Status NOT_SUPPORTED
Definition: status.h:431
const Status _17
Definition: status.h:458
const Status _18
Definition: status.h:459
const Status _2
Definition: status.h:444
const Status _4
Definition: status.h:446
const Status _24
Definition: status.h:464
const Status _25
Definition: status.h:465
const Status INVALID_ALIGNMENT
Definition: status.h:419
const Status _8
Definition: status.h:450
const Status _22
Definition: status.h:462
const Status INVALID_OFFSET
Definition: status.h:420
const Status INVALID_POINTER
Definition: status.h:422
const Status _28
Definition: status.h:468
const Status _9
Definition: status.h:451
const Status _14
Definition: status.h:455
const Status _1
Definition: status.h:443
const Status LIMIT
Definition: status.h:430
const Status EXCEPTION
Definition: status.h:412
const Status AGAIN
Definition: status.h:429
const Status _3
Definition: status.h:445
const Status _5
Definition: status.h:447
const Status CANNOT_HANDLE
Definition: status.h:398
const Status SKIPPED
Definition: status.h:394
const Status ALL_COMPLETE
Definition: status.h:402
const Status OK
Definition: status.h:388
int ErrnoFromStatus(Status status)
Definition: status.cpp:93
StatusDefinitionBucket * StatusAddDefinitions(StatusDefinitionBucket *bucket)
(called via STATUS_ADD_DEFINITIONS)
Definition: status.cpp:40
wchar_t * StatusDescription(Status status, wchar_t *buf, size_t max_chars)
generate textual description of a Status.
Definition: status.cpp:79
Status StatusFromErrno()
Definition: status.cpp:105
i64 Status
Error handling system.
Definition: status.h:173
size_t numDefinitions
Definition: status.h:197
const StatusDefinition * definitions
Definition: status.h:196
StatusDefinitionBucket * next
Definition: status.h:198
int errno_equivalent
Definition: status.h:184
Status status
Definition: status.h:178
const wchar_t * description
Definition: status.h:181
int64_t i64
Definition: types.h:35