/home/coin/SVN-release/CoinAll-1.1.0/CoinUtils/src/Coin_C_defines.h

Go to the documentation of this file.
00001 /* Copyright (C) 2002, 2003 International Business Machines
00002    Corporation and others.  All Rights Reserved.*/
00003 #ifndef CoinCDefine_H
00004 #define CoinCDefine_H
00005 
00010 /* Plus infinity */
00011 #ifndef COIN_DBL_MAX
00012 #define COIN_DBL_MAX DBL_MAX
00013 #endif
00014 #if defined (CLP_EXTERN_C)
00015 #define COIN_EXTERN_C
00016 #define COIN_NO_SBB
00017 #define COIN_NO_CBC
00018 #endif
00019 #if defined (SBB_EXTERN_C)
00020 #define COIN_EXTERN_C
00021 #define COIN_NO_CLP
00022 #endif
00023 #if defined (CBC_EXTERN_C)
00024 #define COIN_EXTERN_C
00025 #define COIN_NO_CLP
00026 #endif
00027 /* We need to allow for Microsoft */
00028 #ifndef COINLIBAPI
00029 
00030 #if defined(CBCCINTERFACEDLL_EXPORTS) || defined(CLPMSDLL)
00031 #if defined (COIN_EXTERN_C)
00032 #   define COINLIBAPI __declspec(dllexport)
00033 #else
00034 #   define COINLIBAPI __declspec(dllexport)
00035 #endif
00036 #   define COINLINKAGE  __stdcall
00037 #   define COINLINKAGE_CB  __cdecl
00038 #else
00039 #if defined (COIN_EXTERN_C)
00040 #   define COINLIBAPI extern "C"
00041 #else
00042 #   define COINLIBAPI 
00043 #endif
00044 #   define COINLINKAGE
00045 #   define COINLINKAGE_CB 
00046 #endif
00047 
00048 #endif
00049 
00050 #if defined (CLP_EXTERN_C)
00051 /* Real typedef for structure */
00052 class CMessageHandler;
00053 typedef struct {
00054   ClpSimplex * model_;
00055   CMessageHandler * handler_;
00056 } Clp_Simplex;
00057 #else
00058 typedef void Clp_Simplex;
00059 #endif
00060 
00061 #ifndef COIN_NO_CLP
00062 
00064 typedef  void (COINLINKAGE_CB *clp_callback) (Clp_Simplex * model,int  msgno, int ndouble,
00065                             const double * dvec, int nint, const int * ivec,
00066                             int nchar, char ** cvec);
00067 #endif
00068 
00069 #if defined (SBB_EXTERN_C)
00070 /* Real typedef for structure */
00071 class Sbb_MessageHandler;
00072 typedef struct {
00073   OsiClpSolverInterface * solver_;
00074   SbbModel              * model_;
00075   Sbb_MessageHandler    * handler_;
00076   char                  * information_;
00077 } Sbb_Model;
00078 #else
00079 typedef void Sbb_Model;
00080 #endif
00081 #if defined (CBC_EXTERN_C)
00082 /* Real typedef for structure */
00083 class Cbc_MessageHandler;
00084 typedef struct {
00085   OsiClpSolverInterface * solver_;
00086   CbcModel              * model_;
00087   Cbc_MessageHandler    * handler_;
00088   char                  * information_;
00089 } Cbc_Model;
00090 #else
00091 typedef void Cbc_Model;
00092 #endif
00093 #ifndef COIN_NO_SBB
00094 
00096 typedef  void (COINLINKAGE_CB *sbb_callback) (Sbb_Model * model,int  msgno, int ndouble,
00097                             const double * dvec, int nint, const int * ivec,
00098                             int nchar, char ** cvec);
00099 typedef  void (COINLINKAGE_CB *cbc_callback) (Cbc_Model * model,int  msgno, int ndouble,
00100                             const double * dvec, int nint, const int * ivec,
00101                             int nchar, char ** cvec);
00102 #endif
00103 #if COIN_BIG_INDEX==0
00104 typedef int CoinBigIndex;
00105 #elif COIN_BIG_INDEX==1
00106 typedef long CoinBigIndex;
00107 #else
00108 typedef long long CoinBigIndex;
00109 #endif
00110 /* just in case used somewhere */
00111 #undef COIN_NO_CLP
00112 #undef COIN_NO_SBB
00113 #undef COIN_NO_CBC
00114 #endif

Generated on Sun Nov 14 14:06:32 2010 for Coin-All by  doxygen 1.4.7