18 #ifndef FOEDUS_PROC_PROC_MANAGER_PIMPL_HPP_
19 #define FOEDUS_PROC_PROC_MANAGER_PIMPL_HPP_
103 "ProcManagerControlBlock is too large.");
106 #endif // FOEDUS_PROC_PROC_MANAGER_PIMPL_HPP_
ErrorStack uninitialize_once() override
LocalProcId * name_sort_
IDs sorted by name for quick lookup.
std::vector< SharedData > all_soc_procs_
Shared data of all SOCs.
ErrorStack local_register(const ProcAndName &proc_and_name)
ProcManagerControlBlock * control_block_
void initialize(bool recursive=false)
Root package of FOEDUS (Fast Optimistic Engine for Data Unification Services).
static LocalProcId find_by_name(const ProcName &name, SharedData *shared_data)
Forward declarations of classes in root package.
Brings error stacktrace information as return value of functions.
soc::SharedMutex lock_
Mutex to protect data.
Typical implementation of Initializable as a skeleton base class.
All shared data in this module.
A mutex that can be placed in shared memory and used from multiple processes.
ErrorStack initialize_once() override
ErrorStack pre_register(const ProcAndName &proc_and_name)
ProcManagerPimpl(Engine *engine)
Database engine object that holds all resources and provides APIs.
Typedefs of ID types used in procedure package.
std::string describe_registered_procs() const
std::pair< ProcName, Proc > ProcAndName
ErrorStack get_proc(const ProcName &name, Proc *out)
ProcManagerControlBlock()=delete
SharedData * get_local_data()
ErrorStack emulated_register(const ProcAndName &proc_and_name)
ProcManagerPimpl()=delete
ProcAndName * procs_
The procedure list maintained in this module is an array of ProcName.
~ProcManagerControlBlock()=delete
This small control block is used to synchronize the access to the array.
uint32_t LocalProcId
Represents a locally-unique ID of a procedure in one SOC.
ErrorStack(* Proc)(const ProcArguments &args)
A function pointer of a user/system stored procedure.
Pimpl object of ProcManager.
Forward declarations of classes in proc package.
static LocalProcId insert(const ProcAndName &proc_and_name, SharedData *shared_data)
std::vector< ProcAndName > pre_registered_procs_