FSEG-SPI
FLAM Segment Store Exit (FSEG) Service Provider Interface (SPI) Version: 5.2.1-42969
FsegOpn Struct Reference

Parameters for FSEG_FUNC_OPN. More...

#include <FSEG.h>

Data Fields

unsigned int uiFlg
 [INPUT] Flag word; see Flags for OPN.
unsigned int uiPad0
 [DUMMY] Alignment pad; set to 0.
long long siVerId
 [INPUT] Version ID; -1 = create new (write) / open latest (read). See the siVerId paragraph in the struct description.
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 FSEG_FUNC_OPN the provider writes the address of a null-terminated string inside its own handle to *ppcName; that pointer remains valid until FSEG_FUNC_CLS. SEGSSE initialises *ppcName to NULL before the call. Providers that do not support this field must leave it untouched.
long long siOpenedVerId
 [OUTPUT] Version ID that was actually opened. The provider sets this to the version ID of the store that was opened (same semantics as the SegmentStore::getVersionID() return value: -1 for write mode, the numeric version ID for read mode). SEGSSE stores the value and returns it from getVersionID() so FLMSTO can log the correct version in the FLMSTO-OPEN message. Providers that do not support this field must leave it at 0 (SEGSSE zero-initialises the whole TuFsegPar union).

Detailed Description

Parameters for FSEG_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.

Version ID semantics (siVerId)
  • siVerId >= 0 : open the specified existing version.
  • siVerId == -1 with FSEG_FLAG_WRITE set: create a new version. The provider must allocate a unique version ID internally (e.g. a monotonically increasing counter or a timestamp) and use it for all subsequent PUT calls in this session.
  • siVerId == -1 without FSEG_FLAG_WRITE: open the latest (highest version ID) existing version for reading.

Field Documentation

◆ pcNamStr

const char* FsegOpn::pcNamStr

[INPUT] Archive namespace string (null-terminated).

◆ pcParStr

const char* FsegOpn::pcParStr

[INPUT] Provider-specific parameter string (null-terminated).

◆ ppcName

const char** FsegOpn::ppcName

[OUTPUT] Canonical archive identifier; on successful return from FSEG_FUNC_OPN the provider writes the address of a null-terminated string inside its own handle to *ppcName; that pointer remains valid until FSEG_FUNC_CLS. SEGSSE initialises *ppcName to NULL before the call. Providers that do not support this field must leave it untouched.

◆ siOpenedVerId

long long FsegOpn::siOpenedVerId

[OUTPUT] Version ID that was actually opened. The provider sets this to the version ID of the store that was opened (same semantics as the SegmentStore::getVersionID() return value: -1 for write mode, the numeric version ID for read mode). SEGSSE stores the value and returns it from getVersionID() so FLMSTO can log the correct version in the FLMSTO-OPEN message. Providers that do not support this field must leave it at 0 (SEGSSE zero-initialises the whole TuFsegPar union).

◆ siVerId

long long FsegOpn::siVerId

[INPUT] Version ID; -1 = create new (write) / open latest (read). See the siVerId paragraph in the struct description.

◆ uiFlg

unsigned int FsegOpn::uiFlg

[INPUT] Flag word; see Flags for OPN.

◆ uiNamLen

unsigned int FsegOpn::uiNamLen

[INPUT] Byte length of pcNamStr (without null).

◆ uiPad0

unsigned int FsegOpn::uiPad0

[DUMMY] Alignment pad; set to 0.

◆ uiParLen

unsigned int FsegOpn::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.


The documentation for this struct was generated from the following file: