php: add call getTrailingMetadata API

pull/6632/head
Stanley Cheung 9 years ago
parent a47acad040
commit 6668d51b3c
  1. 10
      src/php/lib/Grpc/AbstractCall.php
  2. 1
      src/php/lib/Grpc/BidiStreamingCall.php
  3. 4
      src/php/lib/Grpc/ClientStreamingCall.php
  4. 1
      src/php/lib/Grpc/ServerStreamingCall.php
  5. 4
      src/php/lib/Grpc/UnaryCall.php

@ -39,6 +39,7 @@ abstract class AbstractCall
protected $call; protected $call;
protected $deserialize; protected $deserialize;
protected $metadata; protected $metadata;
protected $trailing_metadata;
/** /**
* Create a new Call wrapper object. * Create a new Call wrapper object.
@ -66,6 +67,7 @@ abstract class AbstractCall
$this->call = new Call($channel, $method, $deadline); $this->call = new Call($channel, $method, $deadline);
$this->deserialize = $deserialize; $this->deserialize = $deserialize;
$this->metadata = null; $this->metadata = null;
$this->trailing_metadata = null;
if (isset($options['call_credentials_callback']) && if (isset($options['call_credentials_callback']) &&
is_callable($call_credentials_callback = is_callable($call_credentials_callback =
$options['call_credentials_callback'])) { $options['call_credentials_callback'])) {
@ -83,6 +85,14 @@ abstract class AbstractCall
return $this->metadata; return $this->metadata;
} }
/**
* @return The trailing metadata sent by the server.
*/
public function getTrailingMetadata()
{
return $this->trailing_metadata;
}
/** /**
* @return string The URI of the endpoint. * @return string The URI of the endpoint.
*/ */

@ -112,6 +112,7 @@ class BidiStreamingCall extends AbstractCall
OP_RECV_STATUS_ON_CLIENT => true, OP_RECV_STATUS_ON_CLIENT => true,
]); ]);
$this->trailing_metadata = $status_event->status->metadata;
return $status_event->status; return $status_event->status;
} }
} }

@ -86,6 +86,8 @@ class ClientStreamingCall extends AbstractCall
]); ]);
$this->metadata = $event->metadata; $this->metadata = $event->metadata;
return [$this->deserializeResponse($event->message), $event->status]; $status = $event->status;
$this->trailing_metadata = $status->metadata;
return [$this->deserializeResponse($event->message), $status];
} }
} }

@ -91,6 +91,7 @@ class ServerStreamingCall extends AbstractCall
OP_RECV_STATUS_ON_CLIENT => true, OP_RECV_STATUS_ON_CLIENT => true,
]); ]);
$this->trailing_metadata = $status_event->status->metadata;
return $status_event->status; return $status_event->status;
} }
} }

@ -75,6 +75,8 @@ class UnaryCall extends AbstractCall
OP_RECV_STATUS_ON_CLIENT => true, OP_RECV_STATUS_ON_CLIENT => true,
]); ]);
return [$this->deserializeResponse($event->message), $event->status]; $status = $event->status;
$this->trailing_metadata = $status->metadata;
return [$this->deserializeResponse($event->message), $status];
} }
} }

Loading…
Cancel
Save