One structure per function code; collected in TuFobjPar. More...
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... | |
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. | |
One structure per function code; collected in TuFobjPar.
Parameters for FOBJ_FUNC_CHK.
The provider sets isExists to 1 if the object exists and its data length is greater than or equal to uiMinLen; otherwise 0. The return code is always FLMRTC_OK; the result is in isExists.
isExists=0 and are told apart by isTooShort. A provider that cannot distinguish them, or that predates the field, leaves isTooShort at 0 and the caller reads the answer as "not found", which is what the interface answered before the field existed.The OBJSSE bridge maps isExists=1 to FLMRTC_OK, isExists=0 with isTooShort=1 to FLMRTC_RNG, and isExists=0 with isTooShort=0 to FLMRTC_ONF – the same three answers every other object store gives, with OBJFLDR as the reference implementation.
Parameters for FOBJ_FUNC_CLS.
The driver sets isCommit before the call. Statistics are tracked by the driver itself and are not requested from the provider.
Parameters for FOBJ_FUNC_DEL.
Parameters for FOBJ_FUNC_DST.
Deletes the entire namespace/version store opened by OPN. Called by FLAM during archive version deletion. No output fields are currently defined; the provider signals success or failure via *piRetco only.
Parameters for FOBJ_FUNC_EXS.
Check whether the object identified by pcKeyStr exists in the store. Called in NEW state; the provider manages any temporary connection internally.
Parameters for FOBJ_FUNC_FRE.
No input parameters. The provider must free the handle allocated by FOBJ_FUNC_NEW and set *ppHdl to NULL.
Parameters for FOBJ_FUNC_GET.
Locate semantics: the provider writes a pointer to its internal buffer into *ppDatPtr and the number of valid bytes into uiDatLen. The pointer must remain valid until the next call to FOBJ_FUNC_GET or FOBJ_FUNC_CLS on the same handle. The provider owns and frees the buffer; the caller must not free it.
Providers backed by a remote store must allocate an internal buffer and write its address into *ppDatPtr. For memory-mapped or in-process backends this is truly zero-copy.
Parameters for FOBJ_FUNC_NEW.
The bridge passes the archive namespace and provider parameter string so the provider can copy them into its handle for use in subsequent FOBJ_FUNC_OPN, FOBJ_FUNC_DST, and FOBJ_FUNC_EXS calls. No storage I/O takes place.
On entry *ppHdl is NULL. The provider must allocate its handle and write the pointer to *ppHdl.
Parameters for FOBJ_FUNC_OPN.
The driver populates all fields before the call. The provider must not retain pointers to pcNamStr or pcParStr beyond the OPN call; copy any strings that are needed for later calls.
siVerId == -1. The SEGOBJ layer above the FOBJ provider manages versioning by embedding the version ID into every object key as a prefix (e.g. "{namespace}/{version:020lld}/{opaque_key}"). The FOBJ provider therefore only needs to implement a flat string-keyed object store and does not need to interpret siVerId. Providers may safely ignore the siVerId field. Parameters for FOBJ_FUNC_PUT.