Writing Monitors for the Event Monitoring Service (December 1999)

Chapter 5 155
Writing a Target Application
Processing a Notification Message
/*************************************************************************/
/* Format and print user data buffer based on length */
/*************************************************************************/
if (user_data_len) {
if (rm_get(notify_obj, RmUserData, &user_data, &error_code) == -1) {
rm_strerror(error_code, errbuf, sizeof(errbuf));
fprintf(stderr, "Could not get user data: %s", errbuf);
printf("User Data:'???\n");
}
else {
strncpy (userbuf, user_data, user_data_len);
userbuf[user_data_len] = ’\0’;
printf("User Data:'%s'\n", userbuf);
}
}
}
if (rm_get(notify_obj, RmResourceType, &resource_type, &error_code) == -1) {
rm_strerror(error_code, errbuf, sizeof(errbuf));
fprintf(stderr, "Could not get resource type: %s", errbuf);
printf("Resource Type:???\n"); /* since we don’t know the type */
printf("Resource Value:???\n"); /* don’t bother to get the value */
}
else {
/*************************************************************************/
/* Print resource type */
/*************************************************************************/
printf("Resource Type:");
switch (resource_type) {
case RM_UBIT32_TYPE:
printf("RM_UBIT32_TYPE\n");
break;
case RM_SBIT32_TYPE:
printf("RM_SBIT32_TYPE\n");
break;
case RM_FLOAT64_TYPE:
printf("RM_FLOAT64_TYPE\n");
break;