Github user arpadboda commented on a diff in the pull request:
https://github.com/apache/nifi-minifi-cpp/pull/404#discussion_r222248818
--- Diff: libminifi/src/capi/Plan.cpp ---
@@ -35,6 +36,41 @@
ExecutionPlan::ExecutionPlan(std::shared_ptr<core::ContentRepository> content_re
stream_factory =
org::apache::nifi::minifi::io::StreamFactory::getInstance(std::make_shared<minifi::Configure>());
}
+std::shared_ptr<core::Processor> ExecutionPlan::addCallback(void *obj,
void (*fp)(processor_session *)) {
+ if (finalized) {
+ return nullptr;
+ }
+
+ utils::Identifier uuid;
+ id_generator_->generate(uuid);
+
+ auto ptr =
core::ClassLoader::getDefaultClassLoader().instantiate("CallbackProcessor",
uuid);
+ if (nullptr == ptr) {
+ throw std::exception();
+ }
+ std::shared_ptr<processors::CallbackProcessor> processor =
std::static_pointer_cast<processors::CallbackProcessor>(ptr);
+ processor->setCallback(obj, fp);
+ processor->setName("CallbackProcessor");
+
+ return addProcessor(processor, "CallbackProcessor",
core::Relationship("success", "description"), true);
+}
+
+bool ExecutionPlan::setProperty(const std::shared_ptr<core::Processor>
proc, const std::string &prop, const std::string &value) {
+ uint32_t i = 0;
+ logger_->log_debug("Attempting to set property %s %s for %s", prop,
value, proc->getName());
+ for (i = 0; i < processor_queue_.size(); i++) {
+ if (processor_queue_.at(i) == proc) {
+ break;
+ }
+ }
+
--- End diff --
```
size_t i = std::distance(processor_queue_.begin(),
std::find(processor_queue_.begin(), processor_queue_.end(), proc));
```
---