
Overview of the 5800 System C Client API
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:
42 | Sun StorageTek 5800 System Client API Reference Manual • June 2008 |