KCMS CMM Developer's Guide

Example

The following example shows you how to use the entry points when creating a KcsXform derivative.


Example 7-1 KcsXform Class Entry Points Example

extern long KcsDLOpenXfrmCount = 0;  

/* Global initialization */ 
KcsStatus 
KcsInitXfrm(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); 
}  

KcsXform * KcsCreateXfrm(KcsStatus *aStat, KcsChunkSet *aCS,
      KcsChunkId aChunkId, KcsAttributeSet *aAttrSet) 
{
     //Create the new derivative
     return(new KcsTechUCP(aStat, KcsLoadAllow, aCS, aChunkId,
          aAttrSet)); 
}

/* Global clean up */ 
KcsStatus 
KcsCleanupXfrm() 
{
     KcsStatus sStat;
     return(KCS_SUCCESS);
}