Struct chfPluginIf

Struct Documentation

struct chfPluginIf

Channel filter simplified plugin interface.

The routines in this structure must be implemented by each filter plugin.

Public Members

void *(*allocPvt)(void)

Allocate private resources.

Called before parsing starts. The plugin should allocate its per-instance structures, returning a pointer to them or NULL requesting an abort of the operation.

allocPvt may be set to NULL, if no resource allocation is needed.

Return

Pointer to private structure, NULL if operation is to be aborted.

void (*freePvt)(void *pvt)

Free private resources.

Called as part of abort or shutdown. The plugin should release any resources allocated for this filter; no further calls through this interface will be made.

freePvt may be set to NULL, if no resources need to be released.

Param pvt

Pointer to private structure.

void (*parse_error)(void *pvt)

A parsing error occurred.

Called after parsing failed with an error.

Param pvt

Pointer to private structure.

int (*parse_ok)(void *pvt)

Configuration has been parsed successfully.

Called after parsing has finished ok. The plugin may check the validity of the parsed data, returning -1 to request an abort of the operation.

Param pvt

Pointer to private structure.

Return

0 for success, -1 if operation is to be aborted.

long (*channel_open)(dbChannel *chan, void *pvt)

Open channel.

Called as part of the channel connection setup.

Param chan

dbChannel for which the connection is being made.

Param pvt

Pointer to private structure.

Return

0 for success, -1 if operation is to be aborted.

void (*channelRegisterPre)(dbChannel *chan, void *pvt, chPostEventFunc **cb_out, void **arg_out, db_field_log *probe)

Register callbacks for pre-event-queue operation.

Called as part of the channel connection setup.

This function is called to establish the stack of plugins that an event is passed through between the database and the event queue.

The plugin must set pe_out to point to its own post-event callback in order to be called when a data update is sent from the database towards the event queue.

The plugin may find out the type of data it will receive by looking at ‘probe’. If the plugin will change the data type and/or size, it must update ‘probe’ accordingly.

Param chan

dbChannel for which the connection is being made.

Param pvt

Pointer to private structure.

Param cb_out

Pointer to this plugin’s post-event callback (NULL to bypass this plugin).

Param arg_out

Argument that must be supplied when calling this plugin’s post-event callback.

void (*channelRegisterPost)(dbChannel *chan, void *pvt, chPostEventFunc **cb_out, void **arg_out, db_field_log *probe)

Register callbacks for post-event-queue operation.

Called as part of the channel connection setup.

This function is called to establish the stack of plugins that an event is passed through between the event queue and the final user (CA server or database access).

The plugin must set pe_out to point to its own post-event callback in order to be called when a data update is sent from the event queue towards the final user.

The plugin may find out the type of data it will receive by looking at ‘probe’. If the plugin will change the data type and/or size, it must update ‘probe’ accordingly.

Param chan

dbChannel for which the connection is being made.

Param pvt

Pointer to private structure.

Param cb_out

Pointer to this plugin’s post-event callback (NULL to bypass this plugin).

Param arg_out

Argument that must be supplied when calling this plugin’s post-event callback.

void (*channel_report)(dbChannel *chan, void *pvt, int level, const unsigned short indent)

Channel report request.

Called as part of show… routines.

Param chan

dbChannel for which the report is requested.

Param pvt

Pointer to private structure.

Param level

Interest level.

Param indent

Number of spaces to print before each output line.

void (*channel_close)(dbChannel *chan, void *pvt)

Channel close request.

Called as part of connection shutdown.

Param chan

dbChannel for which the connection is being shut down.

Param pvt

Pointer to private structure.