Distributed Cache
LRU_cache_policy.h
Go to the documentation of this file.
1 #include <list>
2 #include <map>
3 
5 #include "types.h"
6 
8  std::map<key_pair_t, int> keyValueMap;
9  std::map<key_pair_t, std::list<key_pair_t>::iterator> keyIteratorMap;
10  std::list<key_pair_t> LRU_Queue;
11  int size;
12 
13  public:
14  bool hasEntry(std::string container, int key);
15  int getEntry(std::string container, int key);
16  void insert(std::string container, int key, int value);
17  void erase(std::string container, int key);
18  void allocateSize(int size);
19  void reset();
20  int getSize() { return size;}
21  LRUCachePolicy(int size = 0) : size(size) {}
22 };
LRUCachePolicy::LRUCachePolicy
LRUCachePolicy(int size=0)
Definition: LRU_cache_policy.h:21
server
CacheServer server
Definition: cache_server.cpp:236
BasicDataConnector
Definition: basic_data_connector.h:6
loop_read
static ssize_t loop_read(int fd, void *data, size_t size)
Definition: requests.h:105
DataConnector::POSTGRES
@ POSTGRES
main
int main(int argc, char **argv)
Definition: cache_server.cpp:252
Cache
Definition: cache.h:8
LRUCachePolicy::keyValueMap
std::map< key_pair_t, int > keyValueMap
Definition: LRU_cache_policy.h:8
LRUCachePolicy::keyIteratorMap
std::map< key_pair_t, std::list< key_pair_t >::iterator > keyIteratorMap
Definition: LRU_cache_policy.h:9
ServerThreadPool
Definition: server_thread_pool.h:24
member_node.h
LRUCachePolicy
Definition: LRU_cache_policy.h:7
CacheServer::kill
void kill()
Definition: cache_server.cpp:231
server_thread_pool.h
GetRequest::container
char container[10]
Definition: requests.h:14
basic_data_connector.h
types.h
CacheServer::database
DataConnectorInterface * database
Definition: cache_server.cpp:107
Cache::reset
void reset()
Definition: Cache.cpp:37
CachePolicy
CachePolicy
Definition: cache_policies.h:4
postgres_data_connector.h
handle_my
void handle_my(int sig)
Definition: cache_server.cpp:244
LRUCachePolicy::getSize
int getSize()
Definition: LRU_cache_policy.h:20
MemberNode::getNearestNode
Address getNearestNode(int key)
Definition: member_node.cpp:127
DataConnector::DEFAULT
@ DEFAULT
requests.h
CacheServer::start
void start()
Definition: cache_server.cpp:212
RequestType::PUT
@ PUT
MemberNode
Definition: member_node.h:18
Address::getConnection
static int getConnection(Address addr)
Definition: requests.h:62
RequestType::GET_TARGET
@ GET_TARGET
cache_policy_interface.h
RequestType::RESET
@ RESET
Cache::getEntry
int getEntry(std::string container, int key)
Definition: Cache.cpp:21
CacheServer::controller
void controller(int nsd)
Definition: cache_server.cpp:118
GetResponse
Definition: requests.h:27
RequestType::PUT_TARGET
@ PUT_TARGET
RequestType
RequestType
Definition: requests.h:37
LRUCachePolicy::size
int size
Definition: LRU_cache_policy.h:11
LRUCachePolicy::getEntry
int getEntry(std::string container, int key)
Definition: LRU_cache_policy.cpp:9
killServer
void killServer(int ret)
Definition: cache_server.cpp:238
CacheServer::initCache
void initCache()
Definition: cache_server.cpp:206
CacheServer
Definition: cache_server.cpp:106
Address::toString
std::string toString() const
Definition: requests.h:60
PostgresDataConnector
Definition: postgres_data_connector.h:8
PutRequest::key
int key
Definition: requests.h:33
CacheServer::getCache
Cache * getCache()
Definition: cache_server.cpp:205
Cache::insert
void insert(std::string container, int key, int value)
Definition: Cache.cpp:41
CachePolicyInterface
Definition: cache_policy_interface.h:4
CachePolicy::LRU
@ LRU
Address
Definition: requests.h:48
PutRequest::value
int value
Definition: requests.h:34
loop_write
static ssize_t loop_write(int fd, const void *data, size_t size)
Definition: requests.h:82
RequestType::GOSSIP
@ GOSSIP
LRUCachePolicy::erase
void erase(std::string container, int key)
Definition: LRU_cache_policy.cpp:21
server_interface.h
PutRequest
Definition: requests.h:31
ServerThreadPool::stop
void stop()
Definition: server_thread_pool.h:97
CacheServer::member
MemberNode * member
Definition: cache_server.cpp:111
getDataConnector
DataConnectorInterface * getDataConnector()
Definition: cache_server.cpp:89
ServerThreadPool::start
void start()
Definition: server_thread_pool.h:46
MemberNode::receiveGossip
void receiveGossip(int connection)
Definition: member_node.cpp:105
config
po::variables_map config
Definition: cache_server.cpp:28
GetRequest::key
int key
Definition: requests.h:15
data_connectors.h
CacheServer::CacheServer
CacheServer()
Definition: cache_server.cpp:116
LRUCachePolicy::insert
void insert(std::string container, int key, int value)
Definition: LRU_cache_policy.cpp:30
LRUCachePolicy::allocateSize
void allocateSize(int size)
Definition: LRU_cache_policy.cpp:3
cache.h
RequestType::GET
@ GET
LRUCachePolicy::LRU_Queue
std::list< key_pair_t > LRU_Queue
Definition: LRU_cache_policy.h:10
MemberNode::getAddress
Address getAddress()
Definition: member_node.h:48
LRU_cache_policy.h
DataConnectorInterface
Definition: data_connector_interface.h:4
MultiThreadedServerInterface
Definition: server_interface.h:3
initConfig
void initConfig(int ac, char *av[])
Definition: cache_server.cpp:30
MemberNode::addIntroducer
void addIntroducer(std::string ip, int port)
Definition: member_node.cpp:23
getCachePolicy
CachePolicyInterface * getCachePolicy()
Definition: cache_server.cpp:77
DataConnector
DataConnector
Definition: data_connectors.h:4
LRUCachePolicy::hasEntry
bool hasEntry(std::string container, int key)
Definition: LRU_cache_policy.cpp:5
CacheServer::cache
Cache * cache
Definition: cache_server.cpp:109
PutRequest::container
char container[10]
Definition: requests.h:32
cache_policies.h
GetResponse::value
int value
Definition: requests.h:28
CacheServer::policy
CachePolicyInterface * policy
Definition: cache_server.cpp:108
LRUCachePolicy::reset
void reset()
Definition: LRU_cache_policy.cpp:47
CacheServer::pool
ServerThreadPool * pool
Definition: cache_server.cpp:113
GetRequest
Definition: requests.h:13