view_manager_init.cc revision 46d4c2bc3267f3f028f39e7e311b0f89aba2e4fd
146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file. 446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/basictypes.h" 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/bind.h" 746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "mojo/public/cpp/application/application.h" 846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "mojo/services/public/interfaces/view_manager/view_manager.mojom.h" 946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace mojo { 1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace examples { 1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// ViewManagerInit is responsible for establishing the initial connection to 1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// the view manager. When established it loads |mojo_aura_demo|. 1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class ViewManagerInit : public Application { 1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public: 1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ViewManagerInit() {} 1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual ~ViewManagerInit() {} 1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) virtual void Initialize() OVERRIDE { 2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ConnectTo("mojo:mojo_view_manager", &view_manager_init_); 2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) view_manager_init_->Connect("mojo:mojo_aura_demo", 2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::Bind(&ViewManagerInit::DidConnect, 2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) base::Unretained(this))); 2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) private: 2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) void DidConnect(bool result) { 2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DCHECK(result); 3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) VLOG(1) << "ViewManagerInit::DidConnection result=" << result; 3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) } 3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) view_manager::IViewManagerInitPtr view_manager_init_; 3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(ViewManagerInit); 3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}; 3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 3846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace examples 3946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// static 4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)Application* Application::Create() { 4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return new examples::ViewManagerInit(); 4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 4446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} // namespace mojo 4646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 47