FCPE-SPI
FLAM Column Processing Exit (FCPE) Service Provider Interface (SPI) Version: 5.2.1-42969
FLMDEF.h
Go to the documentation of this file.
1
12#ifndef INC_FLMDEF_H
13#define INC_FLMDEF_H
15#ifndef GEN_CPY_FROM_H
16#include <stddef.h>
17#endif
18#ifdef __cplusplus
19 extern "C" {
20#endif
21
23
24/**********************************************************************/
25
35#define FLMOUT_FORMAT_NON 0
36#define FLMOUT_FORMAT_LST 1
37#define FLMOUT_FORMAT_XML 2
39
49#define FLC_READ_FILE 1
50#define FLC_READ_FORMAT 2
51#define FLC_WRITE_FILE 3
52#define FLC_WRITE_FORMAT 4
53#define FLC_CONV_READ 5
54#define FLC_CONV_WRITE 6
55#define FLC_CONV_FROM_TO 7
56#define FLC_INPUT_FILE 8
57#define FLC_OUTPUT_FILE 9
58#define FLC_INFO 10
59#define FLC_STATE 11
60#define FLC_LOG 12
61
62#define FLM_COMP_ARCHIVE 20
63#define FLM_DECO_ARCHIVE 21
64
66
74#define FLCHSH_ALGO_NON 0U
75#define FLCHSH_ALGO_MD5 1U
76#define FLCHSH_ALGO_RMD128 2U
77#define FLCHSH_ALGO_RMD160 3U
78#define FLCHSH_ALGO_SHA1 10U
79#define FLCHSH_ALGO_SHA160 10U
80#define FLCHSH_ALGO_SHA224 20U
81#define FLCHSH_ALGO_SHA256 21U
82#define FLCHSH_ALGO_SHA384 22U
83#define FLCHSH_ALGO_SHA512 23U
84#define FLCHSH_ALGO_SHA3_224 30U
85#define FLCHSH_ALGO_SHA3_256 31U
86#define FLCHSH_ALGO_SHA3_384 32U
87#define FLCHSH_ALGO_SHA3_512 33U
88#define FLCHSH_ALGO_SHAKE128 34U
89#define FLCHSH_ALGO_SHAKE256 35U
90#define FLCHSH_ALGO_CRC08 100U
91#define FLCHSH_ALGO_CRC16 101U
92#define FLCHSH_ALGO_CRC24 102U
93#define FLCHSH_ALGO_CRC32 103U
94#define FLCHSH_ALGO_CRC32C 104U
95#define FLCHSH_ALGO_CRC40 105U
96#define FLCHSH_ALGO_CRC64 106U
97#define FLCHSH_ALGO_CRC64XZ 107U
98#define FLCHSH_ALGO_CRC64ECMA 108U
99#define FLCHSH_ALGO_CRC32POSIX 109U
101
110#define FLCMAC_ALGO_NON 0U
111#define FLCMAC_ALGO_HMAC 1U
113
120#define FLC_INBOUND_COUNT 1
121#define FLC_OUTBOUND_COUNT 2
122#define FLC_FIO_COUNT 1
123#define FLC_FMT_COUNT 2
124#define FLC_BYTE_COUNT 1
125#define FLC_UNIT_COUNT 2
127
141#define FLMMAT_TYP_NON 0x00U
142#define FLMMAT_TYP_DATBLK 0x80U
143#define FLMMAT_TYP_STDREC 0x81U
144#define FLMMAT_TYP_STDASAREC 0x82U
145#define FLMMAT_TYP_STDMCCREC 0x83U
146#define FLMMAT_TYP_RELREC 0x84U
147#define FLMMAT_TYP_RELTXTREC 0x85U
148#define FLMMAT_TYP_RELASAREC 0x86U
149#define FLMMAT_TYP_RELMCCREC 0x87U
150#define FLMMAT_TYP_TXTREC 0x88U
151#define FLMMAT_TYP_TXTDLM 0x89U
152#define FLMMAT_TYP_TXTRST 0x90U
153#define FLMMAT_TYP_XMLELM 0x91U
154#define FLMMAT_TYP_TABELM 0xF0U
156
206
212#define FLMELM_NOSKIP (-1)
213
218#define FLMELM_TYPBLK_STANDARD 0
219
224#define FLMELM_TYPREC_STANDARD 0
225
230#define FLMELM_TYPTXT_RECORD 0
235#define FLMELM_TYPTXT_REST 1
236
252#define FLMELM_TYPXML_DATA 0
265#define FLMELM_TYPXML_STARTELM 1
274#define FLMELM_TYPXML_ENDSTRTELM 2
285#define FLMELM_TYPXML_ENDELM 3
298#define FLMELM_TYPXML_ATTNAME 4
309#define FLMELM_TYPXML_ATTRVAL 5
328#define FLMELM_TYPXML_XML 6
329
344#define FLMELM_TYPXML_SKIPENT 7
360#define FLMELM_TYPXML_SKIPPARMENT 8
390#define FLMELM_TYPXML_STARTDTD 9
399#define FLMELM_TYPXML_ENDDTD 10
419#define FLMELM_TYPXML_ELMDECL 11
447#define FLMELM_TYPXML_ATTLDECL 12
476#define FLMELM_TYPXML_INTENTDECL 13
509#define FLMELM_TYPXML_SYSENTDECL 14
543#define FLMELM_TYPXML_PUBENTDECL 15
568#define FLMELM_TYPXML_NOTDECLS 16
593#define FLMELM_TYPXML_NOTDECLP 17
619#define FLMELM_TYPXML_NOTDECLPS 18
637#define FLMELM_TYPXML_PROCINST 19
655#define FLMELM_TYPXML_STARTCD 20
667#define FLMELM_TYPXML_ENDCD 21
677#define FLMELM_TYPXML_COMMENT 22
686#define FLMELM_TYPXML_DEFAULT 23
687
696#define FLMELM_TYPXML_STARTNS 24
697
705#define FLMELM_TYPXML_ENDNS 25
706
708#define FLMELM_XMLMAX_TYPCNT 26 // to define type and pot tables big enough (must be one more than last element typ)
709#define FLMELM_FLAG_LITCACHE 0x40000000U // marks element that literal cache are used (pcDat points into literal cache)
710#define setFLMELM_LITCACHE(f) ((f)|FLMELM_FLAG_LITCACHE)
711#define isFLMELM_LITCACHE(f) ((f)&FLMELM_FLAG_LITCACHE)
713
722#define FLMELM_FLAG_NULLID 0x01000000U
723
733#define FLMELM_FLAG_EMPTID 0x02000000U
734
746#define FLMELM_TYPTAB_NONE 0x00000000U
747
756#define FLMELM_TYPTAB_BINARY 0x00000001U
757
766#define FLMELM_TYPTAB_STRING 0x00000002U
767
777#define FLMELM_TYPTAB_INTEGER 0x00000003U
778
787#define FLMELM_TYPTAB_FLOAT 0x00000004U
788
797#define FLMELM_TYPTAB_INT64 0x00000005U
798
822#define FLMELM_TYPTAB_DATE 0x00000006U
823
825#define FLMELM_TYPTAB_RESERVED7 0x00000007U
826#define FLMELM_TYPTAB_RESERVED8 0x00000008U
828
838#define FLMELM_TYPTAB_DETECT 0x00000009U
839
859#define FLMELM_TYPTAB_HEADER 0x0000000AU
861#define FLMELM_TABMAX_TYPCNT 0x0000000BU // to define type and pot tables big enough (must be one more than last element typ)
863
864/**********************************************************************/
878#define FLMARC_TYPE_NONE 0x00U
879#define FLMARC_TYPE_COMPLETE 0x01U
880#define FLMARC_TYPE_SUBSET_SEG 0x02U
881#define FLMARC_TYPE_SUBSET_SIG 0x03U
882#define FLMARC_TYPE_SUBSET_REC 0x04U
883#define FLMARC_TYPE_UPDATE_SEG 0x05U
884#define FLMARC_TYPE_UPDATE_SIG 0x06U
885#define FLMARC_TYPE_UPDATE_REC 0x07U
886#define FLMARC_TYPE_DELETE_SEG 0x08U
887#define FLMARC_TYPE_DELETE_SIG 0x09U
888#define FLMARC_TYPE_DELETE_REC 0x0AU
889#define FLMARC_TYPE_UPDDEL_SEG 0x0BU
890#define FLMARC_TYPE_UPDDEL_SIG 0x0CU
891#define FLMARC_TYPE_UPDDEL_REC 0x0DU
893
894/**********************************************************************/
904#define FLMSAV_MODE_NON 0U
905#define FLMSAV_MODE_FIL 1U
906#define FLMSAV_MODE_CLU 2U
907#define FLMSAV_MODE_RDB 3U
908#define FLMSAV_MODE_SAM 4U
909#define FLMSAV_MODE_FOL 5U
910#define FLMSAV_MODE_KVS 6U
911#define FLMSAV_MODE_CS3 7U
912#define FLMSAV_MODE_CAZ 8U
913#define FLMSAV_MODE_SGU 10U
914#define FLMSAV_MODE_OBU 11U
915#define FLMSAV_MODE_CDA 12U
916/* 9 is deliberately left free: it sits between the two native cloud stores and
917 * is reserved for the planned native Google Cloud Storage backend. */
919
920/**********************************************************************/
945typedef struct {
972 char buffer[];
988} FlmElmRec0;
989
1007static inline size_t FLMELMREC0_LENGTH(const FlmElmRec0* psElement)
1008{
1009 return ((size_t)32 + (size_t)psElement->atrLen + (size_t)psElement->datLen);
1010}
1011
1022static inline const char* FLMELMREC0_ATTRPTR(const FlmElmRec0* psElement)
1023{
1024 return(psElement->buffer);
1025}
1026
1037static inline const char* FLMELMREC0_DATAPTR(const FlmElmRec0* psElement)
1038{
1039 return(psElement->buffer + psElement->atrLen);
1040}
1041
1043/**********************************************************************/
1044
1046
1047#ifdef __cplusplus
1048 }
1049#endif
1051#endif /* INC_FLMDEF_H */
1052
FLAM 5 serialized element structure (version 0).
Definition FLMDEF.h:945
int datLen
Element data length (at offset 32 + atrLen).
Definition FLMDEF.h:964
int reserved2
Reserved for future use (should be 0).
Definition FLMDEF.h:970
int elmTyp
Element type.
Definition FLMDEF.h:960
int matTyp
Matrix type (type of data format).
Definition FLMDEF.h:954
char buffer[]
Unsigned data buffer (variable length).
Definition FLMDEF.h:972
int reserved0
Reserved for future use (should be 0).
Definition FLMDEF.h:966
int atrLen
Attribute data length (at offset 32).
Definition FLMDEF.h:962
int reserved1
Reserved for future use (should be 0).
Definition FLMDEF.h:968
int version
Element structure version (must be 0).
Definition FLMDEF.h:947