Navigation
API > API/Runtime > API/Runtime/AutoRTFM
The C API exists for a few reasons:
- It makes linking easy. AutoRTFM has to deal with a weird kind of linking where the compiler directly emits calls to functions with a given name. It's easiest to do that in llvm if the functions have C linkage and C ABI.
- It makes testing easy. Even seemingly simple C++ code introduces pitfalls for AutoRTFM. So very focused tests work best when written in C.
- It makes compiler optimizations much easier as there is no mangling to consider when looking for functions in the runtime we can optimize.
We use snake_case for C API surface area to make it easy to distinguish.
The C API should not be used directly - it is here purely as an implementation detail.
| Name | autortfm_transaction_status |
| Type | enum |
| Header File | /Engine/Source/Runtime/AutoRTFM/Public/AutoRTFM/CAPI.h |
| Include Path | #include "AutoRTFM/CAPI.h" |
Syntax
enum autortfm_transaction_status
{
autortfm_transaction_executing = 0,
autortfm_transaction_committed,
autortfm_transaction_aborted_by_request,
autortfm_transaction_aborted_by_language,
autortfm_transaction_rejected_during_unwind,
autortfm_transaction_rejected_during_commit,
autortfm_transaction_rejected_during_abort,
autortfm_transaction_rejected_during_retry,
autortfm_transaction_rejected_during_complete,
autortfm_transaction_aborted_by_cascading_abort,
autortfm_transaction_aborted_by_cascading_retry,
}
Values
| Name | Remarks |
|---|---|
| autortfm_transaction_executing | |
| autortfm_transaction_committed | |
| autortfm_transaction_aborted_by_request | |
| autortfm_transaction_aborted_by_language | |
| autortfm_transaction_rejected_during_unwind | |
| autortfm_transaction_rejected_during_commit | |
| autortfm_transaction_rejected_during_abort | |
| autortfm_transaction_rejected_during_retry | |
| autortfm_transaction_rejected_during_complete | |
| autortfm_transaction_aborted_by_cascading_abort | |
| autortfm_transaction_aborted_by_cascading_retry |