-- Allow manual setting of host and port in TSocket

Summary:
-- required for TSocketPool equivalent functionality

Reviewed By: slee

Notes:
-- Todo is to replicate TSocketPool.php in C++


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664912 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lib/cpp/src/transport/TSocket.cpp b/lib/cpp/src/transport/TSocket.cpp
index 8b9048c..e3615ca 100644
--- a/lib/cpp/src/transport/TSocket.cpp
+++ b/lib/cpp/src/transport/TSocket.cpp
@@ -47,6 +47,20 @@
   recvTimeval_.tv_usec = (int)((recvTimeout_%1000)*1000);
 }
 
+TSocket::TSocket() : 
+  host_(""),
+  port_(0),
+  socket_(0),
+  connTimeout_(0),
+  sendTimeout_(0),
+  recvTimeout_(0),
+  lingerOn_(1),
+  lingerVal_(0),
+  noDelay_(1) {
+  recvTimeval_.tv_sec = (int)(recvTimeout_/1000);
+  recvTimeval_.tv_usec = (int)((recvTimeout_%1000)*1000);
+}
+
 TSocket::TSocket(int socket) :
   host_(""),
   port_(0),
@@ -306,6 +320,14 @@
   }
 }
 
+void TSocket::setHost(string host) {
+  host_ = host;
+}
+
+void TSocket::setPort(int port) {
+  port_ = port;
+}
+
 void TSocket::setLinger(bool on, int linger) {
   lingerOn_ = on;
   lingerVal_ = linger;
diff --git a/lib/cpp/src/transport/TSocket.h b/lib/cpp/src/transport/TSocket.h
index 8137984..3decb2c 100644
--- a/lib/cpp/src/transport/TSocket.h
+++ b/lib/cpp/src/transport/TSocket.h
@@ -28,11 +28,19 @@
    * Constructs a new socket. Note that this does NOT actually connect the
    * socket.
    *
+   */
+  TSocket();
+  
+  /**
+   * Constructs a new socket. Note that this does NOT actually connect the
+   * socket.
+   *
    * @param host An IP address or hostname to connect to
    * @param port The port to connect on
    */
   TSocket(std::string host, int port);
 
+
   /**
    * Destroyes the socket object, closing it if necessary.
    */
@@ -73,6 +81,20 @@
   void write(const uint8_t* buf, uint32_t len);
 
   /**
+   * Set the host that socket will connect to
+   *
+   * @param host host identifier
+   */
+  void setHost(std::string host);
+
+  /**
+   * Set the port that socket will connect to
+   *
+   * @param port port number
+   */
+  void setPort(int port);
+
+  /**
    * Controls whether the linger option is set on the socket.
    *
    * @param on      Whether SO_LINGER is on