*/
-#ifndef BANCACHE_H
-#define BANCACHE_H
+#pragma once
/** Stores a cached ban entry.
* Each ban has one of these hashed in a hash_map to make for faster removal
: Type(type), Reason(reason), Expiry(ServerInstance->Time() + seconds)
{
}
+
+ bool IsPositive() const { return (!Reason.empty()); }
};
/* A container of ban cache items.
* must be defined after class BanCacheHit.
*/
-typedef std::tr1::unordered_map<std::string, BanCacheHit*, std::tr1::hash<std::string> > BanCacheHash;
+typedef TR1NS::unordered_map<std::string, BanCacheHit*, TR1NS::hash<std::string> > BanCacheHash;
/** A manager for ban cache, which allocates and deallocates and checks cached bans.
*/
class CoreExport BanCacheManager
{
- private:
BanCacheHash* BanHash;
+ bool RemoveIfExpired(BanCacheHash::iterator& it);
+
public:
/** Creates and adds a Ban Cache item.
* @param type The type of bancache entries to remove (e.g. 'G')
* @param positive Remove either positive (true) or negative (false) hits.
*/
- unsigned int RemoveEntries(const std::string &type, bool positive);
+ void RemoveEntries(const std::string& type, bool positive);
BanCacheManager()
{
this->BanHash = new BanCacheHash();
}
~BanCacheManager();
- void RehashCache();
};
-
-#endif