9#ifndef SQUID_BASE_RUNNERSREGISTRY_H
10#define SQUID_BASE_RUNNERSREGISTRY_H
117#define RunRegisteredHere(m) \
118 debugs(1, 2, "running " # m); \
123#define NameRunnerRegistrator_(Namespace, ClassName) \
124 Register ## ClassName ## In ## Namespace()
128#define DefineRunnerRegistrator_(Namespace, ClassName, Constructor) \
129 void NameRunnerRegistrator_(Namespace, ClassName); \
130 void NameRunnerRegistrator_(Namespace, ClassName) { \
131 const auto registered = RegisterRunner(new Constructor); \
132 assert(registered); \
139#define DefineRunnerRegistratorIn(Namespace, ClassName) \
140 DefineRunnerRegistrator_(Namespace, ClassName, Namespace::ClassName)
146#define DefineRunnerRegistrator(ClassName) \
147 DefineRunnerRegistrator_(Global, ClassName, ClassName)
151#define CallRunnerRegistratorIn(Namespace, ClassName) \
153 void NameRunnerRegistrator_(Namespace, ClassName); \
154 NameRunnerRegistrator_(Namespace, ClassName); \
159#define CallRunnerRegistrator(ClassName) \
160 CallRunnerRegistratorIn(Global, ClassName)
void RunRegistered(const RegisteredRunner::Method &m)
bool RegisterRunner(RegisteredRunner *rr)
registers a given runner with the given registry and returns true on success
A RegisteredRunner with lifetime determined by forces outside the Registry.
void unregisterRunner()
unregisters self; safe to call multiple times
~IndependentRunner() override
virtual void syncConfig()
virtual void bootstrapConfig()
virtual void claimMemoryNeeds()
void(RegisteredRunner::* Method)()
a pointer to one of the above notification methods
virtual void startShutdown()
virtual ~RegisteredRunner()
virtual void finalizeConfig()
virtual void endingShutdown()
virtual void finishShutdown()
Meant for cleanup of services needed by the already destroyed objects.
virtual void startReconfigure()