aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/php
diff options
context:
space:
mode:
Diffstat (limited to 'src/php')
-rwxr-xr-xsrc/php/lib/Grpc/ActiveCall.php31
1 files changed, 8 insertions, 23 deletions
diff --git a/src/php/lib/Grpc/ActiveCall.php b/src/php/lib/Grpc/ActiveCall.php
index f0d0d55582..af4dca50d7 100755
--- a/src/php/lib/Grpc/ActiveCall.php
+++ b/src/php/lib/Grpc/ActiveCall.php
@@ -38,9 +38,7 @@ require_once realpath(dirname(__FILE__) . '/../autoload.php');
* Represents an active call that allows sending and recieving binary data
*/
class ActiveCall {
- private $completion_queue;
private $call;
- private $flags;
private $metadata;
/**
@@ -48,24 +46,15 @@ class ActiveCall {
* @param Channel $channel The channel to communicate on
* @param string $method The method to call on the remote server
* @param array $metadata Metadata to send with the call, if applicable
- * @param long $flags Write flags to use with this call
*/
public function __construct(Channel $channel,
$method,
- $metadata = array(),
- $flags = 0) {
- $this->completion_queue = new CompletionQueue();
+ $metadata = array()) {
$this->call = new Call($channel, $method, Timeval::inf_future());
- $this->call->add_metadata($metadata, 0);
- $this->flags = $flags;
- // Invoke the call.
- $this->call->invoke($this->completion_queue,
- CLIENT_METADATA_READ,
- FINISHED, 0);
- $metadata_event = $this->completion_queue->pluck(CLIENT_METADATA_READ,
- Timeval::inf_future());
- $this->metadata = $metadata_event->data;
+ $event = $this->call->start_batch([OP_SEND_INITIAL_METADATA => $metadata]);
+
+ $this->metadata = $event->metadata;
}
/**
@@ -87,8 +76,7 @@ class ActiveCall {
* @return The next message from the server, or null if there is none.
*/
public function read() {
- $this->call->start_read(READ);
- $read_event = $this->completion_queue->pluck(READ, Timeval::inf_future());
+ $read_event = $this->call->start_batch([OP_RECV_MESSAGE => true]);
return $read_event->data;
}
@@ -98,16 +86,14 @@ class ActiveCall {
* @param ByteBuffer $data The data to write
*/
public function write($data) {
- $this->call->start_write($data, WRITE_ACCEPTED, $this->flags);
- $this->completion_queue->pluck(WRITE_ACCEPTED, Timeval::inf_future());
+ $this->call->start_batch([OP_SEND_MESSAGE => $data]);
}
/**
* Indicate that no more writes will be sent.
*/
public function writesDone() {
- $this->call->writes_done(FINISH_ACCEPTED);
- $this->completion_queue->pluck(FINISH_ACCEPTED, Timeval::inf_future());
+ $this->call->start_batch([OP_SEND_CLOSE_FROM_CLIENT => true]);
}
/**
@@ -116,8 +102,7 @@ class ActiveCall {
* and array $metadata members
*/
public function getStatus() {
- $status_event = $this->completion_queue->pluck(FINISHED,
- Timeval::inf_future());
+ $status_event = $this->call->start_batch([RECV_STATUS_ON_CLIENT => true]);
return $status_event->data;
}
}