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);
     }