00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00047 #ifndef PANTHEIOS_INCL_PANTHEIOS_INSERTERS_HPP_THREADID
00048 #define PANTHEIOS_INCL_PANTHEIOS_INSERTERS_HPP_THREADID
00049 
00050 
00051 
00052 
00053 
00054 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00055 # define PANTHEIOS_VER_PANTHEIOS_INSERTERS_HPP_THREADID_MAJOR       2
00056 # define PANTHEIOS_VER_PANTHEIOS_INSERTERS_HPP_THREADID_MINOR       2
00057 # define PANTHEIOS_VER_PANTHEIOS_INSERTERS_HPP_THREADID_REVISION    1
00058 # define PANTHEIOS_VER_PANTHEIOS_INSERTERS_HPP_THREADID_EDIT        18
00059 #endif 
00060 
00061 
00062 
00063 
00064 
00065 #ifndef PANTHEIOS_INCL_PANTHEIOS_H_PANTHEIOS
00066 # include <pantheios/pantheios.h>
00067 #endif 
00068 #ifndef PANTHEIOS_INCL_PANTHEIOS_INSERTERS_HPP_FMT
00069 # include <pantheios/inserters/fmt.hpp>
00070 #endif 
00071 
00072 #ifndef STLSOFT_INCL_STLSOFT_SHIMS_ACCESS_STRING_H_FWD
00073 # include <stlsoft/shims/access/string/fwd.h>
00074 #endif 
00075 
00076 
00077 
00078 
00079 
00080 #if !defined(PANTHEIOS_NO_NAMESPACE)
00081 namespace pantheios
00082 {
00083 #endif 
00084 
00085 
00086 
00087 
00088 
00089 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00090 struct threadId_t;
00091 #endif 
00092 
00108 extern struct threadId_t const* threadId;
00109 
00110 
00111 
00112 
00113 
00114 #ifndef PANTHEIOS_DOCUMENTATION_SKIP_SECTION
00115 
00116 # if !defined(PANTHEIOS_NO_NAMESPACE)
00117 namespace inserters
00118 {
00119 # endif 
00120 
00121 class thread_id_t
00122 {
00123 public:
00124     typedef thread_id_t             class_type;
00125 # if !defined(PANTHEIOS_NO_NAMESPACE)
00126     typedef ::pantheios::threadId_t id_type;
00127 # else 
00128     typedef threadId_t              id_type;
00129 # endif 
00130 
00131 public:
00132     thread_id_t();
00133 
00134 public:
00135     operator size_t () const;
00136     operator pan_char_t const* () const;
00137 
00138 private:
00139     void construct_();
00140     void construct_() const;
00141 
00142 private:
00143     pan_char_t  m_value[21];
00144     size_t      m_len;
00145 };
00146 
00147 # if !defined(PANTHEIOS_NO_NAMESPACE)
00148 } 
00149 #  define PANTHEIOS_INSERTERS_DECLARE_thread_id_t   ::pantheios::inserters::thread_id_t
00150 # else 
00151 #  define PANTHEIOS_INSERTERS_DECLARE_thread_id_t   thread_id_t
00152 # endif 
00153 
00154 # if !defined(PANTHEIOS_NO_NAMESPACE)
00155 namespace shims
00156 {
00157 # endif 
00158 
00159 # ifdef PANTHEIOS_USE_WIDE_STRINGS
00160 inline PANTHEIOS_INSERTERS_DECLARE_thread_id_t c_str_data_w(PANTHEIOS_INSERTERS_DECLARE_thread_id_t::id_type const*)
00161 # else 
00162 inline PANTHEIOS_INSERTERS_DECLARE_thread_id_t c_str_data_a(PANTHEIOS_INSERTERS_DECLARE_thread_id_t::id_type const*)
00163 # endif 
00164 {
00165     return PANTHEIOS_INSERTERS_DECLARE_thread_id_t();
00166 }
00167 inline PANTHEIOS_INSERTERS_DECLARE_thread_id_t c_str_data(PANTHEIOS_INSERTERS_DECLARE_thread_id_t::id_type const*)
00168 {
00169     return PANTHEIOS_INSERTERS_DECLARE_thread_id_t();
00170 }
00171 
00172 # ifdef PANTHEIOS_USE_WIDE_STRINGS
00173 inline PANTHEIOS_INSERTERS_DECLARE_thread_id_t c_str_len_w(PANTHEIOS_INSERTERS_DECLARE_thread_id_t::id_type const*)
00174 # else 
00175 inline PANTHEIOS_INSERTERS_DECLARE_thread_id_t c_str_len_a(PANTHEIOS_INSERTERS_DECLARE_thread_id_t::id_type const*)
00176 # endif 
00177 {
00178     return PANTHEIOS_INSERTERS_DECLARE_thread_id_t();
00179 }
00180 inline PANTHEIOS_INSERTERS_DECLARE_thread_id_t c_str_len(PANTHEIOS_INSERTERS_DECLARE_thread_id_t::id_type const*)
00181 {
00182     return PANTHEIOS_INSERTERS_DECLARE_thread_id_t();
00183 }
00184 
00185 # ifdef PANTHEIOS_USE_WIDE_STRINGS
00186 inline PANTHEIOS_INSERTERS_DECLARE_thread_id_t c_str_ptr_w(PANTHEIOS_INSERTERS_DECLARE_thread_id_t::id_type const*)
00187 # else 
00188 inline PANTHEIOS_INSERTERS_DECLARE_thread_id_t c_str_ptr_a(PANTHEIOS_INSERTERS_DECLARE_thread_id_t::id_type const*)
00189 # endif 
00190 {
00191     return PANTHEIOS_INSERTERS_DECLARE_thread_id_t();
00192 }
00193 inline PANTHEIOS_INSERTERS_DECLARE_thread_id_t c_str_ptr(PANTHEIOS_INSERTERS_DECLARE_thread_id_t::id_type const*)
00194 {
00195     return PANTHEIOS_INSERTERS_DECLARE_thread_id_t();
00196 }
00197 
00198 # if !defined(PANTHEIOS_NO_NAMESPACE)
00199 } 
00200 
00201 #  if defined(STLSOFT_COMPILER_IS_GCC)
00202     
00203 
00204 
00205 
00206 
00207     using ::pantheios::shims::c_str_data_a;
00208     using ::pantheios::shims::c_str_data;
00209 
00210     using ::pantheios::shims::c_str_len_a;
00211     using ::pantheios::shims::c_str_len;
00212 
00213     using ::pantheios::shims::c_str_ptr_a;
00214     using ::pantheios::shims::c_str_ptr;
00215 #  endif 
00216 
00217 # endif 
00218 
00219 #endif 
00220 
00221 
00222 
00223 
00224 
00225 #if !defined(PANTHEIOS_NO_NAMESPACE)
00226 
00227 } 
00228 
00229 namespace stlsoft
00230 {
00231     
00232     
00233     
00234     
00235     
00236     
00237 
00238 # ifdef PANTHEIOS_USE_WIDE_STRINGS
00239     using ::pantheios::shims::c_str_data_w;
00240     using ::pantheios::shims::c_str_len_w;
00241     using ::pantheios::shims::c_str_ptr_w;
00242 # else 
00243     using ::pantheios::shims::c_str_data_a;
00244     using ::pantheios::shims::c_str_len_a;
00245     using ::pantheios::shims::c_str_ptr_a;
00246 # endif 
00247     using ::pantheios::shims::c_str_data;
00248     using ::pantheios::shims::c_str_len;
00249     using ::pantheios::shims::c_str_ptr;
00250 }
00251 
00252 #endif 
00253 
00254 
00255 
00256 
00257 
00258 #ifdef STLSOFT_PPF_pragma_once_SUPPORT
00259 # pragma once
00260 #endif 
00261 
00262 
00263 
00264 #endif 
00265 
00266