KCMS Application Developer's Guide

Example


Example 4-7 KcsLoadProfile()

    KcsFileId		scannerFd, monitorFd, completeFd;
     KcsProfileDesc	scannerDesc, monitorDesc, completeDesc;
     KcsProfileId 	scannerProfile, monitorProfile;
     KcsProfileId	profileSequence[2], completeProfile;
     KcsStatusId		status;
     KcsAttributeValue	attrValue;
     KcsAttributeName	i;
     KcsOperationType	op = (KcsOpForward+KcsContImage);
     u_long		failedProfileNum;
     extern void		kcs_timer(int);

     if (argc > 4) {
 	fprintf(stderr,"Usage : kcstest profile_1 profile_2 [save_profile]\n");
 	exit(1);
     }

 #ifdef FILE_DESC
     /* Open up the files from disk */
     scannerDesc.type = KcsFileProfile;
     scannerFd = open(argv[1], O_RDONLY);
     if (scannerFd == -1) {
 	perror("Failed to open scanner profile");
 	exit(1);
     }
     scannerDesc.desc.file.openFileId = scannerFd;
     scannerDesc.desc.file.offset = 0;

     monitorDesc.type = KcsFileProfile;
     monitorFd = open(argv[2], O_RDONLY);
     if (monitorFd == -1) {
 	perror("Failed to open monitor profile");
 	exit(1);
     }
     monitorDesc.desc.file.openFileId = monitorFd;
     monitorDesc.desc.file.offset = 0;
 #endif

 #ifdef FILE_NAME
     scannerDesc.type = KcsSolarisProfile;
     scannerDesc.desc.solarisFile.fileName = argv[1];
     scannerDesc.desc.solarisFile.hostName = NULL;
     scannerDesc.desc.solarisFile.oflag = O_RDONLY;
     scannerDesc.desc.solarisFile.mode = 0;

     monitorDesc.type = KcsSolarisProfile;
     monitorDesc.desc.solarisFile.fileName = argv[2];
     monitorDesc.desc.solarisFile.hostName = NULL;
     monitorDesc.desc.solarisFile.oflag = O_RDONLY;
     monitorDesc.desc.solarisFile.mode = 0;
 #endif

     /* Load the profiles */
     printf("Load scanner profile\n");
     kcs_timer(START);
     status = KcsLoadProfile(&scannerProfile, &scannerDesc, KcsLoadAllNow);
     kcs_timer(STOP);
     if (status != KCS_SUCCESS) {
 	fprintf(stderr,"Scanner KcsLoadProfile failed error = 0x%x\n", status);
 #ifdef FILE_DESC
 	close(scannerFd);
 	close(monitorFd);
 #endif
 	exit(1);
     }

     printf("Load monitor profile\n");
     kcs_timer(START);
     status = KcsLoadProfile(&monitorProfile, &monitorDesc, KcsLoadAllNow);
     kcs_timer(STOP);
     if (status != KCS_SUCCESS) {
 	fprintf(stderr,"MonitoKcsLoadProfile failed error = 0x%x\n", status);
 #ifdef FILE_DESC
 	close(scannerFd);
 	close(monitorFd);
 #endif
 	exit(1);
     }