FOBJ-SPI
FLAM Object Store Exit (FOBJ) Service Provider Interface (SPI) Version: 5.2.1-42969
FOBJ.h File Reference

FOBJ - FLAM Object Store Service Provider Interface. More...

#include "FLMRTC.h"

Go to the source code of this file.

Data Structures

struct  FobjOpn
 Parameters for FOBJ_FUNC_OPN. More...
struct  FobjCls
 Parameters for FOBJ_FUNC_CLS. More...
struct  FobjGet
 Parameters for FOBJ_FUNC_GET. More...
struct  FobjPut
 Parameters for FOBJ_FUNC_PUT. More...
struct  FobjDel
 Parameters for FOBJ_FUNC_DEL. More...
struct  FobjChk
 Parameters for FOBJ_FUNC_CHK. More...
struct  FobjDst
 Parameters for FOBJ_FUNC_DST. More...
struct  FobjExs
 Parameters for FOBJ_FUNC_EXS. More...
struct  FobjNew
 Parameters for FOBJ_FUNC_NEW. More...
struct  FobjFre
 Parameters for FOBJ_FUNC_FRE. More...
union  FobjPar
 Union of all FOBJ function parameter structures. More...

Macros

#define FOBJ_FUNC_OPN   1U
 Open storage / connect to the namespace. Requires prior FOBJ_FUNC_NEW (*ppHdl must not be NULL). State transition: NEW -> OPEN.
#define FOBJ_FUNC_CLS   2U
 Close / disconnect from storage. The provider handle is not freed; the handle returns to NEW state. State transition: OPEN -> NEW.
#define FOBJ_FUNC_GET   3U
 Retrieve an object by string key (locate call – no copy). OPEN state only.
#define FOBJ_FUNC_PUT   4U
 Store an object by string key. OPEN state only.
#define FOBJ_FUNC_DEL   5U
 Delete an object by string key. OPEN state only.
#define FOBJ_FUNC_CHK   6U
 Check whether an object exists and meets a minimum size. OPEN state only.
#define FOBJ_FUNC_DST   7U
 Delete the entire store namespace. NEW state only. The provider manages any temporary connection internally.
#define FOBJ_FUNC_EXS   8U
 Check whether an object (identified by string key) exists in the store. NEW state only; the provider manages any temporary connection internally. Output: TsFobjExs.isExists (1 = exists, 0 = absent).
#define FOBJ_FUNC_NEW   9U
 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.
#define FOBJ_FUNC_FRE   10U
 Free the provider handle. No storage I/O is performed. Must be called in NEW state (storage already closed). State transition: NEW -> EMPTY. The provider must set *ppHdl to NULL.
#define FOBJ_RTC_OK   0
 Success – no error. Must be returned on every successful call.
#define FOBJ_RTC_NFD   1
 Object not found. Only valid as *piRetco from FOBJ_FUNC_GET. OBJSSE maps this to FLMRTC_NFD so that SEGOBJ can distinguish a missing root object (new/empty archive) from a genuine I/O error.
#define FOBJ_DEFLIB_NAME   "libfsse"
 Default shared library name for the FOBJ provider.
#define FOBJ_DEFFUC_NAME   "FOBJUSR"
 Default exported function name for the FOBJ provider.
#define FOBJ_VERSION   0x0201U
 Current FOBJ interface version (major=2, minor=1).
#define FOBJ_VER_MAJOR(v)
 Extract major version from a version word.
#define FOBJ_VER_MINOR(v)
 Extract minor version from a version word.
#define FOBJ_FLAG_WRITE   0x00000001U
 [INPUT] Write access requested (0 = read-only).
#define FOBJ_FLAG_OVERWRITE   0x00000002U
 [INPUT] Overwrite existing archive (reset to empty, version 1 fresh). Set together with FOBJ_FLAG_WRITE when the caller requested store.objuser() with the OVERWRITE option. Without this flag a write OPN must fail if the archive already exists.
#define FOBJ_FLAG_LOG   0x00000004U
 [INPUT] Enable info-level logging from the OBJSSE bridge and the provider (operational events: provider loaded, OPN/CLS lifecycle). Corresponds to the LOGGING switch in store.objuser() CLEP params. Providers may ignore this flag; it is primarily consumed by OBJSSE.
#define FOBJ_FLAG_DEBUG   0x00000008U
 [INPUT] Enable debug-level logging from the OBJSSE bridge and the provider (per-operation detail: PUT/GET key, CHK result, etc.). Corresponds to the DEBUG switch in store.objuser() CLEP params. Has no effect unless FOBJ_FLAG_LOG is also set.
#define FOBJ_FLAG_TRACE   0x00000010U
 [INPUT] Enable debug trace output by the provider.
#define FOBJ_FLAG_ACCESS   0x00000040U
 [INPUT] SAF authorization checks are active for this provider invocation (GLOBAL.OBU.CONTROL defined in RACF $FLAM class). The bridge checked library and function name at FLACACS_READ level (FOBJLIB and FOBJFUC resource classes). See SAF flag semantics table above.
#define FOBJ_FLAG_STRONG   0x00000080U
 [INPUT] Set together with FOBJ_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 (FOBJPTH, FOBJPAR). See SAF flag semantics table above.

Typedefs

typedef struct FobjOpn TsFobjOpn
 Parameters for FOBJ_FUNC_OPN.
typedef struct FobjCls TsFobjCls
 Parameters for FOBJ_FUNC_CLS.
typedef struct FobjGet TsFobjGet
 Parameters for FOBJ_FUNC_GET.
typedef struct FobjPut TsFobjPut
 Parameters for FOBJ_FUNC_PUT.
typedef struct FobjDel TsFobjDel
 Parameters for FOBJ_FUNC_DEL.
typedef struct FobjChk TsFobjChk
 Parameters for FOBJ_FUNC_CHK.
typedef struct FobjDst TsFobjDst
 Parameters for FOBJ_FUNC_DST.
typedef struct FobjExs TsFobjExs
 Parameters for FOBJ_FUNC_EXS.
typedef struct FobjNew TsFobjNew
 Parameters for FOBJ_FUNC_NEW.
typedef struct FobjFre TsFobjFre
 Parameters for FOBJ_FUNC_FRE.
typedef union FobjPar TuFobjPar
 Union of all FOBJ function parameter structures.
typedef void TfFobjExit(void *pvGbl, void **ppHdl, int *piRetco, const unsigned int *piVersion, const unsigned int *piFunc, TuFobjPar *puPara, const unsigned int *piMsgSiz, char *pcMsg)
 FOBJ provider entry point function type.

Detailed Description

FOBJ - FLAM Object Store Service Provider Interface.

Author
limes datentechnik gmbh
Date
2026-04-02