26#ifndef ROUTER_SRC_REST_MRS_SRC_CACHE_MANAGER_H_
27#define ROUTER_SRC_REST_MRS_SRC_CACHE_MANAGER_H_
35template <
typename Obj>
50 other.parent_ =
nullptr;
51 other.object_ =
nullptr;
54 template <
typename... Args>
68 other.parent_ =
nullptr;
145 object.parent_ =
nullptr;
147 bool maybe_returnable =
false;
153 if (maybe_returnable &&
157 objects_.push_back(std::move(
object.object_));
Kerberos Client Authentication nullptr
Definition: auth_kerberos_client_plugin.cc:247
Definition: cache_manager.h:41
~CachedObject()
Definition: cache_manager.h:58
bool operator==(const Object &obj) const
Definition: cache_manager.h:76
Object get()
Definition: cache_manager.h:79
bool wait_
Definition: cache_manager.h:109
CacheManager * parent_
Definition: cache_manager.h:108
bool is_dirty() const
Definition: cache_manager.h:104
bool empty() const
Definition: cache_manager.h:74
CachedObject & operator=(CachedObject &&other)
Definition: cache_manager.h:62
void set_dirty()
Mark that the object is dirty.
Definition: cache_manager.h:93
Object object_
Definition: cache_manager.h:110
CacheManager * get_parent() const
Definition: cache_manager.h:106
CachedObject(CacheManager *parent=nullptr)
Definition: cache_manager.h:43
CachedObject(CacheManager *parent, bool wait, Args &&...args)
Definition: cache_manager.h:55
bool dirty_
Definition: cache_manager.h:113
void set_clean()
Mark the the object is clean.
Definition: cache_manager.h:102
Object operator->()
Definition: cache_manager.h:78
CachedObject(CachedObject &&other)
Definition: cache_manager.h:46
Definition: cache_manager.h:116
CacheManager::Object Object
Definition: cache_manager.h:118
virtual void object_remove(Object)=0
virtual ~Callbacks()=default
virtual Object object_allocate(bool wait)=0
virtual bool object_before_cache(Object, bool dirty)=0
virtual bool object_retrived_from_cache(Object)=0
Definition: cache_manager.h:36
CachedObject get_instance(bool wait)
Definition: cache_manager.h:138
Object pop_one()
Definition: cache_manager.h:175
Obj Object
Definition: cache_manager.h:38
Callbacks * get_callbacks() const
Definition: cache_manager.h:172
std::mutex object_container_mutex_
Definition: cache_manager.h:201
void change_cache_object_limit(uint32_t limit)
Definition: cache_manager.h:165
std::list< Object > objects_
Definition: cache_manager.h:202
void return_instance(CachedObject &object)
Definition: cache_manager.h:144
virtual ~CacheManager()
Definition: cache_manager.h:131
uint32_t objects_limit_
Definition: cache_manager.h:200
Object pop(bool wait)
Definition: cache_manager.h:186
Callbacks * callbacks_
Definition: cache_manager.h:203
CacheManager(Callbacks *callbacks, uint32_t limit=20)
Definition: cache_manager.h:128
Definition: cache_manager.h:33
static int wait(mysql_cond_t *that, mysql_mutex_t *mutex_arg, const char *, unsigned int)
Definition: mysql_cond_v1_native.cc:62
Definition: gcs_xcom_synode.h:64
static std::mutex lock
Definition: net_ns.cc:56
struct result result
Definition: result.h:34