dbus_echo_app.cc revision 116680a4aac90f2aa7413d9095a592090648e557
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 <stdio.h> 6#include <string> 7 8#include "base/bind.h" 9#include "base/logging.h" 10#include "mojo/public/cpp/application/application_delegate.h" 11#include "mojo/public/cpp/application/application_impl.h" 12#include "mojo/public/cpp/environment/environment.h" 13#include "mojo/public/cpp/system/core.h" 14#include "mojo/public/cpp/system/macros.h" 15#include "mojo/public/interfaces/service_provider/service_provider.mojom.h" 16#include "mojo/services/dbus_echo/echo.mojom.h" 17 18namespace mojo { 19namespace examples { 20 21class DBusEchoApp : public ApplicationDelegate { 22 public: 23 DBusEchoApp() {} 24 virtual ~DBusEchoApp() {} 25 26 virtual void Initialize(ApplicationImpl* app) MOJO_OVERRIDE { 27 app->ConnectToService( 28 "dbus:org.chromium.EchoService/org/chromium/MojoImpl", &echo_service_); 29 30 echo_service_->Echo( 31 String::From("who"), 32 base::Bind(&DBusEchoApp::OnEcho, base::Unretained(this))); 33 } 34 35 private: 36 void OnEcho(String echoed) { 37 LOG(INFO) << "echo'd " << echoed; 38 } 39 40 EchoServicePtr echo_service_; 41 42 DISALLOW_COPY_AND_ASSIGN(DBusEchoApp); 43}; 44 45} // namespace examples 46 47// static 48ApplicationDelegate* ApplicationDelegate::Create() { 49 return new examples::DBusEchoApp(); 50} 51 52} // namespace mojo 53