[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
diff --git a/lib/cpp/src/transport/TSocketPool.cpp b/lib/cpp/src/transport/TSocketPool.cpp
index 1293e5b..b6440fc 100644
--- a/lib/cpp/src/transport/TSocketPool.cpp
+++ b/lib/cpp/src/transport/TSocketPool.cpp
@@ -33,7 +33,7 @@
   }
 
   for (unsigned int i = 0; i < hosts.size(); ++i) {
-    servers_.push_back(pair<string, int>(hosts[i], ports[i]));
+    addServer(hosts[i], ports[i]);
   }
 }
 
@@ -47,10 +47,24 @@
 {
 }
 
+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<string, int>(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 0e30073..a197c72 100644
--- a/lib/cpp/src/transport/TSocketPool.h
+++ b/lib/cpp/src/transport/TSocketPool.h
@@ -37,11 +37,24 @@
    TSocketPool(const std::vector<std::pair<std::string, int> > 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.
     */
    void setNumRetries(int numRetries);