cacheCleanupEventName.append(name);
eventAdd(cacheCleanupEventName.c_str(), &UserNameCache::Cleanup,
this, ::Config.authenticateGCInterval, 1);
+ RegisterRunner(this);
}
Auth::User::Pointer
return rv;
}
+void
+UserNameCache::endingShutdown()
+{
+ eventDelete(&UserNameCache::Cleanup, this);
+ reset();
+}
+
} /* namespace Auth */
#include "SBufAlgos.h"
#include "auth/User.h"
+#include "cbdata.h"
+#include "base/RunnersRegistry.h"
#include <unordered_map>
* It's meant to be used as a per-authentication protocol cache,
* cleaning up objects which are past authenticate_ttl life
*/
-class UserNameCache
+class UserNameCache : public RegisteredRunner
{
private:
+ CBDATA_CLASS(UserNameCache);
+
/// key is User::userKey(), mapped value is User::Pointer
typedef std::unordered_map<SBuf, Auth::User::Pointer> StoreType;
*
*/
std::vector<Auth::User::Pointer> sortedUsersList();
+
+ /// RegisteredRunner API
+ virtual void endingShutdown() override;
private:
StoreType store_;