forked from apache/nifi-minifi-cpp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathreverse_flow_file_content.lua
42 lines (37 loc) · 1.59 KB
/
reverse_flow_file_content.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
---
--- 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.
---
read_callback = {}
write_reverse_string_callback = {}
function read_callback.process(self, input_stream)
self['content'] = input_stream:read(0)
return #self['content']
end
function write_reverse_string_callback.process(self, output_stream)
reversed_content = string.reverse(self['content'])
output_stream:write(reversed_content)
return #reversed_content
end
function onTrigger(context, session)
flow_file = session:get()
if flow_file ~= nil then
session:read(flow_file, read_callback)
write_reverse_string_callback['content'] = read_callback['content']
session:write(flow_file, write_reverse_string_callback)
flow_file:addAttribute('lua_timestamp', tostring(os.time()))
session:transfer(flow_file, REL_SUCCESS)
end
end