// 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 "rot13_client_app.h"

namespace rot13 {

Rot13ClientApp::Rot13ClientApp()
    : Rot13ClientApp(sys::ComponentContext::Create()) {}

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

Rot13ClientApp::~Rot13ClientApp() {}

void Rot13ClientApp::Start() {
  context_->svc()->Connect(rot13_.NewRequest());
}
}  // namespace rot13
