beautypg.com

Terminating a global session, System record – Sun Microsystems Sun StorageTek 5800 User Manual

Page 42

background image

hcerr_t hc_init(allocator_t,

deallocator_t,

reallocator_t);

This function must be called once per process to initialize the memory functions used in the
5800 system C API. It also initializes global session properties.

A global session is initialized once per process, regardless of how many threads in that process
are using the C API.

Note –

hc_init

should be called once per process before any thread calls

“hc_session_create_ez” on page 53

. If

“hc_session_create_ez” on page 53

is called before

hc_init

, an implicit call is made to hc_init from that thread. But that call to hc_init is not

interlocked with other threads, and it uses the C API shared library’s version of malloc and
free

, which might be different than the application’s version of malloc and free. It is strongly

recommended that all applications call hc_init once per process with their own allocator and
deallocator.

Note –

For more information on

“hc_session_create_ez” on page 53

, see

“hc_session_create_ez” on page 53

.

Terminating a Global Session

The following function terminates a global session:

void hc_cleanup();

System Record

All 5800 system store operations return a system record, which encapsulates information
about the stored object. In particular, the system record contains the OID, which can be used to
retrieve the stored object data or metadata.

typedef struct hc_system_record_ {

char is_indexed;

hc_oid oid;

hc_digest_algo digest_algo;

hc_digest data_digest;

hc_long_t size;

hc_long_t creation_time;

hc_long_t deleted_time;

char shredMode;

} hc_system_record_t;

About the fields:

Overview of the 5800 System C Client API

Sun StorageTek 5800 System Client API Reference Manual • June 2008

42