1 //===-- SBFileSpec.h --------------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #ifndef LLDB_SBFileSpec_h_ 11 #define LLDB_SBFileSpec_h_ 12 13 #include "lldb/API/SBDefines.h" 14 15 namespace lldb { 16 17 class SBFileSpec 18 { 19 public: 20 SBFileSpec (); 21 22 SBFileSpec (const lldb::SBFileSpec &rhs); 23 24 SBFileSpec (const char *path);// Deprected, use SBFileSpec (const char *path, bool resolve) 25 26 SBFileSpec (const char *path, bool resolve); 27 28 ~SBFileSpec (); 29 30 const SBFileSpec & 31 operator = (const lldb::SBFileSpec &rhs); 32 33 bool 34 IsValid() const; 35 36 bool 37 Exists () const; 38 39 bool 40 ResolveExecutableLocation (); 41 42 const char * 43 GetFilename() const; 44 45 const char * 46 GetDirectory() const; 47 48 uint32_t 49 GetPath (char *dst_path, size_t dst_len) const; 50 51 static int 52 ResolvePath (const char *src_path, char *dst_path, size_t dst_len); 53 54 bool 55 GetDescription (lldb::SBStream &description) const; 56 57 private: 58 friend class SBAttachInfo; 59 friend class SBBlock; 60 friend class SBCompileUnit; 61 friend class SBDeclaration; 62 friend class SBFileSpecList; 63 friend class SBHostOS; 64 friend class SBLaunchInfo; 65 friend class SBLineEntry; 66 friend class SBModule; 67 friend class SBModuleSpec; 68 friend class SBProcess; 69 friend class SBSourceManager; 70 friend class SBThread; 71 friend class SBTarget; 72 73 SBFileSpec (const lldb_private::FileSpec& fspec); 74 75 void 76 SetFileSpec (const lldb_private::FileSpec& fspec); 77 78 const lldb_private::FileSpec * 79 operator->() const; 80 81 const lldb_private::FileSpec * 82 get() const; 83 84 const lldb_private::FileSpec & 85 operator*() const; 86 87 const lldb_private::FileSpec & 88 ref() const; 89 90 std::unique_ptr<lldb_private::FileSpec> m_opaque_ap; 91 }; 92 93 94 } // namespace lldb 95 96 #endif // LLDB_SBFileSpec_h_ 97