// -*- c++ -*- /* * MICO --- an Open Source CORBA implementation * Copyright (c) 1997-2010 by The Mico Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * * For more information, visit the MICO Home Page at * http://www.mico.org/ */ #ifndef __corba_h__ #define __corba_h__ /***************************** C headers ****************************/ #include #include #include // for wchar_t #ifndef _POCKET_PC #include #include #endif #include /***************************** config *******************************/ // For switching on debug code uncomment line below and comment line under it //#define MTDEBUG #undef MTDEBUG #if defined(_WIN32) && !defined(__MINGW32__) #if defined(_MSC_VER) #if _MSC_VER < 1300 #error You need at least VC 7.0 (MSDEV.NET) to compile MICO successfully #endif #elif defined(_BORLANDC_) #error Borland support not implemented yet #if _BORLANDC_ < 0x0560 #error Need (at least) BCB6 Compiler // or whatever is required when the port is ready #endif #else #error unknown (Windows-)Compiler #endif #include #elif defined (_POCKET_PC) #include #else #include #endif #ifndef TRUE #define TRUE 1 #endif #ifndef FALSE #define FALSE 0 #endif #if (defined(PIC) && defined(HAVE_SHARED_EXCEPTS)) || \ (!defined(PIC) && defined(HAVE_EXCEPTS)) #define HAVE_EXCEPTIONS 1 #endif #ifdef MICO_CONF_NO_EXCEPTIONS #undef HAVE_EXCEPTS #undef HAVE_SHARED_EXCEPTS #undef HAVE_EXCEPTIONS #endif #ifndef HAVE_NAMESPACE #error "MICO must be compiled by a compiler that supports namespaces" #endif #if defined (_WIN32) || defined (_POCKET_PC) #ifdef BUILD_MICO_DLL #undef MICO_EXPORT #define MICO_EXPORT /**/ #else // BUILD_MICO_DLL #undef MICO_EXPORT #define MICO_EXPORT __declspec(dllimport) #endif // BUILD_MICO_DLL #else // _WIN32 || _POCKET_PC #undef MICO_EXPORT #define MICO_EXPORT /**/ #endif // _WIN32 || _POCKET_PC #ifdef USE_MEMTRACE // this enables memtracing for STL objects // The malloc and free macros are undefined under STL includes #include #endif /***************************** STL headers **************************/ #ifdef HAVE_MINI_STL #include #include #include #include #include #else #include #include #include #include #include #include #include #if defined(_WIN32) && !defined(__MINGW32__) #include #endif #endif typedef std::vector::size_type mico_vec_size_type; #ifdef USE_MEMTRACE #undef malloc #undef free #endif /************************** MICO templates **************************/ #include #include #include #include #include #include #include #include // MICOMT needs MICO::Logger from utils //#include /*************************** module MICOMT **************************/ // we already need to include os-thread even for ST build #include /*************************** module CORBA ***************************/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace PortableInterceptor { class ClientRequestInfo; class ServerRequestInfo; typedef ClientRequestInfo* ClientRequestInfo_ptr; typedef ServerRequestInfo* ServerRequestInfo_ptr; } namespace PInterceptor { class ClientRequestInfo_impl; class ServerRequestInfo_impl; } #include #include #include #include #include #include #include #ifdef THREADING_POLICIES #include #endif // THREADING_POLICIES #ifndef MICO_CONF_NO_POA namespace PortableServer { class ServantBase; } #ifndef MICO_CONF_NO_INTERCEPT #if (defined(USE_CSL2)) || (defined(USE_CSIV2)) #include #endif // USE_CSL2 or USE_CSIV2 #ifdef USE_MESSAGING #include #endif // USE_MESSAGING #ifdef USE_CSL2 # include # include # include # include #endif /* USE_CSL2 */ #endif // MICO_CONF_NO_INTERCEPT #if defined(USE_CSL2) && defined(MICO_CONF_NO_INTERCEPT) // this is needed because of POA dependency // on ObjectDomainMapping interfaces // when CSL2 is enabled and when MICO_CONF_NO_INTERCEPT // is defined, then CSL2 headers are not included namespace ObjectDomainMapping { class Factory; class Manager; typedef Factory* Factory_ptr; typedef Manager* Manager_ptr; } #endif // USE_CSL2 && !MICO_CONF_NO_INTERCEPT #include #include #include #endif // MICO_CONF_NO_POA #include #include #include #include #include #ifndef MICO_CONF_NO_IR #include #endif // MICO_CONF_NO_IR #include #include #ifndef MICO_CONF_NO_IMR #include #endif // MICO_CONF_NO_IMR #include /********************** Global ******************************************/ #ifndef MICO_CONF_NO_DYNANY #include #endif #ifndef MICO_CONF_NO_INTERCEPT #include namespace PortableInterceptor { void register_orb_initializer (PortableInterceptor::ORBInitializer_ptr init); } #endif #include #include // used in skeletons CORBA::ULong mico_string_hash (const char *, CORBA::ULong); #include #include #ifndef MICO_CONF_NO_INTERCEPT #ifdef USE_CSL2 # include # include # include # include # include #endif /* USE_CSL2 */ #endif // MICO_CONF_NO_INTERCEPT #ifndef MICO_CONF_NO_INTERCEPT #ifdef USE_CSIV2 #include #include #include #include #endif // USE_CSIV2 #ifdef USE_SL3 // ATLAS #include // SL3 namespace TransportSecurity { class ClientCredentials; class TargetCredentials; typedef ClientCredentials* ClientCredentials_ptr; typedef TargetCredentials* TargetCredentials_ptr; } namespace SecurityLevel3 { class ClientCredentials; class TargetCredentials; typedef ClientCredentials* ClientCredentials_ptr; typedef TargetCredentials* TargetCredentials_ptr; } #include #include #include #include #include #include #include #include #include #include #include #include #include // private SL3 API #include #include // MICO specific extension to SL3 API #include // MICO specific SL3 command-line API #include #endif // USE_SL3 #endif // MICO_CONF_NO_INTERCEPT #endif // __corba_h__