The function model file is structured as a sequence of one or more functionSet elements. The functionSet element represents the set of native functions declared within or included from a C++ header file.
<functionModel
xmlns="http://www.ibm.com/xmlns/prod/streams/spl/function"
xmlns:cmn="http://www.ibm.com/xmlns/prod/streams/spl/common"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.ibm.com/xmlns/prod/streams/spl/function functionModel.xsd">
<functionSet>
<!-- header file to include from within C++ code -->
<headerFileName>Sample.h</headerFileName>
<!-- functions lists the SPL prototypes of the functions implemented in this library -->
<functions>
<!-- use of CDATA allows easy use of < in the prototypyes -->
<function>
<description>Increment all list elements by a given amount</description>
<prototype cppName="increment_by"><![CDATA[ void incrementBy(mutable list<int32> l, int32 incr) ]]></prototype>
</function>
<function>
<description>Join two lists</description>
<prototype><![CDATA[ list<int32> joinLists(list<int32> a, list<int32> b) ]]></prototype>
</function>
</functions>
<dependencies>
<!-- This library can have several dependencies. We only use one here -->
<library>
<!-- A description for this library -->
<cmn:description>Sample-Functions</cmn:description>
<cmn:managedLibrary>
<!-- the name of the library for linking. Will be used as -lSample -->
<cmn:lib>Sample</cmn:lib>
<!-- Where to find the library. Relative to the current directory.
Will be used as -L<dir>/lib -->
<cmn:libPath>lib</cmn:libPath>
<!-- Where to find the include file. Relative to the current directory.
Will be used as -I<dir> -->
<cmn:includePath>./</cmn:includePath>
</cmn:managedLibrary>
</library>
</dependencies>
</functionSet>
</functionModel>