blob: 7fa4099a1d50a36ea9cff8e43bd7a0f30af735c1 [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef PERIDOT_BIN_SESSIONMGR_STORY_RUNNER_STORY_SHELL_CONTEXT_IMPL_H_
#define PERIDOT_BIN_SESSIONMGR_STORY_RUNNER_STORY_SHELL_CONTEXT_IMPL_H_
#include <fuchsia/modular/cpp/fidl.h>
#include <lib/fidl/cpp/binding_set.h>
#include <lib/fidl/cpp/string.h>
namespace modular {
class StoryControllerImpl;
class StoryProviderImpl;
class StoryShellContextImpl : fuchsia::modular::StoryShellContext {
public:
StoryShellContextImpl(fidl::StringPtr story_id,
StoryProviderImpl* story_provider_impl,
StoryControllerImpl* story_controller_impl);
~StoryShellContextImpl() override;
void Connect(
fidl::InterfaceRequest<fuchsia::modular::StoryShellContext> request);
private:
// |fuchsia::modular::StoryShellContext|
void GetPresentation(fidl::InterfaceRequest<fuchsia::ui::policy::Presentation>
request) override;
void WatchVisualState(
fidl::InterfaceHandle<fuchsia::modular::StoryVisualStateWatcher> watcher)
override;
void GetLink(fidl::InterfaceRequest<fuchsia::modular::Link> request) override;
void RequestView(std::string surface_id) override;
void OnSurfaceOffScreen(std::string surface_id) override;
const fidl::StringPtr story_id_;
// Not owned. The StoryProviderImpl corresponding to this context.
StoryProviderImpl* const story_provider_impl_;
// Not owned. The StoryControllerImpl for the Story corresponding to this
// context.
StoryControllerImpl* const story_controller_impl_;
fidl::BindingSet<fuchsia::modular::StoryShellContext> bindings_;
};
} // namespace modular
#endif // PERIDOT_BIN_SESSIONMGR_STORY_RUNNER_STORY_SHELL_CONTEXT_IMPL_H_