blob: 80bab3c5c380792fde0b59004ecb3cb1badfa473 [file] [log] [blame]
James Robinson646469d2014-10-03 15:33:28 -07001// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
James Robinson646469d2014-10-03 15:33:28 -07005#include "mojo/public/c/system/main.h"
Viet-Trung Luu90307922016-05-25 11:25:08 -07006#include "mojo/public/cpp/application/application_impl_base.h"
7#include "mojo/public/cpp/application/run_application.h"
Viet-Trung Luub237bca2016-05-13 16:35:11 -07008#include "mojo/public/cpp/application/service_provider_impl.h"
James Robinson28099f72014-12-02 10:54:46 -08009#include "services/clipboard/clipboard_standalone_impl.h"
James Robinson646469d2014-10-03 15:33:28 -070010
Viet-Trung Luu90307922016-05-25 11:25:08 -070011namespace {
James Robinson646469d2014-10-03 15:33:28 -070012
Viet-Trung Luu90307922016-05-25 11:25:08 -070013class ClipboardApp : public mojo::ApplicationImplBase {
14 public:
15 ClipboardApp() {}
16 ~ClipboardApp() override {}
17
18 // mojo::ApplicationImplBase override.
19 bool OnAcceptConnection(
Viet-Trung Luu22e78b32016-05-13 15:27:15 -070020 mojo::ServiceProviderImpl* service_provider_impl) override {
21 service_provider_impl->AddService<mojo::Clipboard>(
Viet-Trung Luu688f68e2016-05-13 14:12:04 -070022 [](const mojo::ConnectionContext& connection_context,
23 mojo::InterfaceRequest<mojo::Clipboard> clipboard_request) {
24 // TODO(erg): Write native implementations of the clipboard. For now,
25 // we just build a clipboard which doesn't interact with the system.
26 new clipboard::ClipboardStandaloneImpl(clipboard_request.Pass());
27 });
James Robinson646469d2014-10-03 15:33:28 -070028 return true;
29 }
James Robinson646469d2014-10-03 15:33:28 -070030};
31
Viet-Trung Luu90307922016-05-25 11:25:08 -070032} // namespace
33
Mitch Rudominer963aa772015-04-03 08:22:46 -070034MojoResult MojoMain(MojoHandle application_request) {
Viet-Trung Luu90307922016-05-25 11:25:08 -070035 ClipboardApp clipboard_app;
36 return mojo::RunMainApplication(application_request, &clipboard_app);
James Robinson646469d2014-10-03 15:33:28 -070037}