//===-- File.h --------------------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLDB_HOST_FILE_H #define LLDB_HOST_FILE_H #include "lldb/Host/PosixApi.h" #include "lldb/Host/Terminal.h" #include "lldb/Utility/IOObject.h" #include "lldb/Utility/Status.h" #include "lldb/lldb-private.h" #include "llvm/ADT/BitmaskEnum.h" #include <cstdarg> #include <cstdio> #include <mutex> #include <optional> #include <sys/types.h> namespace lldb_private { LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE(…); /// \class File File.h "lldb/Host/File.h" /// An abstract base class for files. /// /// Files will often be NativeFiles, which provides a wrapper /// around host OS file functionality. But it /// is also possible to subclass file to provide objects that have file /// or stream functionality but are not backed by any host OS file. class File : public IOObject { … }; class NativeFile : public File { … }; class SerialPort : public NativeFile { … }; } // namespace lldb_private #endif // LLDB_HOST_FILE_H