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 dierent 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 elds:
Overview ofthe5800 SystemCClient API
SunStorageTek 5800SystemClientAPIReferenceManual • June 200842