const char kDefaultGrpcServiceAddress[] = "127.0.0.1:14005";
}
-GrpcClient::GrpcClient()
+GrpcClient::GrpcClient(bool wait_for_ready)
{
int retries = 10;
struct timespec ts;
ts.tv_nsec = 500 * 1000 * 1000;
ts.tv_sec = 0;
+ wait_for_ready_ = wait_for_ready;
+ deadline_ = std::chrono::milliseconds(2000);
auto state = channel->GetState(true);
// artificial delay otherwise to be sure req calls succeed
grpc::ClientContext context;
::agl_shell_ipc::ActivateResponse reply;
+ if (wait_for_ready_) {
+ context.set_wait_for_ready(true);
+ context.set_deadline(std::chrono::system_clock::now() + deadline_);
+ }
grpc::Status status = m_stub->ActivateApp(&context, request, &reply);
return status.ok();
grpc::ClientContext context;
::agl_shell_ipc::DeactivateResponse reply;
+ if (wait_for_ready_) {
+ context.set_wait_for_ready(true);
+ context.set_deadline(std::chrono::system_clock::now() + deadline_);
+ }
grpc::Status status = m_stub->DeactivateApp(&context, request, &reply);
return status.ok();
grpc::ClientContext context;
::agl_shell_ipc::FloatResponse reply;
+ if (wait_for_ready_) {
+ context.set_wait_for_ready(true);
+ context.set_deadline(std::chrono::system_clock::now() + deadline_);
+ }
+
grpc::Status status = m_stub->SetAppFloat(&context, request, &reply);
return status.ok();
}
grpc::ClientContext context;
::agl_shell_ipc::NormalResponse reply;
+ if (wait_for_ready_) {
+ context.set_wait_for_ready(true);
+ context.set_deadline(std::chrono::system_clock::now() + deadline_);
+ }
grpc::Status status = m_stub->SetAppNormal(&context, request, &reply);
return status.ok();
grpc::ClientContext context;
::agl_shell_ipc::FullscreenResponse reply;
+ if (wait_for_ready_) {
+ context.set_wait_for_ready(true);
+ context.set_deadline(std::chrono::system_clock::now() + deadline_);
+ }
grpc::Status status = m_stub->SetAppFullscreen(&context, request, &reply);
return status.ok();
grpc::ClientContext context;
::agl_shell_ipc::AppOnOutputResponse reply;
+ if (wait_for_ready_) {
+ context.set_wait_for_ready(true);
+ context.set_deadline(std::chrono::system_clock::now() + deadline_);
+ }
grpc::Status status = m_stub->SetAppOnOutput(&context, request, &reply);
return status.ok();
grpc::ClientContext context;
::agl_shell_ipc::AppPositionResponse reply;
+ if (wait_for_ready_) {
+ context.set_wait_for_ready(true);
+ context.set_deadline(std::chrono::system_clock::now() + deadline_);
+ }
grpc::Status status = m_stub->SetAppPosition(&context, request, &reply);
return status.ok();
grpc::ClientContext context;
::agl_shell_ipc::AppScaleResponse reply;
+ if (wait_for_ready_) {
+ context.set_wait_for_ready(true);
+ context.set_deadline(std::chrono::system_clock::now() + deadline_);
+ }
grpc::Status status = m_stub->SetAppScale(&context, request, &reply);
return status.ok();
grpc::ClientContext context;
::agl_shell_ipc::SplitResponse reply;
+ if (wait_for_ready_) {
+ context.set_wait_for_ready(true);
+ context.set_deadline(std::chrono::system_clock::now() + deadline_);
+ }
grpc::Status status = m_stub->SetAppSplit(&context, request, &reply);
return status.ok();
::agl_shell_ipc::OutputRequest request;
::agl_shell_ipc::ListOutputResponse response;
+ if (wait_for_ready_) {
+ context.set_wait_for_ready(true);
+ context.set_deadline(std::chrono::system_clock::now() + deadline_);
+ }
grpc::Status status = m_stub->GetOutputs(&context, request, &response);
if (!status.ok())