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