blob: 5b33c29413ed89aa6bf8c63d3f3061eb35bc6f81 [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_SYSTEMS_STORY_VISIBILITY_SYSTEM_H_
#define PERIDOT_BIN_SESSIONMGR_STORY_SYSTEMS_STORY_VISIBILITY_SYSTEM_H_
#include <fuchsia/modular/cpp/fidl.h>
#include <memory>
#include "peridot/bin/sessionmgr/story/system.h"
namespace modular {
class StoryMutator;
// This sytem implements the policy for translating requests from Modules to
// change the visibility state of the story into the final visibility state of
// the story.
//
// The current policy is "allow all".
class StoryVisibilitySystem : public System {
public:
StoryVisibilitySystem(std::unique_ptr<StoryMutator> model_mutator);
~StoryVisibilitySystem() override;
void RequestStoryVisibilityStateChange(
const fuchsia::modular::StoryVisibilityState visibility_state);
private:
std::unique_ptr<StoryMutator> mutator_;
};
} // namespace modular
#endif // PERIDOT_BIN_SESSIONMGR_STORY_SYSTEMS_STORY_VISIBILITY_SYSTEM_H_