libfoedus-core
FOEDUS Core Library
|
A functor representing the logic in a system transaction via virtual-function. More...
A functor representing the logic in a system transaction via virtual-function.
Each sysxct inherits this class and overrides the run() method to implement the sysxct. This class is a pure interface. No data nor no pre-defined anything.
We initially passed around template functors, but that demands exposing ThreadPimpl to the code that implements individual sysxct. Rather, we now pass around a virtual function. The cost of virtual function invocation should be negligible for each sysxct execution. Well, let's keep an eye.
Definition at line 42 of file sysxct_functor.hpp.
#include <sysxct_functor.hpp>
Public Member Functions | |
virtual ErrorCode | run (SysxctWorkspace *sysxct_workspace)=0 |
Execute the system transaction. More... | |
|
pure virtual |
Execute the system transaction.
You should override this method.
Implemented in foedus::storage::masstree::SplitIntermediate, foedus::storage::hash::ReserveRecords, foedus::storage::masstree::ReserveRecords, foedus::storage::masstree::SplitBorder, foedus::storage::masstree::GrowNonFirstLayerRoot, foedus::storage::masstree::Adopt, and foedus::storage::masstree::GrowFirstLayerRoot.
Referenced by foedus::xct::run_nested_sysxct_impl().