412 Project 3
Loading...
Searching...
No Matches
LoadBalancer.h
1#include "WebServer.h"
2#include "Request.h"
3#include <string>
4#include <queue>
5#ifndef LOADBALANCER_H
6#define LOADBALANCER_H
7
15 public:
20 std::queue<Request> requests;
21 std::vector<WebServer*> servers;
22
24 LoadBalancer(int numServers, int numRequests, int maxServers, int requestThreshold, int maxIdle);
26
27 void create_requests();
28 void dispatch_requests();
29 void process_requests(int time);
30 void adjust_servers();
31};
32
33#endif
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