Change run() to serve() in all Thrift server interfaces


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@664799 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_php_generator.cc b/compiler/cpp/src/generate/t_php_generator.cc
index 6ac0b33..1ed599c 100644
--- a/compiler/cpp/src/generate/t_php_generator.cc
+++ b/compiler/cpp/src/generate/t_php_generator.cc
@@ -341,7 +341,7 @@
     php_includes();
 
   f_service_ <<
-    "require_once dirname(__FILE__).'/" << program_name_ << "_types.php';" << endl << endl;
+    "require_once $GLOBALS['THRIFT_ROOT'].'/packages/" << program_name_ << "/" << program_name << "_types.php';" << endl << endl;
 
   // Generate the three main parts of the service (well, two for now in PHP)
   generate_service_interface(tservice);
@@ -624,12 +624,12 @@
         f_service_ <<
           indent() << "throw new Exception(\"" << (*f_iter)->get_name() << " failed: unknown result\");" << endl;
       }     
-    }      
 
     // Close function
     scope_down(f_service_);
     f_service_ << endl;
-    
+
+    }   
   }
 
   indent_down();
diff --git a/lib/cpp/src/server/TServer.h b/lib/cpp/src/server/TServer.h
index c19302f..ddb320d 100644
--- a/lib/cpp/src/server/TServer.h
+++ b/lib/cpp/src/server/TServer.h
@@ -21,10 +21,10 @@
  *
  * @author Mark Slee <mcslee@facebook.com>
  */
