[go: nahoru, domu]

blob: 881afe136b330e1aa4ecac213621b39b43ce6bdb [file] [log] [blame]
ben2c1c0be2016-04-15 23:13:431// Copyright 2016 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#ifndef MASH_CATALOG_VIEWER_CATALOG_VIEWER_H_
6#define MASH_CATALOG_VIEWER_CATALOG_VIEWER_H_
7
8#include <map>
9#include <memory>
10
11#include "base/callback.h"
12#include "base/macros.h"
Ken Rockot388ba4fc2018-02-10 17:23:4113#include "mash/public/mojom/launchable.mojom.h"
benc62a50fa2016-04-18 21:26:3114#include "mojo/public/cpp/bindings/binding_set.h"
ben1bd1cf42017-01-24 22:51:3715#include "services/service_manager/public/cpp/binder_registry.h"
rockot734fb662016-10-15 16:41:3016#include "services/service_manager/public/cpp/service.h"
Ken Rockot9d9290452018-11-30 07:01:0917#include "services/service_manager/public/cpp/service_binding.h"
18#include "services/service_manager/public/mojom/service.mojom.h"
ben2c1c0be2016-04-15 23:13:4319
20namespace views {
21class AuraInit;
benc62a50fa2016-04-18 21:26:3122class Widget;
ben2c1c0be2016-04-15 23:13:4323}
24
25namespace mash {
26namespace catalog_viewer {
27
ben2c386b22017-05-03 00:42:1828class CatalogViewer : public service_manager::Service,
29 public mojom::Launchable {
ben2c1c0be2016-04-15 23:13:4330 public:
Ken Rockot9d9290452018-11-30 07:01:0931 explicit CatalogViewer(service_manager::mojom::ServiceRequest request);
ben2c1c0be2016-04-15 23:13:4332 ~CatalogViewer() override;
33
benc62a50fa2016-04-18 21:26:3134 void RemoveWindow(views::Widget* window);
35
ben2c1c0be2016-04-15 23:13:4336 private:
rockot400ea35b2016-10-15 19:15:3237 // service_manager::Service:
rockot4b5e64d2016-11-12 07:47:5938 void OnStart() override;
ben2c36828d2017-05-02 04:09:0139 void OnBindInterface(const service_manager::BindSourceInfo& source_info,
ben1bd1cf42017-01-24 22:51:3740 const std::string& interface_name,
41 mojo::ScopedMessagePipeHandle interface_pipe) override;
benc62a50fa2016-04-18 21:26:3142
43 // mojom::Launchable:
44 void Launch(uint32_t what, mojom::LaunchMode how) override;
45
Ben Goodger21ada1e2017-07-19 14:53:0146 void Create(mojom::LaunchableRequest request);
benc62a50fa2016-04-18 21:26:3147
Ken Rockot9d9290452018-11-30 07:01:0948 service_manager::ServiceBinding service_binding_;
benc62a50fa2016-04-18 21:26:3149 mojo::BindingSet<mojom::Launchable> bindings_;
50 std::vector<views::Widget*> windows_;
ben2c1c0be2016-04-15 23:13:4351
ben1bd1cf42017-01-24 22:51:3752 service_manager::BinderRegistry registry_;
53
ben2c1c0be2016-04-15 23:13:4354 std::unique_ptr<views::AuraInit> aura_init_;
ben2c1c0be2016-04-15 23:13:4355
56 DISALLOW_COPY_AND_ASSIGN(CatalogViewer);
57};
58
59} // namespace catalog_viewer
60} // namespace mash
61
62#endif // MASH_CATALOG_VIEWER_CATALOG_VIEWER_H_