Example 5-1 shows you how to use the entry points when creating a KcsProfile instance.
/* 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;
}