-class TServer : public concurrency::Runnable {
+class TServer {
 public:
   virtual ~TServer() {}
-  virtual void run() = 0;
+  virtual void serve() = 0;
   
 protected:
   TServer(shared_ptr<TProcessor> processor,
diff --git a/lib/cpp/src/server/TSimpleServer.cc b/lib/cpp/src/server/TSimpleServer.cc
index 041a52f..63b6c6b 100644
--- a/lib/cpp/src/server/TSimpleServer.cc
+++ b/lib/cpp/src/server/TSimpleServer.cc
@@ -11,7 +11,7 @@
  *
  * @author Mark Slee <mcslee@facebook.com>
  */
-void TSimpleServer::run() {
+void TSimpleServer::serve() {
 
   shared_ptr<TTransport> client;
   pair<shared_ptr<TTransport>,shared_ptr<TTransport> > io;
diff --git a/lib/cpp/src/server/TSimpleServer.h b/lib/cpp/src/server/TSimpleServer.h
index 973ba30..a0d22a7 100644
--- a/lib/cpp/src/server/TSimpleServer.h
+++ b/lib/cpp/src/server/TSimpleServer.h
@@ -24,7 +24,7 @@
     
   ~TSimpleServer() {}
 
-  void run();
+  void serve();
 
 };
 
diff --git a/lib/cpp/src/server/TThreadPoolServer.cc b/lib/cpp/src/server/TThreadPoolServer.cc
index 1eab53d..4285b05 100644
--- a/lib/cpp/src/server/TThreadPoolServer.cc
+++ b/lib/cpp/src/server/TThreadPoolServer.cc
@@ -55,7 +55,7 @@
 
 TThreadPoolServer::~TThreadPoolServer() {}
 
-void TThreadPoolServer::run() {
+void TThreadPoolServer::serve() {
 
   shared_ptr<TTransport> client;
   pair<shared_ptr<TTransport>,shared_ptr<TTransport> > io;
diff --git a/lib/cpp/src/server/TThreadPoolServer.h b/lib/cpp/src/server/TThreadPoolServer.h
index 34b216c..b8f8b47 100644
--- a/lib/cpp/src/server/TThreadPoolServer.h
+++ b/lib/cpp/src/server/TThreadPoolServer.h
@@ -26,7 +26,7 @@
 
   virtual ~TThreadPoolServer();
 
-  virtual void run();
+  virtual void serve();
 
 protected:
 
diff --git a/lib/php/src/transport/TSocket.php b/lib/php/src/transport/TSocket.php
index 74ef01f..5ecd874 100644
--- a/lib/php/src/transport/TSocket.php
+++ b/lib/php/src/transport/TSocket.php
@@ -165,12 +165,28 @@
       stream_set_timeout($this->handle_, 0, $this->recvTimeout_*1000);
       $this->sendTimeoutSet_ = FALSE;
     }
-    $buf = @stream_get_contents($this->handle_, $len);
-    if ($buf === FALSE || strlen($buf) !== $len) {
-      throw new Exception('TSocket: Could not read '.$len.' bytes from '.
-                          $this->host_.':'.$this->port_);
+    // This call does not obey stream_set_timeout values!
+    // $buf = @stream_get_contents($this->handle_, $len);
+
+    $pre = null;
+    while (true) {
+      $buf = @fread($this->handle_, $len);
+      if ($buf === FALSE) {
+        throw new Exception('TSocket: Could not read '.$len.' bytes from '.
+                            $this->host_.':'.$this->port_);
+      } else if (($sz = strlen($buf)) < $len) {
+        $md = stream_get_meta_data($this->handle_);
+        if ($md['timed_out']) {
+          throw new Exception('TSocket: timed out reading '.$len.' bytes from '.
+                              $this->host_.':'.$this->port_);
+        } else {
+          $pre .= $buf;
+          $len -= $sz;
+        }
+      } else {
+        return $pre.$buf;
+      }
     }
-    return $buf;
   }
 
   /**
@@ -184,7 +200,7 @@
       stream_set_timeout($this->handle_, 0, $this->recvTimeout_*1000);
       $this->sendTimeoutSet_ = FALSE;
     }
-    $data = @fread($this->handle_, 1);
+    $data = @fread($this->handle_, $len);
     if ($data === FALSE) {
       throw new Exception('TSocket: Could not read '.$len.' bytes from '.
                           $this->host_.':'.$this->port_);
diff --git a/lib/py/src/server/TServer.py b/lib/py/src/server/TServer.py
index 53f6846..c9a701e 100644
--- a/lib/py/src/server/TServer.py
+++ b/lib/py/src/server/TServer.py
@@ -6,7 +6,7 @@
 
 class TServer:
 
-  """Base interface for a server, which must have a run method."""
+  """Base interface for a server, which must have a serve method."""
 
   def __init__(self, processor, serverTransport, transportFactory=None):
     self.processor = processor
@@ -16,7 +16,7 @@
     else:
       self.transportFactory = transportFactory
 
-  def run(self):
+  def serve(self):
     pass
 
 class TSimpleServer(TServer):
@@ -26,7 +26,7 @@
   def __init__(self, processor, serverTransport, transportFactory=None):
     TServer.__init__(self, processor, serverTransport, transportFactory)
 
-  def run(self):
+  def serve(self):
     self.serverTransport.listen()
     while True:
       client = self.serverTransport.accept()
diff --git a/test/cpp/src/TestServer.cc b/test/cpp/src/TestServer.cc
index f2f9eca..db41b79 100644
--- a/test/cpp/src/TestServer.cc
+++ b/test/cpp/src/TestServer.cc
@@ -353,7 +353,7 @@
                                );
 
     printf("Starting the server on port %d...\n", port);
-    simpleServer.run();
+    simpleServer.serve();
 
   } else if (serverType == "thread-pool") {
 
@@ -374,7 +374,7 @@
 				       serverOptions);
 
     printf("Starting the server on port %d...\n", port);
-    threadPoolServer.run();
+    threadPoolServer.serve();
   }
 
   printf("done.\n");
diff --git a/test/py/TestServer.py b/test/py/TestServer.py
index f0f9ba1..96312c5 100755
--- a/test/py/TestServer.py
+++ b/test/py/TestServer.py
@@ -57,4 +57,4 @@
 processor = ThriftTest.Processor(handler, protocol)
 factory = TTransport.TBufferedTransportFactory()
 server = TServer.TSimpleServer(processor, transport, factory)
-server.run()
+server.serve()