diff options
| author | Rusty Wagner <rusty@vector35.com> | 2015-02-12 14:34:50 -0500 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2015-02-12 14:34:50 -0500 |
| commit | 83b01dd50407731d14938ac96894c3a4d9065295 (patch) | |
| tree | 2e3ded7103b51aef0d5cd22434e35f4461aeaeba /databuffer.cpp | |
| parent | 6b431b32e32f00f9203ba2a4ca07cc962cdb22aa (diff) | |
Place API code with the associated class
Diffstat (limited to 'databuffer.cpp')
| -rw-r--r-- | databuffer.cpp | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/databuffer.cpp b/databuffer.cpp new file mode 100644 index 00000000..dcc94f90 --- /dev/null +++ b/databuffer.cpp @@ -0,0 +1,103 @@ +#include "binaryninjaapi.h" + +using namespace BinaryNinja; +using namespace std; + + +DataBuffer::DataBuffer() +{ + m_buffer = BNCreateDataBuffer(nullptr, 0); +} + + +DataBuffer::DataBuffer(size_t len) +{ + m_buffer = BNCreateDataBuffer(nullptr, len); +} + + +DataBuffer::DataBuffer(const DataBuffer& buf) +{ + m_buffer = BNDuplicateDataBuffer(buf.m_buffer); +} + + +DataBuffer::DataBuffer(BNDataBuffer* buf) +{ + m_buffer = buf; +} + + +DataBuffer::~DataBuffer() +{ + BNFreeDataBuffer(m_buffer); +} + + +DataBuffer& DataBuffer::operator=(const DataBuffer& buf) +{ + BNFreeDataBuffer(m_buffer); + m_buffer = BNDuplicateDataBuffer(buf.m_buffer); + return *this; +} + + +void* DataBuffer::GetData() +{ + return BNGetDataBufferContents(m_buffer); +} + + +const void* DataBuffer::GetData() const +{ + return BNGetDataBufferContents(m_buffer); +} + + +void* DataBuffer::GetDataAt(size_t offset) +{ + return BNGetDataBufferContentsAt(m_buffer, offset); +} + + +size_t DataBuffer::GetLength() const +{ + return BNGetDataBufferLength(m_buffer); +} + + +void DataBuffer::SetSize(size_t len) +{ + BNSetDataBufferLength(m_buffer, len); +} + + +void DataBuffer::Append(const void* data, size_t len) +{ + BNAppendDataBufferContents(m_buffer, data, len); +} + + +void DataBuffer::Append(const DataBuffer& buf) +{ + BNAppendDataBuffer(m_buffer, buf.m_buffer); +} + + +DataBuffer DataBuffer::GetSlice(size_t start, size_t len) +{ + BNDataBuffer* result = BNGetDataBufferSlice(m_buffer, start, len); + return DataBuffer(result); +} + + +uint8_t& DataBuffer::operator[](size_t offset) +{ + return ((uint8_t*)GetData())[offset]; +} + + +const uint8_t& DataBuffer::operator[](size_t offset) const +{ + return ((const uint8_t*)GetData())[offset]; +} |
