FSEG - FLAM Segment Store Service Provider Interface. More...
#include "FLMRTC.h"Go to the source code of this file.
Data Structures | |
| struct | FsegOpn |
| Parameters for FSEG_FUNC_OPN. More... | |
| struct | FsegCls |
| Parameters for FSEG_FUNC_CLS. More... | |
| struct | FsegPut |
| Parameters for FSEG_FUNC_PUT. More... | |
| struct | FsegGet |
| Parameters for FSEG_FUNC_GET. More... | |
| struct | FsegDel |
| Parameters for FSEG_FUNC_DEL. More... | |
| struct | FsegExs |
| Parameters for FSEG_FUNC_EXS. More... | |
| struct | FsegGmn |
| Parameters for FSEG_FUNC_GMN. More... | |
| struct | FsegSmn |
| Parameters for FSEG_FUNC_SMN. More... | |
| struct | FsegVsnEnt |
| Single version entry returned by FSEG_FUNC_VLS. More... | |
| struct | FsegVls |
| Parameters for FSEG_FUNC_VLS. More... | |
| struct | FsegDvs |
| Parameters for FSEG_FUNC_DVS. More... | |
| struct | FsegDar |
| Parameters for FSEG_FUNC_DAR. More... | |
| struct | FsegPrn |
| Parameters for FSEG_FUNC_PRN. More... | |
| struct | FsegCbf |
| Parameters for FSEG_FUNC_CBF. More... | |
| struct | FsegFlb |
| Parameters for FSEG_FUNC_FLB. More... | |
| struct | FsegNew |
| Parameters for FSEG_FUNC_NEW. More... | |
| struct | FsegFre |
| Parameters for FSEG_FUNC_FRE. More... | |
| union | FsegPar |
| Union of all FSEG function parameter structures. More... | |
Macros | |
| #define | FSEG_FUNC_OPN 1U |
Open storage / connect to archive namespace. Requires prior FSEG_FUNC_NEW (*ppHdl must not be NULL). State transition: NEW -> OPEN. | |
| #define | FSEG_FUNC_CLS 2U |
Close / disconnect from storage. The provider handle is not freed; the handle returns to NEW state. The provider must write statistics into TsFsegCls before returning. State transition: OPEN -> NEW. | |
| #define | FSEG_FUNC_PUT 3U |
| Store a segment (integer key -> blob). OPEN state only. | |
| #define | FSEG_FUNC_GET 4U |
| Retrieve a segment by integer key (locate, no copy). OPEN state only. | |
| #define | FSEG_FUNC_DEL 5U |
| Delete a segment by integer key. OPEN state only. | |
| #define | FSEG_FUNC_EXS 6U |
Check archive or segment existence. In NEW state (called via SEGSSE exists()): check whether the archive namespace itself exists; TsFsegExs.siSegInd is ignored and the provider opens a temporary connection. In OPEN state (called via SEGSSE checksegment()): check whether the segment at TsFsegExs.siSegInd exists in the open archive. | |
| #define | FSEG_FUNC_GMN 7U |
| Get the main (root) segment index. OPEN state only. | |
| #define | FSEG_FUNC_SMN 8U |
| Set the main (root) segment index. OPEN state only. | |
| #define | FSEG_FUNC_VLS 9U |
| List all versions of the archive. OPEN state only. | |
| #define | FSEG_FUNC_DVS 10U |
| Delete a specific version of the archive. OPEN state only. | |
| #define | FSEG_FUNC_DAR 11U |
| Delete the entire archive (all versions). NEW state only. The provider opens a temporary connection, performs the deletion, and closes before returning. | |
| #define | FSEG_FUNC_PRN 12U |
| Prune old versions, keeping a configurable number. NEW state only. Same self-managed connection pattern as DAR. | |
| #define | FSEG_FUNC_CBF 13U |
| Create a write buffer (batch hint for the provider). OPEN state only. | |
| #define | FSEG_FUNC_FLB 14U |
| Flush a write buffer to permanent storage. OPEN state only. | |
| #define | FSEG_FUNC_NEW 16U |
Allocate a provider handle and store the archive name and parameter string. No storage I/O is performed. State transition: EMPTY -> NEW. *ppHdl must be NULL on entry; the provider writes the new handle address to *ppHdl. | |
| #define | FSEG_FUNC_FRE 17U |
Free the provider handle. No storage I/O is performed. Must be called in NEW state (*ppHdl != NULL, storage closed). State transition: NEW -> EMPTY. The provider must set *ppHdl to NULL. | |
| #define | FSEG_DEFLIB_NAME "libfsse" |
| Default shared library name for the FSEG provider. | |
| #define | FSEG_DEFFUC_NAME "FSEGUSR" |
| Default exported function name for the FSEG provider. | |
| #define | FSEG_VERSION 0x0200U |
| Current FSEG interface version (major=2, minor=0). | |
| #define | FSEG_VER_MAJOR(v) |
| Extract major version from a version word. | |
| #define | FSEG_VER_MINOR(v) |
| Extract minor version from a version word. | |
| #define | FSEG_FLAG_WRITE 0x00000001U |
| [INPUT] Write access requested (0 = read-only). | |
| #define | FSEG_FLAG_OVERWRITE 0x00000002U |
| [INPUT] Overwrite existing archive (reset to empty, version 1 fresh). Set together with FSEG_FLAG_WRITE when the caller requested store.seguser() with the OVERWRITE option. Without this flag a write OPN must fail if the archive already exists. | |
| #define | FSEG_FLAG_LOG 0x00000004U |
| [INPUT] Enable info-level logging from the SEGSSE bridge and the provider (operational events: provider loaded, OPN/CLS lifecycle). Corresponds to the LOGGING switch in store.seguser() CLEP params. Providers may ignore this flag; it is primarily consumed by SEGSSE. | |
| #define | FSEG_FLAG_DEBUG 0x00000008U |
| [INPUT] Enable debug-level logging from the SEGSSE bridge and the provider (per-operation detail: PUT/GET index, EXS result, etc.). Corresponds to the DEBUG switch in store.seguser() CLEP params. Has no effect unless FSEG_FLAG_LOG is also set. | |
| #define | FSEG_FLAG_TRACE 0x00000010U |
| [INPUT] Enable debug trace output by the provider. | |
| #define | FSEG_FLAG_ACCESS 0x00000040U |
| [INPUT] SAF authorization checks are active for this provider invocation (GLOBAL.SGU.CONTROL defined in RACF $FLAM class). The bridge checked library and function name at FLACACS_READ level (FSEGLIB and FSEGFUC resource classes). See SAF flag semantics table above. | |
| #define | FSEG_FLAG_STRONG 0x00000080U |
| [INPUT] Set together with FSEG_FLAG_ACCESS when RACF is in strict mode (GLOBAL.MUSTDEF=UPDATE or lower): an undefined resource (RACF RC=4) exceeds the FL5 threshold and causes an abort. In permissive mode (threshold=8) RC=4 is silently accepted and this flag is not set. When set, namespace and parameter were explicitly approved in RACF (FSEGPTH, FSEGPAR). See SAF flag semantics table above. | |
| #define | FSEG_FLAG_VERSIONED 0x00000100U |
| [INPUT] Archive uses versioning (enables VLS/DVS/DAR/PRN). | |
| #define | FSEG_SEGTYP_DAT 1U |
| Data segment (raw compressed member data). | |
| #define | FSEG_SEGTYP_MBR 2U |
| Member descriptor segment (metadata for one member). | |
| #define | FSEG_SEGTYP_DIR 3U |
| Directory segment (archive-level index). | |
| #define | FSEG_IDX_INI (-1LL) |
| Segment index not yet initialized / no main segment set. | |
| #define | FSEG_IDX_EMPTY (-2LL) |
| Segment represents an empty (zero-length) member. | |
Typedefs | |
| typedef struct FsegOpn | TsFsegOpn |
| Parameters for FSEG_FUNC_OPN. | |
| typedef struct FsegCls | TsFsegCls |
| Parameters for FSEG_FUNC_CLS. | |
| typedef struct FsegPut | TsFsegPut |
| Parameters for FSEG_FUNC_PUT. | |
| typedef struct FsegGet | TsFsegGet |
| Parameters for FSEG_FUNC_GET. | |
| typedef struct FsegDel | TsFsegDel |
| Parameters for FSEG_FUNC_DEL. | |
| typedef struct FsegExs | TsFsegExs |
| Parameters for FSEG_FUNC_EXS. | |
| typedef struct FsegGmn | TsFsegGmn |
| Parameters for FSEG_FUNC_GMN. | |
| typedef struct FsegSmn | TsFsegSmn |
| Parameters for FSEG_FUNC_SMN. | |
| typedef struct FsegVsnEnt | TsFsegVsnEnt |
| Single version entry returned by FSEG_FUNC_VLS. | |
| typedef struct FsegVls | TsFsegVls |
| Parameters for FSEG_FUNC_VLS. | |
| typedef struct FsegDvs | TsFsegDvs |
| Parameters for FSEG_FUNC_DVS. | |
| typedef struct FsegDar | TsFsegDar |
| Parameters for FSEG_FUNC_DAR. | |
| typedef struct FsegPrn | TsFsegPrn |
| Parameters for FSEG_FUNC_PRN. | |
| typedef struct FsegCbf | TsFsegCbf |
| Parameters for FSEG_FUNC_CBF. | |
| typedef struct FsegFlb | TsFsegFlb |
| Parameters for FSEG_FUNC_FLB. | |
| typedef struct FsegNew | TsFsegNew |
| Parameters for FSEG_FUNC_NEW. | |
| typedef struct FsegFre | TsFsegFre |
| Parameters for FSEG_FUNC_FRE. | |
| typedef union FsegPar | TuFsegPar |
| Union of all FSEG function parameter structures. | |
| typedef void | TfFsegExit(void *pvGbl, void **ppHdl, int *piRetco, const unsigned int *piVersion, const unsigned int *piFunc, TuFsegPar *puPara, const unsigned int *piMsgSiz, char *pcMsg) |
| FSEG provider entry point function type. | |
FSEG - FLAM Segment Store Service Provider Interface.