Versioned_Namespace.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  * @file    Versioned_Namespace.h
00006  *
00007  * Versioned namespace support.
00008  *
00009  * Useful for preventing conflicts when using a third party library.
00010  *
00011  * @author Ossama Othman <ossama@dre.vanderbilt.edu>
00012  */
00013 //=============================================================================
00014 
00015 #ifndef OPENDDS_VERSIONED_NAMESPACE_H
00016 #define OPENDDS_VERSIONED_NAMESPACE_H
00017 
00018 #include "ace/config.h"
00019 
00020 #if !defined (OPENDDS_HAS_VERSIONED_NAMESPACE) \
00021   && defined (ACE_HAS_VERSIONED_NAMESPACE) \
00022   && ACE_HAS_VERSIONED_NAMESPACE == 1
00023 # define OPENDDS_HAS_VERSIONED_NAMESPACE 1
00024 #endif  /* !OPENDDS_HAS_VERSIONED_NAMESPACE
00025            && ACE_HAS_VERSIONED_NAMESPACE == 1*/
00026 
00027 #if defined (OPENDDS_HAS_VERSIONED_NAMESPACE) && OPENDDS_HAS_VERSIONED_NAMESPACE == 1
00028 
00029 # ifndef OPENDDS_VERSIONED_NAMESPACE_NAME
00030 #  include "Version.h"
00031 
00032 // Preprocessor symbols will not be expanded if they are
00033 // concatenated.  Force the preprocessor to expand them during the
00034 // argument prescan by calling a macro that itself calls another that
00035 // performs the actual concatenation.
00036 #  define OPENDDS_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO) DDS_ ## MAJOR ## _ ## MINOR ## _ ## MICRO
00037 #  define OPENDDS_MAKE_VERSIONED_NAMESPACE_NAME(MAJOR,MINOR,MICRO) OPENDDS_MAKE_VERSIONED_NAMESPACE_NAME_IMPL(MAJOR,MINOR,MICRO)
00038 #  define OPENDDS_VERSIONED_NAMESPACE_NAME OPENDDS_MAKE_VERSIONED_NAMESPACE_NAME(DDS_MAJOR_VERSION,DDS_MINOR_VERSION,DDS_MICRO_VERSION)
00039 # endif  /* !OPENDDS_VERSIONED_NAMESPACE_NAME */
00040 
00041 # define OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL namespace OPENDDS_VERSIONED_NAMESPACE_NAME {
00042 # define OPENDDS_END_VERSIONED_NAMESPACE_DECL } \
00043   using namespace OPENDDS_VERSIONED_NAMESPACE_NAME;
00044 #else
00045 # define OPENDDS_VERSIONED_NAMESPACE_NAME
00046 # define OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
00047 # define OPENDDS_END_VERSIONED_NAMESPACE_DECL
00048 
00049 #endif  /* OPENDDS_HAS_VERSIONED_NAMESPACE */
00050 
00051 #endif  /* !OPENDDS_VERSIONED_NAMESPACE_H */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1