Parameters for FOBJ_FUNC_OPN. More...
#include <FOBJ.h>
Data Fields | |
| unsigned int | uiFlg |
| [INPUT] Flag word; see Flags for OPN. | |
| unsigned int | uiMaxObjLen |
| [INPUT] Largest object this store has to expect in normal operation, in bytes, or 0 when the caller has no expectation. SEGOBJ derives it from the largest of DATBUF, MBRBUF and DIRBUF. | |
| long long | siVerId |
| [INPUT] Always -1; SEGOBJ embeds version in object key prefix. Providers may ignore this field. | |
| unsigned int | uiNamLen |
| [INPUT] Byte length of pcNamStr (without null). | |
| unsigned int | uiParLen |
| [INPUT] Byte length of pcParStr (without null). Placed here (paired with uiNamLen) so that both pointers below start on 8-byte boundaries without a dummy pad field. | |
| const char * | pcNamStr |
| [INPUT] Archive namespace string (null-terminated). | |
| const char * | pcParStr |
| [INPUT] Provider-specific parameter string (null-terminated). | |
| const char ** | ppcName |
[OUTPUT] Canonical archive identifier; on successful return from FOBJ_FUNC_OPN the provider writes the address of a null-terminated string inside its own handle to *ppcName; that pointer remains valid until FOBJ_FUNC_CLS. OBJSSE initialises *ppcName to NULL before the call. Providers that do not support this field must leave it untouched. | |
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. | const char* FobjOpn::pcNamStr |
[INPUT] Archive namespace string (null-terminated).
| const char* FobjOpn::pcParStr |
[INPUT] Provider-specific parameter string (null-terminated).
| const char** FobjOpn::ppcName |
[OUTPUT] Canonical archive identifier; on successful return from FOBJ_FUNC_OPN the provider writes the address of a null-terminated string inside its own handle to *ppcName; that pointer remains valid until FOBJ_FUNC_CLS. OBJSSE initialises *ppcName to NULL before the call. Providers that do not support this field must leave it untouched.
| long long FobjOpn::siVerId |
[INPUT] Always -1; SEGOBJ embeds version in object key prefix. Providers may ignore this field.
| unsigned int FobjOpn::uiFlg |
[INPUT] Flag word; see Flags for OPN.
| unsigned int FobjOpn::uiMaxObjLen |
[INPUT] Largest object this store has to expect in normal operation, in bytes, or 0 when the caller has no expectation. SEGOBJ derives it from the largest of DATBUF, MBRBUF and DIRBUF.
It is a HINT for sizing buffers, never a bound: a provider must still accept a larger object, and one that does not care may ignore the field entirely.
This slot also carries the alignment that siVerId needs – it must stay a 4-byte field so siVerId starts on an 8-byte boundary on all architectures (SPARC, Power and z/Architecture enforce strict alignment; without it a bus error occurs). It was a dummy pad up to interface version 0x0200.
| unsigned int FobjOpn::uiNamLen |
[INPUT] Byte length of pcNamStr (without null).
| unsigned int FobjOpn::uiParLen |
[INPUT] Byte length of pcParStr (without null). Placed here (paired with uiNamLen) so that both pointers below start on 8-byte boundaries without a dummy pad field.