ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

dll_main.cpp
Go to the documentation of this file.
00001  /*
00002  *
00003  * Copyright (c) 1994
00004  * Hewlett-Packard Company
00005  *
00006  * Copyright (c) 1996,1997
00007  * Silicon Graphics Computer Systems, Inc.
00008  *
00009  * Copyright (c) 1997
00010  * Moscow Center for SPARC Technology
00011  *
00012  * Copyright (c) 1999
00013  * Boris Fomitchev
00014  *
00015  * This material is provided "as is", with absolutely no warranty expressed
00016  * or implied. Any use is at your own risk.
00017  *
00018  * Permission to use or copy this software for any purpose is hereby granted
00019  * without fee, provided the above notices are retained on all copies.
00020  * Permission to modify the code and to distribute modified code is granted,
00021  * provided the above notices are retained, and a notice that the code was
00022  * modified is included with the above copyright notice.
00023  *
00024  */
00025 
00026 #define _STLP_EXPOSE_GLOBALS_IMPLEMENTATION
00027 
00028 #include "stlport_prefix.h"
00029 
00030 #if !defined (_STLP_DEBUG) && ! defined (_STLP_ASSERTIONS)
00031 #  if !defined (__APPLE__) || !defined (__GNUC__) || (__GNUC__ < 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ < 3))
00032 /* dums: Please if the following code was being uncommented please explain why
00033  * as for the moment it only looks like a source of inconsistency in the way
00034  * STLport different translation units are compiled.
00035  */
00036 //#    define _STLP_ASSERTIONS 1
00037 #  endif
00038 #endif
00039 
00040 #include <utility>
00041 #include <memory>
00042 #include <vector>
00043 #include <set>
00044 #include <list>
00045 #include <slist>
00046 #include <deque>
00047 #include <hash_map>
00048 #include <limits>
00049 #include <string>
00050 #include <stdexcept>
00051 #include <bitset>
00052 #include <locale>
00053 
00054 #if defined (__DMC__)
00055 // for rope static members
00056 #  include <rope>
00057 #endif
00058 
00059 #include <stl/_range_errors.c>
00060 
00061 _STLP_BEGIN_NAMESPACE
00062 
00063 #if defined (_STLP_NO_EXCEPTION_HEADER) || defined (_STLP_BROKEN_EXCEPTION_CLASS)
00064 exception::exception() _STLP_NOTHROW {}
00065 exception::~exception() _STLP_NOTHROW {}
00066 bad_exception::bad_exception() _STLP_NOTHROW {}
00067 bad_exception::~bad_exception() _STLP_NOTHROW {}
00068 const char* exception::what() const _STLP_NOTHROW { return "class exception"; }
00069 const char* bad_exception::what() const _STLP_NOTHROW { return "class bad_exception"; }
00070 #endif
00071 
00072 #if defined (_STLP_OWN_STDEXCEPT)
00073 #  include <stl/_stdexcept_base.c>
00074 
00075 // boris : those are needed to force typeinfo nodes to be created in here only
00076 logic_error::~logic_error() _STLP_NOTHROW_INHERENTLY {}
00077 runtime_error::~runtime_error() _STLP_NOTHROW_INHERENTLY {}
00078 domain_error::~domain_error() _STLP_NOTHROW_INHERENTLY {}
00079 invalid_argument::~invalid_argument() _STLP_NOTHROW_INHERENTLY {}
00080 length_error::~length_error() _STLP_NOTHROW_INHERENTLY {}
00081 out_of_range::~out_of_range() _STLP_NOTHROW_INHERENTLY {}
00082 range_error::~range_error() _STLP_NOTHROW_INHERENTLY {}
00083 overflow_error::~overflow_error() _STLP_NOTHROW_INHERENTLY {}
00084 underflow_error::~underflow_error() _STLP_NOTHROW_INHERENTLY {}
00085 
00086 #endif
00087 
00088 #if !defined(_STLP_WCE_EVC3)
00089 #  if defined (_STLP_NO_BAD_ALLOC)
00090 const nothrow_t nothrow /* = {} */;
00091 #  endif
00092 #endif
00093 
00094 #if !defined (_STLP_NO_FORCE_INSTANTIATE)
00095 
00096 #  if defined (_STLP_DEBUG) || defined (_STLP_ASSERTIONS)
00097 _STLP_MOVE_TO_PRIV_NAMESPACE
00098 template class _STLP_CLASS_DECLSPEC __stl_debug_engine<bool>;
00099 _STLP_MOVE_TO_STD_NAMESPACE
00100 #  endif
00101 
00102 template class _STLP_CLASS_DECLSPEC __debug_alloc<__node_alloc>;
00103 template class _STLP_CLASS_DECLSPEC __debug_alloc<__new_alloc>;
00104 
00105 //Export of the types used to represent buckets in the hashtable implementation.
00106 /*
00107  * For the vector class we do not use any MSVC6 workaround even if we export it from
00108  * the STLport dynamic libraries because we know what methods are called and none is
00109  * a template method. Moreover the exported class is an instanciation of vector with
00110  * _Slist_node_base struct that is an internal STLport class that no user should ever
00111  * use.
00112  */
00113 #  if !defined (_STLP_USE_PTR_SPECIALIZATIONS)
00114 template class _STLP_CLASS_DECLSPEC allocator<_STLP_PRIV _Slist_node_base*>;
00115 
00116 _STLP_MOVE_TO_PRIV_NAMESPACE
00117 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_Slist_node_base**, _Slist_node_base*,
00118                                                       allocator<_Slist_node_base*> >;
00119 template class _STLP_CLASS_DECLSPEC _Vector_base<_Slist_node_base*,
00120                                                  allocator<_Slist_node_base*> >;
00121 _STLP_MOVE_TO_STD_NAMESPACE
00122 #  endif
00123 
00124 #  if defined (_STLP_DEBUG)
00125 _STLP_MOVE_TO_PRIV_NAMESPACE
00126 template class _STLP_CLASS_DECLSPEC _STLP_NON_DBG_NAME(vector)<_Slist_node_base*,
00127                                                                allocator<_Slist_node_base*> >;
00128 _STLP_MOVE_TO_STD_NAMESPACE
00129 #  endif
00130 
00131 template class _STLP_CLASS_DECLSPEC vector<_STLP_PRIV _Slist_node_base*,
00132                                            allocator<_STLP_PRIV _Slist_node_base*> >;
00133 //End of hashtable bucket types export.
00134 
00135 //Export of _Locale_impl facets container:
00136 #  if !defined (_STLP_USE_PTR_SPECIALIZATIONS)
00137 template class _STLP_CLASS_DECLSPEC allocator<locale::facet*>;
00138 
00139 _STLP_MOVE_TO_PRIV_NAMESPACE
00140 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<locale::facet**, locale::facet*, allocator<locale::facet*> >;
00141 template class _STLP_CLASS_DECLSPEC _Vector_base<locale::facet*, allocator<locale::facet*> >;
00142 _STLP_MOVE_TO_STD_NAMESPACE
00143 
00144 #  endif
00145 #  if defined (_STLP_DEBUG)
00146 _STLP_MOVE_TO_PRIV_NAMESPACE
00147 #    define _STLP_NON_DBG_VECTOR _STLP_NON_DBG_NAME(vector)
00148 template class _STLP_CLASS_DECLSPEC __construct_checker<_STLP_PRIV _STLP_NON_DBG_VECTOR<locale::facet*, allocator<locale::facet*> > >;
00149 template class _STLP_CLASS_DECLSPEC _STLP_NON_DBG_VECTOR<locale::facet*, allocator<locale::facet*> >;
00150 #    undef _STLP_NON_DBG_VECTOR
00151 _STLP_MOVE_TO_STD_NAMESPACE
00152 #  endif
00153 
00154 template class _STLP_CLASS_DECLSPEC vector<locale::facet*, allocator<locale::facet*> >;
00155 //End of export of _Locale_impl facets container.
00156 
00157 #  if defined (_STLP_USE_PTR_SPECIALIZATIONS)
00158 template class _STLP_CLASS_DECLSPEC allocator<void*>;
00159 
00160 typedef _STLP_PRIV _List_node<void*> _VoidPtr_Node;
00161 template class _STLP_CLASS_DECLSPEC allocator<_VoidPtr_Node>;
00162 
00163 _STLP_MOVE_TO_PRIV_NAMESPACE
00164 
00165 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<void**, void*, allocator<void*> >;
00166 template class _STLP_CLASS_DECLSPEC _Vector_base<void*, allocator<void*> >;
00167 template class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(vector)<void*, allocator<void*> >;
00168 
00169 template class _STLP_CLASS_DECLSPEC _List_node<void*>;
00170 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_List_node_base, _VoidPtr_Node, allocator<_VoidPtr_Node> >;
00171 template class _STLP_CLASS_DECLSPEC _List_base<void*, allocator<void*> >;
00172 template class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(list)<void*, allocator<void*> >;
00173 
00174 template class _STLP_CLASS_DECLSPEC _Slist_node<void*>;
00175 template class _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<_Slist_node_base, _Slist_node<void*>, allocator<_Slist_node<void*> > >;
00176 template class _STLP_CLASS_DECLSPEC _Slist_base<void*, allocator<void*> >;
00177 template class _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(slist)<void*, allocator<void*> >;
00178 
00179 template class  _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<size_t, void*, allocator<void*> >;
00180 template class  _STLP_CLASS_DECLSPEC _STLP_alloc_proxy<void***, void**, allocator<void**> >;
00181 template struct _STLP_CLASS_DECLSPEC _Deque_iterator<void*, _Nonconst_traits<void*> >;
00182 template class  _STLP_CLASS_DECLSPEC _Deque_base<void*, allocator<void*> >;
00183 template class  _STLP_CLASS_DECLSPEC _STLP_PTR_IMPL_NAME(deque)<void*, allocator<void*> >;
00184 
00185 _STLP_MOVE_TO_STD_NAMESPACE
00186 
00187 #  endif /* _STLP_USE_PTR_SPECIALIZATIONS */
00188 
00189 _STLP_MOVE_TO_PRIV_NAMESPACE
00190 
00191 template class _STLP_CLASS_DECLSPEC _Rb_global<bool>;
00192 template class _STLP_CLASS_DECLSPEC _List_global<bool>;
00193 
00194 template class _STLP_CLASS_DECLSPEC _Sl_global<bool>;
00195 template class _STLP_CLASS_DECLSPEC _Stl_prime<bool>;
00196 
00197 template class _STLP_CLASS_DECLSPEC _LimG<bool>;
00198 
00199 _STLP_MOVE_TO_STD_NAMESPACE
00200 
00201 #endif /* _STLP_NO_FORCE_INSTANTIATE */
00202 
00203 _STLP_END_NAMESPACE
00204 
00205 #if defined (_STLP_SIGNAL_RUNTIME_COMPATIBILITY)
00206 extern "C" void _STLP_DECLSPEC _STLP_CALL _STLP_SIGNAL_RUNTIME_COMPATIBILITY() {}
00207 #endif
00208 
00209 #define FORCE_SYMBOL extern
00210 
00211 #if defined (_WIN32) && defined (_STLP_USE_DECLSPEC) && !defined (_STLP_USE_STATIC_LIB)
00212 // stlportmt.cpp : Defines the entry point for the DLL application.
00213 //
00214 #  undef FORCE_SYMBOL
00215 #  define FORCE_SYMBOL APIENTRY
00216 
00217 extern "C" {
00218 
00219 BOOL APIENTRY DllMain( HANDLE hModule,
00220                        DWORD  ul_reason_for_call,
00221                        LPVOID) {
00222   switch (ul_reason_for_call) {
00223     case DLL_PROCESS_ATTACH:
00224       DisableThreadLibraryCalls((HINSTANCE)hModule);
00225     case DLL_THREAD_ATTACH:
00226     case DLL_THREAD_DETACH:
00227     case DLL_PROCESS_DETACH:
00228       break;
00229     }
00230   return TRUE;
00231 }
00232 
00233 } /* extern "C" */
00234 
00235 #if !defined (_STLP_MSVC) && !defined (__MINGW32__)
00236 _STLP_BEGIN_NAMESPACE
00237 
00238 static void FORCE_SYMBOL
00239 force_link() {
00240   set<int>::iterator iter;
00241   // _M_increment; _M_decrement instantiation
00242   ++iter;
00243   --iter;
00244 }
00245 
00246 _STLP_END_NAMESPACE
00247 #endif
00248 
00249 #endif /* _WIN32 */
00250 
00251 #if defined (__ICL) && (__ICL >= 900) && (_STLP_MSVC_LIB < 1300)
00252 #  undef std
00253 
00254 namespace std
00255 {
00256   void _STLP_CALL unexpected() {
00257     unexpected_handler hdl;
00258     set_unexpected(hdl = set_unexpected((unexpected_handler)0));
00259     hdl();
00260   }
00261 }
00262 #endif

Generated on Sat May 26 2012 04:34:01 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.