version.hpp File Reference

Define to check the Exiv2 version. References: Similar versioning defines are used in KDE, GTK and other libraries. See http://apr.apache.org/versioning.html for accompanying guidelines. More...

This graph shows which files directly or indirectly include this file:


Namespaces

namespace  Exiv2

Defines

#define EXIV2_MAJOR_VERSION   (0)
 Exiv2 MAJOR version number of the library used at compile-time.
#define EXIV2_MINOR_VERSION   (14)
 Exiv2 MINOR version number of the library used at compile-time.
#define EXIV2_PATCH_VERSION   (0)
 Exiv2 PATCH version number of the library used at compile-time.
#define EXIV2_MAKE_VERSION(major, minor, patch)   (((major) << 16) | ((minor) << 8) | (patch))
 Make an integer version number for comparison from a major, minor and a patch version number.
#define EXIV2_VERSION   EXIV2_MAKE_VERSION(EXIV2_MAJOR_VERSION,EXIV2_MINOR_VERSION,EXIV2_PATCH_VERSION)
 The Exiv2 version number of the library used at compile-time as an integer number for easy comparison.
#define EXIV2_CHECK_VERSION(major, minor, patch)   ( Exiv2::versionNumber() >= EXIV2_MAKE_VERSION(major,minor,patch) )
 Check the version of the available Exiv2 library at runtime. Return true if it is the same as or newer than the passed-in version.

Functions

int Exiv2::versionNumber ()
 Return the version of Exiv2 available at runtime as an integer.
const char * Exiv2::version ()
 Return the version of Exiv2 available at runtime as a string.

Detailed Description

Define to check the Exiv2 version. References: Similar versioning defines are used in KDE, GTK and other libraries. See http://apr.apache.org/versioning.html for accompanying guidelines.

Version:
$Rev$
Author:
Andreas Huggel (ahu) ahuggel@gmx.net
Date:
31-May-06, ahu: created

Define Documentation

#define EXIV2_CHECK_VERSION ( major,
minor,
patch   )     ( Exiv2::versionNumber() >= EXIV2_MAKE_VERSION(major,minor,patch) )

Check the version of the available Exiv2 library at runtime. Return true if it is the same as or newer than the passed-in version.

Versions are denoted using a standard triplet of integers: MAJOR.MINOR.PATCH. The basic intent is that MAJOR versions are incompatible, large-scale upgrades of the API. MINOR versions retain source and binary compatibility with older minor versions, and changes in the PATCH level are perfectly compatible, forwards and backwards.

Details of these guidelines are described in http://apr.apache.org/versioning.html

It is important to note that as long as the library has not reached 1.0.0 it is not subject to the guidelines described in the document above. Before a 1.0 release (version 0.x.y), the API can and will be changing freely, without regard to the restrictions detailed in the above document.

  // Don't include the version.hpp file, it is included by types.hpp
  // Early Exiv2 versions didn't have this file and the macros

  #ifndef EXIV2_CHECK_VERSION
  # define EXIV2_CHECK_VERSION(a,b,c) (false)
  #endif

  // ...

  std::cout << "Compiled with Exiv2 version " << EXV_PACKAGE_VERSION << "\n"
            << "Runtime Exiv2 version is    " << Exiv2::version() << "\n";

  // Check the Exiv2 version available at runtime
  if (EXIV2_CHECK_VERSION(0,13,0)) {
      std::cout << "Available Exiv2 version is equal to or greater than 0.13\n";
  }
  else {
      std::cout << "Installed Exiv2 version is less than 0.13\n";
  }
  return 0;


Generated on Mon Mar 26 03:23:14 2007 for Exiv2 by  doxygen 1.4.7