summaryrefslogtreecommitdiff
path: root/tempfile.cpp
diff options
context:
space:
mode:
authorRusty Wagner <dontpanic@binaryninja.com>2015-03-21 03:51:23 -0400
committerRusty Wagner <dontpanic@binaryninja.com>2015-03-21 03:51:23 -0400
commitc85cae0d74c2c32b23f5e1422f230bebd61f1b1e (patch)
treedb86059ab0816bc57c469fa72d144768711f9077 /tempfile.cpp
parente044ab55ef7204237507465074b54a113c8aae4d (diff)
Add assemble dialog and use nasm for x86/x86_64
Diffstat (limited to 'tempfile.cpp')
-rw-r--r--tempfile.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/tempfile.cpp b/tempfile.cpp
new file mode 100644
index 00000000..33256c76
--- /dev/null
+++ b/tempfile.cpp
@@ -0,0 +1,55 @@
+#include "binaryninjaapi.h"
+
+using namespace BinaryNinja;
+using namespace std;
+
+
+TemporaryFile::TemporaryFile()
+{
+ m_file = BNCreateTemporaryFile();
+}
+
+
+TemporaryFile::TemporaryFile(const DataBuffer& contents)
+{
+ m_file = BNCreateTemporaryFileWithContents(contents.GetBufferObject());
+}
+
+
+TemporaryFile::TemporaryFile(const string& contents)
+{
+ DataBuffer buf(contents.c_str(), contents.size());
+ m_file = BNCreateTemporaryFileWithContents(buf.GetBufferObject());
+}
+
+
+TemporaryFile::TemporaryFile(BNTemporaryFile* file): m_file(file)
+{
+}
+
+
+TemporaryFile::~TemporaryFile()
+{
+ if (m_file)
+ BNFreeTemporaryFile(m_file);
+}
+
+
+string TemporaryFile::GetPath() const
+{
+ if (!m_file)
+ return string();
+
+ char* str = BNGetTemporaryFilePath(m_file);
+ string result = str;
+ BNFreeString(str);
+ return result;
+}
+
+
+DataBuffer TemporaryFile::GetContents()
+{
+ if (!m_file)
+ return DataBuffer();
+ return DataBuffer(BNGetTemporaryFileContents(m_file));
+}