// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "client.h"

namespace calculator_cli {
CalculatorClient::CalculatorClient() : CalculatorClient(sys::ComponentContext::Create()) {}

CalculatorClient::CalculatorClient(std::unique_ptr<sys::ComponentContext> context)
    : context_(std::move(context)) {}

void CalculatorClient::Start() {
  context_->svc()->Connect(calculator_.NewRequest());
}
}  // namespace calculator_cli
