KCMS CMM Developer's Guide

Example

Example 5-1 shows you how to use the entry points when creating a KcsProfile instance.


Example 5-1 KcsProfile Class Entry Points Example

/* Required entry points */ 
extern long KcsDLOpenProfCount = 0;  

/* Construct a profile object using KcsIO */ 
KcsProfile * KcsCreateProf(KcsStatus *aStat, KcsIO *aIO) 
{
     //Create the new derivative
     return (new KcsProfileKCMS(aStat, aIO)); 
} 
/* Construct an in-memory profile object using the ids */ 
KcsProfile * KcsCreateProfBlnk(KcsStatus *aStat, KcsId aCmmId,
      KcsVersion aCmmVersion, KcsId aProfId,
      KcsVersion aProfVersion) 
{
     //Create the new derivative
     return(new KcsProfileKCMS (aStat, aCmmId, aCmmVersion,
          aProfId, aProfVersion)); 
} 
/* Optional entry points */ 
KcsStatus KcsInitProf(long libMajor, long libMinor, long *myMajor,
          long *myMinor) 
{
     // Set up the return values
     *myMajor = KCS_MAJOR_VERSION;
     *myMinor = KCS_MINOR_VERSION; 

    //Check the major version
    if (libMajor != KCS_MAJOR_VERSION)
         return (KCS_CMM_MAJOR_VERSION_MISMATCH);

      //Currently, if minor version of library is less than the KCMS
      // minor version, return an error.
     if (libMinor != KCS_MINOR_VERSION)
         return (KCS_CMM_MINOR_VERSION_MISMATCH);

      //Library guarantees if your minor version number is greater than
     //KCMS minor version number, it will handle it. No more init.
     return(KCS_SUCCESS); 
}  

KcsStatus KcsCleanupProf() 
{
     /* Clean up is performed in the destructor */
     return; 
}