[cgma-dev] r4953 - cgm/trunk/itaps

jvporter at wisc.edu jvporter at wisc.edu
Mon Jun 6 13:57:56 CDT 2011


Author: jvporter
Date: 2011-06-06 13:57:55 -0500 (Mon, 06 Jun 2011)
New Revision: 4953

Modified:
   cgm/trunk/itaps/iBase.h
Log:
Update iBase.h to latest version


Modified: cgm/trunk/itaps/iBase.h
===================================================================
--- cgm/trunk/itaps/iBase.h	2011-06-06 18:13:39 UTC (rev 4952)
+++ cgm/trunk/itaps/iBase.h	2011-06-06 18:57:55 UTC (rev 4953)
@@ -1,91 +1,173 @@
 #ifndef _ITAPS_iBase
 #define _ITAPS_iBase
 
-#ifdef __cplusplus
+/***************************************************************************//**
+ * \ingroup VersionNumbers
+ * \brief Compile time version number digits
+ *
+ * iBase maintains a major, minor and patch digit in its version number.
+ * Technically speaking, there is not much practical value in patch digit
+ * for an interface specification. A patch release is typically only used
+ * for bug fix releases. Although it is rare, sometimes a bug fix
+ * necessitates an API change. So, we define a patch digit for iMesh.
+ *
+ * Although each interface in ITAPS has been designed to support its own
+ * uniqe version numbers, apart from other ITAPS interfaces, as currently
+ * used, we require all ITAPS interfaces to use the same ITAPS-wide version
+ * number derived from the version number defined by these three digits.
+ ******************************************************************************/
+#define IBASE_VERSION_MAJOR 1
+#define IBASE_VERSION_MINOR 4
+#define IBASE_VERSION_PATCH 0
 
-extern "C"
-{
-#endif
+/***************************************************************************//**
+ * \ingroup VersionNumbers
+ * \brief Version Comparison
+ *
+ * Evaluates to true at CPP time if the version of iBase currently being
+ * compiled is greater than or equal to the version specified.
+ ******************************************************************************/
+#define IBASE_VERSION_GE(Maj,Min,Pat) \
+    (((IBASE_VERSION_MAJOR==(Maj)) && (IBASE_VERSION_MINOR==(Min)) && (IBASE_VERSION_PATCH>=(Pat))) || \
+     ((IBASE_VERSION_MAJOR==(Maj)) && (IBASE_VERSION_MINOR>(Min))) || \
+      (IBASE_VERSION_MAJOR>(Maj)))
 
+/***************************************************************************//**
+ * \ingroup VersionNumbers
+ * \brief Compose compile-time string represention of the version number
+ ******************************************************************************/
+#define IBASE_VERSION_STRING___(I,X,Y,Z) #I "_Version_" #X "." #Y "." #Z
+#define IBASE_VERSION_STRING__(I,X,Y,Z) IBASE_VERSION_STRING___(I,X,Y,Z)
+#define IBASE_VERSION_STRING_(I) IBASE_VERSION_STRING__(I,IBASE_VERSION_MAJOR,IBASE_VERSION_MINOR,IBASE_VERSION_PATCH)
+#define IBASE_VERSION_STRING IBASE_VERSION_STRING_(iBase)


More information about the cgma-dev mailing list