Filter Classes
This section describes information that is specific to the C++ API. See User-Defined Filter for general information about implementing the UDFilter
and FilterFactory
classes.
UDFilter API
The API provides the following methods for extension by subclasses:
virtual void setup(ServerInterface &srvInterface); virtual bool useSideChannel(); virtual StreamState process(ServerInterface &srvInterface, DataBuffer &input, InputState input_state, DataBuffer &output)=0; virtual StreamState processWithMetadata(ServerInterface &srvInterface, DataBuffer &input, LengthBuffer &input_lengths, InputState input_state, DataBuffer &output, LengthBuffer &output_lengths)=0; virtual void cancel(ServerInterface &srvInterface); virtual void destroy(ServerInterface &srvInterface);
ContinuousUDFilter API
The ContinuousUDFilter
class extends UDFilter
and adds the following methods for extension by subclasses:
virtual void initialize(ServerInterface &srvInterface); virtual void run(); virtual void deinitialize(ServerInterface &srvInterface);
FilterFactory API
The API provides the following methods for extension by subclasses:
virtual void plan(ServerInterface &srvInterface, PlanContext &planCtxt); virtual UDFilter * prepare(ServerInterface &srvInterface, PlanContext &planCtxt)=0; virtual void getParameterType(ServerInterface &srvInterface, SizedColumnTypes ¶meterTypes);
After creating your FilterFactory
, you must register it with the RegisterFactory
macro.