diff options
| author | Brian Potchik <brian@vector35.com> | 2025-10-10 09:34:08 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2025-10-10 09:34:08 -0400 |
| commit | 5c41155a46f93ead2b1d7feda8e6bc6f5b4f9549 (patch) | |
| tree | dda665f5ec8b8e92d490f6b1efea3e35868ee096 /transformcontext.cpp | |
| parent | 47f5c67fd7f68dfd95392531431a3efca0ccda3c (diff) | |
Add password prompting for encrypted containers in Container Browser.
Diffstat (limited to 'transformcontext.cpp')
| -rw-r--r-- | transformcontext.cpp | 71 |
1 files changed, 63 insertions, 8 deletions
diff --git a/transformcontext.cpp b/transformcontext.cpp index 5bddda80..181d3c79 100644 --- a/transformcontext.cpp +++ b/transformcontext.cpp @@ -15,27 +15,82 @@ TransformContext::~TransformContext() } -string TransformContext::GetTransformName() const +Ref<BinaryView> TransformContext::GetInput() const { - char* name = BNTransformContextGetTransformName(m_object); + return new BinaryView(BNTransformContextGetInput(m_object)); +} + + +string TransformContext::GetFileName() const +{ + char* name = BNTransformContextGetFileName(m_object); string result = name; BNFreeString(name); return result; } -string TransformContext::GetFileName() const +string TransformContext::GetTransformName() const { - char* name = BNTransformContextGetFileName(m_object); + char* name = BNTransformContextGetTransformName(m_object); string result = name; BNFreeString(name); return result; } -Ref<BinaryView> TransformContext::GetInput() const +void TransformContext::SetTransformParameters(const map<string, DataBuffer>& params) { - return new BinaryView(BNTransformContextGetInput(m_object)); + BNTransformParameter* list = new BNTransformParameter[params.size()]; + size_t idx = 0; + for (const auto& param : params) + { + list[idx].name = param.first.c_str(); + list[idx].value = param.second.GetBufferObject(); + idx++; + } + + BNTransformContextSetTransformParameters(m_object, list, params.size()); + delete[] list; +} + + +void TransformContext::SetTransformParameter(const string& name, const DataBuffer& data) +{ + BNTransformContextSetTransformParameter(m_object, name.c_str(), data.GetBufferObject()); +} + + +bool TransformContext::HasTransformParameter(const string& name) const +{ + return BNTransformContextHasTransformParameter(m_object, name.c_str()); +} + + +void TransformContext::ClearTransformParameter(const string& name) +{ + BNTransformContextClearTransformParameter(m_object, name.c_str()); +} + + +string TransformContext::GetExtractionMessage() const +{ + char* message = BNTransformContextGetExtractionMessage(m_object); + string result = message; + BNFreeString(message); + return result; +} + + +BNTransformResult TransformContext::GetExtractionResult() const +{ + return BNTransformContextGetExtractionResult(m_object); +} + + +BNTransformResult TransformContext::GetTransformResult() const +{ + return BNTransformContextGetTransformResult(m_object); } @@ -85,9 +140,9 @@ Ref<TransformContext> TransformContext::GetChild(const string& filename) const } -Ref<TransformContext> TransformContext::CreateChild(const DataBuffer& data, const string& filename) +Ref<TransformContext> TransformContext::SetChild(const DataBuffer& data, const string& filename, BNTransformResult result, const std::string& message) { - BNTransformContext* child = BNTransformContextCreateChild(m_object, data.GetBufferObject(), filename.c_str()); + BNTransformContext* child = BNTransformContextSetChild(m_object, data.GetBufferObject(), filename.c_str(), result, message.c_str()); if (!child) return nullptr; return new TransformContext(child); |
