Github user phrocker commented on a diff in the pull request:
https://github.com/apache/nifi-minifi-cpp/pull/432#discussion_r231868999
--- Diff: nanofi/src/cxx/Plan.cpp ---
@@ -162,6 +153,21 @@ bool
ExecutionPlan::runNextProcessor(std::function<void(const std::shared_ptr<co
}
std::shared_ptr<core::ProcessSession> current_session =
std::make_shared<core::ProcessSession>(context);
process_sessions_.push_back(current_session);
+ if (input_ff != nullptr) {
+ auto content_repo =
static_cast<std::shared_ptr<minifi::core::ContentRepository>*>(input_ff->crp);
+ std::shared_ptr<minifi::ResourceClaim> claim =
std::make_shared<minifi::ResourceClaim>(input_ff->contentLocation,
*content_repo);
+ auto stream = (*content_repo)->read(claim);
+ std::shared_ptr<minifi::FlowFileRecord> flowFile =
std::static_pointer_cast<minifi::FlowFileRecord>(current_session->create());
+ auto map = static_cast<std::map<std::string,
std::string>*>(input_ff->attributes);
+ if (map) {
+ for (const auto& attr: *map) {
+ flowFile->setAttribute(attr.first, attr.second);
+ }
+ }
+ current_session->importFrom(*stream, flowFile);
+ current_session->transfer(flowFile, core::Relationship("success",
"success"));
+
relationships_[relationships_.size()-1]->put(std::static_pointer_cast<core::FlowFile>(flowFile));
--- End diff --
is there a safeguard to ensure a relationship exists?
---