24 LoadBalancer(
int numServers,
int numRequests,
int maxServers,
int requestThreshold,
int maxIdle);
The LoadBalancer class manages a set of WebServers and dispatches incoming requests to them.
Definition LoadBalancer.h:14
std::vector< WebServer * > servers
List of active servers.
Definition LoadBalancer.h:21
void create_requests()
Creates a new request with a 10% chance on each call and adds it to the request queue.
Definition LoadBalancer.cpp:44
void dispatch_requests()
Dispatches requests from the queue to available servers.
Definition LoadBalancer.cpp:56
std::queue< Request > requests
Queue of incoming requests to be processed.
Definition LoadBalancer.h:20
int max_idle
Maximum allowed idle time before a server is removed.
Definition LoadBalancer.h:18
void process_requests(int time)
Processes requests on all servers for a given time unit.
Definition LoadBalancer.cpp:73
void adjust_servers()
Adjusts the number of servers based on the size of the request queue and server idle times.
Definition LoadBalancer.cpp:85
~LoadBalancer()
Destructor for the LoadBalancer class, deletes all dynamically allocated servers.
Definition LoadBalancer.cpp:35
int curr_idle
Current count of idle servers.
Definition LoadBalancer.h:19
int max_servers
Maximum number of servers allowed.
Definition LoadBalancer.h:16
int request_threshold
Threshold of request queue size to trigger server addition.
Definition LoadBalancer.h:17