Home | History | Annotate | Download | only in clipboard
      1 // 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 
      5 #include "base/at_exit.h"
      6 #include "base/base_paths.h"
      7 #include "base/command_line.h"
      8 #include "base/files/file_path.h"
      9 #include "base/message_loop/message_loop.h"
     10 #include "base/path_service.h"
     11 #include "mojo/application/application_runner_chromium.h"
     12 #include "mojo/public/c/system/main.h"
     13 #include "mojo/public/cpp/application/application_connection.h"
     14 #include "mojo/public/cpp/application/application_delegate.h"
     15 #include "mojo/public/cpp/application/interface_factory.h"
     16 #include "mojo/public/cpp/bindings/interface_ptr.h"
     17 #include "mojo/services/clipboard/clipboard_standalone_impl.h"
     18 
     19 class Delegate : public mojo::ApplicationDelegate,
     20                  public mojo::InterfaceFactory<mojo::Clipboard> {
     21  public:
     22   Delegate() {}
     23   virtual ~Delegate() {}
     24 
     25   // mojo::ApplicationDelegate implementation.
     26   virtual bool ConfigureIncomingConnection(
     27       mojo::ApplicationConnection* connection) OVERRIDE {
     28     connection->AddService(this);
     29     return true;
     30   }
     31 
     32   // mojo::InterfaceFactory<mojo::Clipboard> implementation.
     33   virtual void Create(
     34       mojo::ApplicationConnection* connection,
     35       mojo::InterfaceRequest<mojo::Clipboard> request) OVERRIDE {
     36     // TODO(erg): Write native implementations of the clipboard. For now, we
     37     // just build a clipboard which doesn't interact with the system.
     38     mojo::BindToRequest(new mojo::ClipboardStandaloneImpl(), &request);
     39   }
     40 };
     41 
     42 MojoResult MojoMain(MojoHandle shell_handle) {
     43   mojo::ApplicationRunnerChromium runner(new Delegate);
     44   return runner.Run(shell_handle);
     45 }
     46