Grpc-XS
view release on metacpan or search on metacpan
lib/Grpc/Client/BaseStub.pm view on Meta::CPAN
my $metadata = $param{metadata} || {};
my $options = $param{options} || {};
$options->{timeout} = $options->{timeout} || $self->{_timeout};
my $call = new Grpc::Client::ClientStreamingCall(
$self->{_channel},
$method,
$serialize,
$deserialize,
$options );
my $jwt_aud_uri = $self->_get_jwt_aud_uri($method);
if (defined($self->{_update_metadata})) {
$metadata = $self->{_update_metadata}($metadata,$jwt_aud_uri); ## TODO: PORT
}
$metadata = $self->_validate_and_normalize_metadata($metadata);
$call->start($metadata, $options);
return $call;
}
## Call a remote method that takes a single argument and returns a stream of
## responses.
##
## @param string $method The name of the method to call
## @param $argument The argument to the method
## @param callable $serialize A function that serializes the request
## @param callable $deserialize A function that deserializes the responses
## @param array $metadata A metadata map to send to the server
##
## @return ServerStreamingSurfaceActiveCall The active call object
sub _serverStreamRequest {
my $self = shift;
my %param = @_;
my $method = $param{method};
my $argument = $param{argument};
my $serialize = $param{serialize};
my $deserialize = $param{deserialize};
my $metadata = $param{metadata} || {};
my $options = $param{options} || {};
$options->{timeout} = $options->{timeout} || $self->{_timeout};
my $call = new Grpc::Client::ServerStreamingCall(
$self->{_channel},
$method,
$serialize,
$deserialize,
$options );
my $jwt_aud_uri = $self->_get_jwt_aud_uri($method);
if (defined($self->{_update_metadata})) {
$metadata = $self->{_update_metadata}($metadata,$jwt_aud_uri); ## TODO: PORT
}
$metadata = $self->_validate_and_normalize_metadata($metadata);
$call->start($argument, $metadata, $options);
return $call;
}
## Call a remote method with messages streaming in both directions.
##
## @param string $method The name of the method to call
## @param callable $serialize A function that serializes the request
## @param callable $deserialize A function that deserializes the responses
## @param array $metadata A metadata map to send to the server
##
## @return BidiStreamingSurfaceActiveCall The active call object
sub _bidiRequest {
my $self = shift;
my %param = @_;
my $method = $param{method};
my $serialize = $param{serialize};
my $deserialize = $param{deserialize};
my $metadata = $param{metadata} || {};
my $options = $param{options} || {};
$options->{timeout} = $options->{timeout} || $self->{_timeout};
my $call = new Grpc::Client::BidiStreamingCall(
$self->{_channel},
$method,
$serialize,
$deserialize,
$options );
my $jwt_aud_uri = $self->_get_jwt_aud_uri($method);
if (defined($self->{_update_metadata})) {
$metadata = $self->{_update_metadata}($metadata,$jwt_aud_uri); ## TODO: PORT
}
$metadata = $self->_validate_and_normalize_metadata($metadata);
$call->start($metadata, $options);
return $call;
}
1;
( run in 1.015 second using v1.01-cache-2.11-cpan-140bd7fdf52 )