void *VCSAgGetCookie(const char *name);
This primitive requests that the agent framework get the cookie set by an earlier call to VCSAgSetCookie2()
. It returns NULL
if cookie was not previously set. This primitive can be called from any entry point. For example:
// Assume that the online, offline, and monitor
// operations on resource require a certain key. Also
// assume that obtaining this key is time consuming, but
// that it can be reused until this process is terminated.
// In this example, the open entry point obtains the key
// and stores it as a cookie. Subsequent online,
// offline, and monitor entry points get the cookie and
// Note that the cookie name can be any unique string.
// This example uses the resource name as the cookie name.
void res_open(const char *res_name, void **attr_val) {
if (VCSAgGetCookie(res_name) == NULL) {
VCSAgSetCookie2(res_name, key);
VCSAgResState res_monitor(const char *res_name, void
**attr_val, int *conf_level_ptr) {
VCSAgResState state = VCSAgResUnknown;
void *key = VCSAgGetCookie(res_name);
// Take care of the rare cases when the open
// entry point failed to obtain the key and
VCSAgSetCookie2(res_name, key);
// Use the key for testing if the resource is