00001
00002
00003 #include "ace/OS_main.h"
00004
00005 ACE_RCSID(ace, OS_main, "$Id: OS_main.cpp 79134 2007-07-31 18:23:50Z johnnyw $")
00006
00007 #if defined (ACE_HAS_NONSTATIC_OBJECT_MANAGER) && !defined (ACE_DOESNT_INSTANTIATE_NONSTATIC_OBJECT_MANAGER)
00008
00009 #include "ace/Init_ACE.h"
00010
00011 # if !defined (ACE_HAS_MINIMAL_ACE_OS)
00012 # include "ace/Object_Manager.h"
00013 # endif
00014
00015
00016
00017
00018
00019
00020
00021
00022 # if !defined (ACE_MAIN_OBJECT_MANAGER)
00023 # define ACE_MAIN_OBJECT_MANAGER \
00024 ACE_OS_Object_Manager ace_os_object_manager; \
00025 ACE_Object_Manager ace_object_manager;
00026 # endif
00027
00028 # if !defined (ACE_WIN32)
00029
00030 # if !(defined (ACE_VXWORKS) && !defined (__RTP__))
00031
00032 extern int ace_main_i (int, char *[]);
00033 # endif
00034
00035 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00036
00037 # if defined (ACE_VXWORKS) && !defined (__RTP__)
00038 ace_main_proc_ptr vx_ace_main_i_ptr = 0;
00039
00040 int ace_os_main_i (int argc, char *argv[])
00041 {
00042 ACE_MAIN_OBJECT_MANAGER
00043 return vx_ace_main_i_ptr ? (*vx_ace_main_i_ptr) (argc, argv) : (-1);
00044 }
00045 # else
00046 int ace_os_main_i (int argc, char *argv[])
00047 {
00048 ACE_MAIN_OBJECT_MANAGER
00049 return ace_main_i (argc, argv);
00050 }
00051 # endif
00052
00053 ACE_END_VERSIONED_NAMESPACE_DECL
00054
00055 # elif !defined (ACE_HAS_WINCE)
00056
00057 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00058
00059 # if defined (ACE_WIN32) && defined (ACE_USES_WCHAR)
00060 int ACE_Main_Base::run (int argc, ACE_TCHAR *argv[])
00061 {
00062 return this->run_i (argc, argv);
00063 }
00064
00065 ACE_Export int
00066 ace_os_wmain_i (ACE_Main_Base &mbase, int argc, ACE_TCHAR *argv[])
00067 {
00068 ACE_MAIN_OBJECT_MANAGER
00069 return mbase.run (argc, argv);
00070 }
00071 # else
00072
00073 ACE_Main_Base::ACE_Main_Base ()
00074 {
00075 ACE::init ();
00076 }
00077
00078 ACE_Main_Base::~ACE_Main_Base ()
00079 {
00080 ACE::fini ();
00081 }
00082
00083 int ACE_Main_Base::run (int argc, char *argv[])
00084 {
00085 return this->run_i (argc, argv);
00086 }
00087
00088 ACE_Export int
00089 ace_os_main_i (ACE_Main_Base &mbase, int argc, char *argv[])
00090 {
00091 ACE_MAIN_OBJECT_MANAGER
00092 return mbase.run (argc, argv);
00093 }
00094 # endif
00095
00096 ACE_END_VERSIONED_NAMESPACE_DECL
00097
00098 # else
00099
00100
00101
00102 # include "ace/OS_NS_string.h"
00103 # include "ace/ACE.h"
00104 # include "ace/ARGV.h"
00105
00106 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00107
00108 int ACE_Main_Base::run (HINSTANCE,
00109 HINSTANCE,
00110 LPWSTR lpCmdLine,
00111 int)
00112 {
00113 ACE_TCHAR cmdline[1024];
00114 ACE_OS::strcpy (cmdline, ACE_TEXT ("program "));
00115 ACE_OS::strcat (cmdline, ACE_TEXT_WCHAR_TO_TCHAR (lpCmdLine));
00116 ACE_ARGV ce_argv (cmdline);
00117 ACE::init ();
00118 ACE_MAIN_OBJECT_MANAGER
00119 int i = this->run_i (ce_argv.argc (), ce_argv.argv ());
00120 ACE::fini ();
00121 return i;
00122 }
00123 ACE_END_VERSIONED_NAMESPACE_DECL
00124
00125 # endif
00126
00127 # endif