Previous  |  Next  >  
Product: Cluster Server Guides   
Manual: Cluster Server 4.1 Agent Developer's Guide   

VCSAgSetCookie


 void VCSAgSetCookie(const char *name, void *cookie);

This primitive requests that the VCS agent framework store a cookie. This value is transparent to the VCS agent framework, and can be obtained later by calling the primitive VCSAgGetCookie(). Note that a cookie is not stored permanently; it is lost when the VCS agent process exits. This primitive can be called from any entry point.

For example:


 #include "VCSAgApi.h"
 ...
 //
 // 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
 // use the key.
 //
 // Note that the cookie name can be any unique string.
 // This example uses the resource name as the cookie
 // name.
 //

 void *get_key() {
     ...
 }
 void  res_open(const char *res_name, void **attr_val) {
     if (VCSAgGetCookie(res_name) == NULL) {
        void *key = get_key();
        VCSAgSetCookie(res_name, key);
     }
 }
VCSAgResState  res_monitor(const char *res_name, void
       **attr_val, int *conf_level_ptr) {
     VCSAgResState state = VCSAgResUnknown;
     *conf_level_ptr = 0;
     void *key = VCSAgGetCookie(res_name);
     if (key == NULL) {
        // Take care of the rare cases when
        // the open entry point failed to
        // obtain the key and set the the cookie.
        key = get_key();
        VCSAgSetCookie(res_name, key);
     }

     // Use the key for testing if the resource is
     // online, and set the state accordingly.
     ...

     return state;
 }
 ^ Return to Top Previous  |  Next  >  
Product: Cluster Server Guides  
Manual: Cluster Server 4.1 Agent Developer's Guide  
VERITAS Software Corporation
www.veritas.com