Load Balancer Simulator
CSCE 412 - Load Balancer Simulation Project
Public Member Functions | Private Attributes | List of all members
WebServer Class Reference

Simulates a web server that receives and processes requests from the load balancer. More...

#include <WebServer.h>

Public Member Functions

 WebServer (int id)
 Constructs a WebServer with the given ID. More...
 
 ~WebServer ()
 Destructor. Cleans up any assigned request to prevent memory leaks. More...
 
int getId ()
 Returns the server's unique ID. More...
 
const bool tick ()
 Advances the server by one clock cycle. More...
 
void assignRequest (Request *req)
 Assigns a new request to this server for processing. More...
 

Private Attributes

int id
 Unique identifier for this server. More...
 
RequestcurrRequest
 Pointer to the currently assigned request, or nullptr if idle. More...
 
int cyclesRemaining
 Clock cycles remaining to finish the current request. More...
 

Detailed Description

Simulates a web server that receives and processes requests from the load balancer.

Each WebServer processes one request at a time. It counts down clock cycles until the request is complete, then becomes available for a new request.

Definition at line 17 of file WebServer.h.

Constructor & Destructor Documentation

◆ WebServer()

WebServer::WebServer ( int  id)

Constructs a WebServer with the given ID.

Parameters
idUnique server identifier

Definition at line 8 of file WebServer.cpp.

◆ ~WebServer()

WebServer::~WebServer ( )

Destructor. Cleans up any assigned request to prevent memory leaks.

Definition at line 14 of file WebServer.cpp.

Member Function Documentation

◆ assignRequest()

void WebServer::assignRequest ( Request req)

Assigns a new request to this server for processing.

Parameters
reqPointer to the Request to process (takes ownership)

Definition at line 42 of file WebServer.cpp.

◆ getId()

int WebServer::getId ( )

Returns the server's unique ID.

Returns
The server ID

Definition at line 22 of file WebServer.cpp.

◆ tick()

const bool WebServer::tick ( )

Advances the server by one clock cycle.

Returns
true if the server just finished processing its request, false otherwise

Definition at line 26 of file WebServer.cpp.

Member Data Documentation

◆ currRequest

Request* WebServer::currRequest
private

Pointer to the currently assigned request, or nullptr if idle.

Definition at line 20 of file WebServer.h.

◆ cyclesRemaining

int WebServer::cyclesRemaining
private

Clock cycles remaining to finish the current request.

Definition at line 21 of file WebServer.h.

◆ id

int WebServer::id
private

Unique identifier for this server.

Definition at line 19 of file WebServer.h.


The documentation for this class was generated from the following files: