⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 roundrobintest.cpp

📁 C++高级编程这本书所附的源代码
💻 CPP
字号:
#include "RoundRobin.h"#include <stdexcept>#include <iostream>using namespace std;//// Forward declaration for NetworkRequest// Implementation details omitted//class NetworkRequest {};//// Simple Host class that serves as a proxy for a physical machine.// Implementation details omitted.//class Host{public:  //  // Implementation of processRequest would forward  // the request to the network host represented by the  // object. Omitted here.  //  void processRequest(NetworkRequest& request) {} };//// Simple load balancer that distributes incoming requests// to its hosts using a round-robin scheme.//class LoadBalancer{public:  //  // Constructor takes a vector of hosts.  //  LoadBalancer(const vector<Host>& hosts);  ~LoadBalancer() {}  //  // Ship the incoming request to the next host using  // a round-robin scheduling algorithm  //  void distributeRequest(NetworkRequest& request);protected:  RoundRobin<Host> rr;};LoadBalancer::LoadBalancer(const vector<Host>& hosts){  // add the hosts  for (size_t i = 0; i < hosts.size(); ++i) {    rr.add(hosts[i]);  }}void LoadBalancer::distributeRequest(NetworkRequest& request){  try {    rr.getNext().processRequest(request);  } catch (out_of_range& e) {    cerr << "No more hosts.\n";  }}int main(int argc, char** argv){  vector<Host> hosts;  hosts.push_back(Host());  hosts.push_back(Host());  hosts.push_back(Host());  LoadBalancer lb(hosts);  NetworkRequest r;  lb.distributeRequest(r);  lb.distributeRequest(r);  lb.distributeRequest(r);  lb.distributeRequest(r);  lb.distributeRequest(r);  lb.distributeRequest(r);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -