aboutsummaryrefslogtreecommitdiff
path: root/scripts/interface/SBFileSpec.i
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/interface/SBFileSpec.i')
-rw-r--r--scripts/interface/SBFileSpec.i103
1 files changed, 103 insertions, 0 deletions
diff --git a/scripts/interface/SBFileSpec.i b/scripts/interface/SBFileSpec.i
new file mode 100644
index 000000000000..c153f2bd86f6
--- /dev/null
+++ b/scripts/interface/SBFileSpec.i
@@ -0,0 +1,103 @@
+//===-- SWIG Interface for SBFileSpec ---------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+namespace lldb {
+
+%feature("docstring",
+"Represents a file specification that divides the path into a directory and
+basename. The string values of the paths are put into uniqued string pools
+for fast comparisons and efficient memory usage.
+
+For example, the following code
+
+ lineEntry = context.GetLineEntry()
+ self.expect(lineEntry.GetFileSpec().GetDirectory(), 'The line entry should have the correct directory',
+ exe=False,
+ substrs = [self.mydir])
+ self.expect(lineEntry.GetFileSpec().GetFilename(), 'The line entry should have the correct filename',
+ exe=False,
+ substrs = ['main.c'])
+ self.assertTrue(lineEntry.GetLine() == self.line,
+ 'The line entry's line number should match ')
+
+gets the line entry from the symbol context when a thread is stopped.
+It gets the file spec corresponding to the line entry and checks that
+the filename and the directory matches what we expect.
+") SBFileSpec;
+class SBFileSpec
+{
+public:
+ SBFileSpec ();
+
+ SBFileSpec (const lldb::SBFileSpec &rhs);
+
+ SBFileSpec (const char *path);// Deprecated, use SBFileSpec (const char *path, bool resolve)
+
+ SBFileSpec (const char *path, bool resolve);
+
+ ~SBFileSpec ();
+
+ 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;
+
+ %pythoncode %{
+ def __get_fullpath__(self):
+ spec_dir = self.GetDirectory()
+ spec_file = self.GetFilename()
+ if spec_dir and spec_file:
+ return '%s/%s' % (spec_dir, spec_file)
+ elif spec_dir:
+ return spec_dir
+ elif spec_file:
+ return spec_file
+ return None
+
+ __swig_getmethods__["fullpath"] = __get_fullpath__
+ if _newclass: fullpath = property(__get_fullpath__, None, doc='''A read only property that returns the fullpath as a python string.''')
+
+ __swig_getmethods__["basename"] = GetFilename
+ if _newclass: basename = property(GetFilename, None, doc='''A read only property that returns the path basename as a python string.''')
+
+ __swig_getmethods__["dirname"] = GetDirectory
+ if _newclass: dirname = property(GetDirectory, None, doc='''A read only property that returns the path directory name as a python string.''')
+
+ __swig_getmethods__["exists"] = Exists
+ if _newclass: exists = property(Exists, None, doc='''A read only property that returns a boolean value that indicates if the file exists.''')
+ %}
+
+};
+
+} // namespace lldb