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()