//===-- SBFileSpec.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_API_SBFILESPEC_H #define LLDB_API_SBFILESPEC_H #include "lldb/API/SBDefines.h" namespace lldb { class LLDB_API SBFileSpec { public: SBFileSpec(); SBFileSpec(const lldb::SBFileSpec &rhs); LLDB_DEPRECATED_FIXME( "Use the other constructor to determine if this the file " "spec should be resolved", "SBFileSpec(const char *, bool)") SBFileSpec(const char *path); SBFileSpec(const char *path, bool resolve); ~SBFileSpec(); const SBFileSpec &operator=(const lldb::SBFileSpec &rhs); explicit operator bool() const; bool operator==(const SBFileSpec &rhs) const; bool operator!=(const SBFileSpec &rhs) const; bool IsValid() const; bool Exists() const; bool ResolveExecutableLocation(); const char *GetFilename() const; const char *GetDirectory() const; void SetFilename(const char *filename); void SetDirectory(const char *directory); uint32_t GetPath(char *dst_path, size_t dst_len) const; static int ResolvePath(const char *src_path, char *dst_path, size_t dst_len); bool GetDescription(lldb::SBStream &description) const; void AppendPathComponent(const char *file_or_directory); private: friend class SBAttachInfo; friend class SBBlock; friend class SBCommandInterpreter; friend class SBCompileUnit; friend class SBDeclaration; friend class SBFileSpecList; friend class SBHostOS; friend class SBLaunchInfo; friend class SBLineEntry; friend class SBModule; friend class SBModuleSpec; friend class SBPlatform; friend class SBProcess; friend class SBProcessInfo; friend class SBSourceManager; friend class SBTarget; friend class SBThread; friend class SBTrace; SBFileSpec(const lldb_private::FileSpec &fspec); void SetFileSpec(const lldb_private::FileSpec &fspec); const lldb_private::FileSpec *operator->() const; const lldb_private::FileSpec *get() const; const lldb_private::FileSpec &operator*() const; const lldb_private::FileSpec &ref() const; std::unique_ptr m_opaque_up; }; } // namespace lldb #endif // LLDB_API_SBFILESPEC_H