blob: 0399a2608eb78f891926b8926de3bd06938e4275 [file] [log] [blame]
// Copyright 2019 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_BRINGUP_BIN_PTYSVC_PTY_SERVER_VNODE_H_
#define SRC_BRINGUP_BIN_PTYSVC_PTY_SERVER_VNODE_H_
#include <lib/fs-pty/service.h>
#include <fbl/ref_ptr.h>
#include "pty-server-device.h"
#include "pty-server.h"
// Vnode representing a single pty server. It will live as long as there are
// active connections to the server.
using PtyServerVnodeBase =
fs_pty::Service<PtyServerDevice, fs_pty::SimpleConsoleOps<fbl::RefPtr<PtyServer>>,
fbl::RefPtr<PtyServer>>;
class PtyServerVnode : public PtyServerVnodeBase {
public:
explicit PtyServerVnode(fbl::RefPtr<PtyServer> console)
: PtyServerVnodeBase(std::move(console)) {}
~PtyServerVnode() override { console_->Shutdown(); }
};
#endif // SRC_BRINGUP_BIN_PTYSVC_PTY_SERVER_VNODE_H_