Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Side by Side Diff: third_party/grpc/src/php/lib/Grpc/ServerStreamingCall.php

Issue 1932353002: Initial checkin of gRPC to third_party/ Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 <?php
2 /*
3 *
4 * Copyright 2015, Google Inc.
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions are
9 * met:
10 *
11 * * Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * * Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the following disclaimer
15 * in the documentation and/or other materials provided with the
16 * distribution.
17 * * Neither the name of Google Inc. nor the names of its
18 * contributors may be used to endorse or promote products derived from
19 * this software without specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 *
33 */
34
35 namespace Grpc;
36
37 /**
38 * Represents an active call that sends a single message and then gets a stream
39 * of reponses.
40 */
41 class ServerStreamingCall extends AbstractCall
42 {
43 /**
44 * Start the call.
45 *
46 * @param $data The data to send
47 * @param array $metadata Metadata to send with the call, if applicable
48 * @param array $options an array of options, possible keys:
49 * 'flags' => a number
50 */
51 public function start($data, $metadata = [], $options = [])
52 {
53 $message_array = ['message' => $data->serialize()];
54 if (isset($options['flags'])) {
55 $message_array['flags'] = $options['flags'];
56 }
57 $event = $this->call->startBatch([
58 OP_SEND_INITIAL_METADATA => $metadata,
59 OP_RECV_INITIAL_METADATA => true,
60 OP_SEND_MESSAGE => $message_array,
61 OP_SEND_CLOSE_FROM_CLIENT => true,
62 ]);
63 $this->metadata = $event->metadata;
64 }
65
66 /**
67 * @return An iterator of response values
68 */
69 public function responses()
70 {
71 $response = $this->call->startBatch([
72 OP_RECV_MESSAGE => true,
73 ])->message;
74 while ($response !== null) {
75 yield $this->deserializeResponse($response);
76 $response = $this->call->startBatch([
77 OP_RECV_MESSAGE => true,
78 ])->message;
79 }
80 }
81
82 /**
83 * Wait for the server to send the status, and return it.
84 *
85 * @return object The status object, with integer $code, string $details,
86 * and array $metadata members
87 */
88 public function getStatus()
89 {
90 $status_event = $this->call->startBatch([
91 OP_RECV_STATUS_ON_CLIENT => true,
92 ]);
93
94 return $status_event->status;
95 }
96 }
OLDNEW
« no previous file with comments | « third_party/grpc/src/php/lib/Grpc/ClientStreamingCall.php ('k') | third_party/grpc/src/php/lib/Grpc/UnaryCall.php » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698