summaryrefslogtreecommitdiff
path: root/transformcontext.cpp
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2025-10-10 09:34:08 -0400
committerBrian Potchik <brian@vector35.com>2025-10-10 09:34:08 -0400
commit5c41155a46f93ead2b1d7feda8e6bc6f5b4f9549 (patch)
treedda665f5ec8b8e92d490f6b1efea3e35868ee096 /transformcontext.cpp
parent47f5c67fd7f68dfd95392531431a3efca0ccda3c (diff)
Add password prompting for encrypted containers in Container Browser.
Diffstat (limited to 'transformcontext.cpp')
-rw-r--r--transformcontext.cpp71
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);