blob: 8d44590c90e09886a0fbcf7cb67351f5a2f7a6f7 [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 SRC_MODULAR_BIN_SESSIONMGR_SESSION_CTL_H_
#define SRC_MODULAR_BIN_SESSIONMGR_SESSION_CTL_H_
#include <lib/vfs/cpp/pseudo_dir.h>
#include <string>
#include "fbl/ref_ptr.h"
namespace modular {
class PuppetMasterImpl;
// Builds a pseudo-directory for session inspection and control for debug and
// developer tools.
class SessionCtl {
public:
// Constructs a SessionCtl and adds an entry to |dir| under |entry_name|. The
// entry is removed when destructed.
//
// |puppet_master_impl| is not owned and must outlive *this.
SessionCtl(vfs::PseudoDir* dir, const std::string& entry_name,
PuppetMasterImpl* puppet_master_impl);
~SessionCtl();
private:
vfs::PseudoDir* dir_;
const std::string entry_name_;
PuppetMasterImpl* const puppet_master_impl_;
};
} // namespace modular
#endif // SRC_MODULAR_BIN_SESSIONMGR_SESSION_CTL_H_