FCPE-SPI
FLAM Column Processing Exit (FCPE) Service Provider Interface (SPI)
|
FCPE Run structure. More...
#include <FCPE.h>
Data Fields | |
unsigned int | uiInp |
[INPUT] Length of the input data (32 bit word) | |
unsigned int | uiDy1 |
[DUMMY] 32 bit dummy field for 64 bit alignment | |
unsigned char * | pcInp |
[INPUT] Pointer to the input data (32 or 64 bit) | |
unsigned int | uiOut |
[INOUT] Output space at input and output length at output (32 bit word) | |
unsigned int | uiDy2 |
[DUMMY] 32 bit dummy field for 64 bit alignment | |
unsigned char * | pcOut |
[OUTPUT] Pointer to the output data (32 or 64 bit) | |
unsigned int | uiFlg |
[INOUT] Flag word for null, empty and other indications (32 bit word) (output at read, input at write) | |
unsigned int | uiMsg |
[OUTPUT] Length of error message (32 bit word) | |
char | acMsg [1024] |
[OUTPUT] Maximal 1024 byte long error string | |
FCPE Run structure.
This structure is used when the exit function is called with the function code FCPE_FUNC_RUN. It is called for each data item of this column, allowing the exit to manipulate the data as needed.
The exit drivers passes the length and a pointer to the input data of the current column as the first pair of members of the structure.
The second member pair is the size and a pointer to an already allocated buffer where the exit function may write its output to and set the output length accordingly. The input and output buffers are managed by the exit driver. If the output buffer is too small, then FLMRTC_LEN must be set as return code and the output length must contain the minimum required buffer length. The exit driver then repeats the call with a buffer of at least the desired size. This is repeated until the exit function no longer sets the FLMRTC_LEN error code. If the FCPE_FLAG_NOCPY flag is set, the output pointer and length is set to NULL/0 by the exit driver and the exit function must set the output length to the input length and the output pointer to the input pointer for plausibility checks by the exit driver.
If the FCPE_FLAG_NOCPY flag has been set during the FCPE_FUNC_RUN function code call, the input buffer may be modified in-place. However, the output pointer must be set to the input pointer. This prevents unnessary copy operation if the exit function only perform minor changes or none at all.
The flag word can be used to set indication flags bits when reading and to use these flags when writing. Currently, the bit definitions below are defined:
FLMELM_TYPTAB_FLAG_NULLID FLMELM_TYPTAB_FLAG_EMPTID
At normal pre- or post-processing the flag word is not touched.
The last member pair is a 1024 bytes buffer for an error message. The corresponding length must be set to the length of the error message.
char FcpeRun::acMsg[1024] |
[OUTPUT] Maximal 1024 byte long error string
unsigned char* FcpeRun::pcInp |
[INPUT] Pointer to the input data (32 or 64 bit)
unsigned char* FcpeRun::pcOut |
[OUTPUT] Pointer to the output data (32 or 64 bit)
unsigned int FcpeRun::uiDy1 |
[DUMMY] 32 bit dummy field for 64 bit alignment
unsigned int FcpeRun::uiDy2 |
[DUMMY] 32 bit dummy field for 64 bit alignment
unsigned int FcpeRun::uiFlg |
[INOUT] Flag word for null, empty and other indications (32 bit word) (output at read, input at write)
unsigned int FcpeRun::uiInp |
[INPUT] Length of the input data (32 bit word)
unsigned int FcpeRun::uiMsg |
[OUTPUT] Length of error message (32 bit word)
unsigned int FcpeRun::uiOut |
[INOUT] Output space at input and output length at output (32 bit word)