25 #define X(a, b, c) case a: return reinterpret_cast< c* >(buffer)->apply_engine(context);
39 #define X(a, b, c) case a: \
40 reinterpret_cast< c* >(buffer)->apply_storage(engine, storage_id); return;
55 #define X(a, b, c) case a: o << *reinterpret_cast< const c* >(buffer); break;
59 std::ostream &o = *ptr;
LogCode
A unique identifier of all log types.
uint32_t StorageId
Unique ID for storage.
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
Represents one thread running on one NUMA core.
void invoke_apply_engine(void *log_buffer, thread::Thread *context)
Invokes the apply logic for an engine-wide log type.
void invoke_assert_valid(void *log_buffer)
Invokes the assertion logic of each log type.
void invoke_apply_storage(void *log_buffer, Engine *engine, storage::StorageId id)
Invokes the apply logic for a storage-wide log type.
Database engine object that holds all resources and provides APIs.
0 is reserved as a non-existing log type.
void invoke_ostream(const void *buffer, std::ostream *ptr)
Invokes the ostream operator for the given log type defined in log_type.xmacro.
#define ASSERT_ND(x)
A warning-free wrapper macro of assert() that has no performance effect in release mode even when 'x'...