From d1372829e65dcca66ab0ca75a20919e76bbf7fc9 Mon Sep 17 00:00:00 2001 From: dweatherford Date: Tue, 9 Oct 2007 22:57:23 +0000 Subject: [PATCH] [thrift] TSocketPool::addServer, c++ version Summary: Same thing as the previous PHP change. Also includes a new constructor for easy building of a TSocketPool with a single host (for later filling in via addServer) without extra std::vector boxing/unboxing. Reviewed By: mcslee Test Plan: Synapse c++ client at r62896 uses this. Revert: OK TracCamp Project: Thrift DiffCamp Revision: 909 git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@665297 13f79535-47bb-0310-9956-ffa450edef68 --- lib/cpp/src/transport/TSocketPool.cpp | 16 +++++++++++++++- lib/cpp/src/transport/TSocketPool.h | 13 +++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/cpp/src/transport/TSocketPool.cpp b/lib/cpp/src/transport/TSocketPool.cpp index 1293e5b0..b6440fc8 100644 --- a/lib/cpp/src/transport/TSocketPool.cpp +++ b/lib/cpp/src/transport/TSocketPool.cpp @@ -33,7 +33,7 @@ TSocketPool::TSocketPool(const vector &hosts, } for (unsigned int i = 0; i < hosts.size(); ++i) { - servers_.push_back(pair(hosts[i], ports[i])); + addServer(hosts[i], ports[i]); } } @@ -47,10 +47,24 @@ TSocketPool::TSocketPool(const vector > servers) : TSocket(), { } +TSocketPool::TSocketPool(const string& host, int port) : TSocket(), + numRetries_(1), + retryInterval_(60), + maxConsecutiveFailures_(1), + randomize_(true), + alwaysTryLast_(true) +{ + addServer(host, port); +} + TSocketPool::~TSocketPool() { close(); } +void TSocketPool::addServer(const string& host, int port) { + servers_.push_back(pair(host, port)); +} + void TSocketPool::setNumRetries(int numRetries) { numRetries_ = numRetries; } diff --git a/lib/cpp/src/transport/TSocketPool.h b/lib/cpp/src/transport/TSocketPool.h index 0e300738..a197c72b 100644 --- a/lib/cpp/src/transport/TSocketPool.h +++ b/lib/cpp/src/transport/TSocketPool.h @@ -36,11 +36,24 @@ class TSocketPool : public TSocket { */ TSocketPool(const std::vector > servers); + /** + * Socket pool constructor + * + * @param host single host + * @param port single port + */ + TSocketPool(const std::string& host, int port); + /** * Destroyes the socket object, closing it if necessary. */ virtual ~TSocketPool(); + /** + * Add a server to the pool + */ + void addServer(const std::string& host, int port); + /** * Sets how many times to keep retrying a host in the connect function. */ -- 2.17.1