[
https://issues.apache.org/jira/browse/MINIFICPP-269?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16225978#comment-16225978
]
ASF GitHub Bot commented on MINIFICPP-269:
------------------------------------------
Github user phrocker commented on a diff in the pull request:
https://github.com/apache/nifi-minifi-cpp/pull/157#discussion_r147566492
--- Diff: extensions/bustache/ApplyTemplate.h ---
@@ -0,0 +1,90 @@
+/**
+ * @file ApplyTemplate.h
+ * ApplyTemplate class declaration
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+#ifndef __APPLY_TEMPLATE_H__
+#define __APPLY_TEMPLATE_H__
+
+#include <memory>
+
+#include "core/Processor.h"
+#include "core/ProcessSession.h"
+#include "core/FlowFile.h"
+#include "core/Resource.h"
+
+namespace org {
+namespace apache {
+namespace nifi {
+namespace minifi {
+namespace processors {
+
+//! ApplyTemplate Class
+class ApplyTemplate : public core::Processor {
+public:
+ //! Constructor
+ /*!
+ * Create a new processor
+ */
+ ApplyTemplate(std::string name, uuid_t uuid = NULL)
+ : Processor(name, uuid)
+ {
+ logger_ = logging::LoggerFactory<ApplyTemplate>::getLogger();
+ }
+ //! Destructor
+ ~ApplyTemplate() {}
+ //! Processor Name
+ static constexpr char const* ProcessorName = "ApplyTemplate";
+ //! Supported Properties
+ static core::Property Template;
+ //! Supported Relationships
+ static core::Relationship Success;
+
+ //! OnTrigger method, implemented by NiFi ApplyTemplate
+ void onTrigger(core::ProcessContext *context, core::ProcessSession
*session);
+ //! Initialize, over write by NiFi ApplyTemplate
+ void initialize(void);
+
+ //! Write callback for outputting files generated by applying template
to input
+ class WriteCallback : public OutputStreamCallback {
+ public:
+ WriteCallback(core::ProcessContext *context,
std::shared_ptr<core::FlowFile> flowFile);
+ int64_t process(std::shared_ptr<io::BaseStream> stream);
+
+ private:
+ //! Logger
+ std::shared_ptr<logging::Logger> logger_;
+ core::ProcessContext *_ctx;
--- End diff --
Please use the google code style.
http://google.github.io/styleguide/cppguide.html#Variable_Names
> Implement ApplyTemplate processor
> ---------------------------------
>
> Key: MINIFICPP-269
> URL: https://issues.apache.org/jira/browse/MINIFICPP-269
> Project: NiFi MiNiFi C++
> Issue Type: New Feature
> Reporter: Caleb Johnson
> Priority: Minor
> Labels: mustache, processor, template, templates
>
> The ApplyTemplate processor is fairly straightforward: it reads a
> [mustache|https://mustache.github.io/] template from a provided path on disk
> and maps flowfile attributes to template values.
> Dynamic properties (MINIFI-171) would go a long way towards making these
> templates more flexible by using the union of input flowfile attributes and
> (possibly evaluated?) properties as the value map.
> Due to its dependency on [bustache|https://github.com/jamboree/bustache] and
> boost, it has been made into an optional extension, much like the libarchive
> processors have.
> It may also be desirable to load the template from the input flowfile's
> contents instead of a configurable path.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)