- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- File List
- File Members

# /home/coin/SVN-release/CoinUtils-2.6.1/CoinUtils/src/Coin_C_defines.h

Go to the documentation of this file.

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