00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 #ifndef ACE_THREAD_ADAPTER_H
00014 #define ACE_THREAD_ADAPTER_H
00015 #include  "ace/pre.h"
00016 
00017 #include  "ace/ACE_export.h"
00018 
00019 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00020 # pragma once
00021 #endif 
00022 
00023 #include "ace/Base_Thread_Adapter.h"
00024 
00025 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
00026 
00027 
00028 class ACE_Thread_Manager;
00029 class ACE_Thread_Descriptor;
00030 
00031 
00032 
00033 
00034 
00035 
00036 
00037 
00038 
00039 
00040 
00041 
00042 
00043 
00044 
00045 
00046 class ACE_Export ACE_Thread_Adapter : public ACE_Base_Thread_Adapter
00047 {
00048 public:
00049 
00050   ACE_Thread_Adapter (ACE_THR_FUNC user_func,
00051                       void *arg,
00052                       ACE_THR_C_FUNC entry_point = (ACE_THR_C_FUNC) ACE_THREAD_ADAPTER_NAME,
00053                       ACE_Thread_Manager *thr_mgr = 0,
00054                       ACE_Thread_Descriptor *td = 0
00055 # if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS)
00056                       , ACE_SEH_EXCEPT_HANDLER selector = 0,
00057                       ACE_SEH_EXCEPT_HANDLER handler = 0
00058 # endif 
00059                       );
00060 
00061 
00062 
00063 
00064 
00065 
00066   virtual ACE_THR_FUNC_RETURN invoke (void);
00067 
00068 
00069   ACE_Thread_Manager *thr_mgr (void);
00070 
00071 protected:
00072 
00073 
00074   ~ACE_Thread_Adapter (void);
00075 
00076 private:
00077 
00078 
00079 
00080   virtual ACE_THR_FUNC_RETURN invoke_i (void);
00081 
00082 private:
00083 
00084 
00085   ACE_Thread_Manager *thr_mgr_;
00086 
00087 };
00088 
00089 ACE_END_VERSIONED_NAMESPACE_DECL
00090 
00091 # if defined (ACE_HAS_INLINED_OSCALLS)
00092 #   if defined (ACE_INLINE)
00093 #     undef ACE_INLINE
00094 #   endif 
00095 #   define ACE_INLINE inline
00096 #   include "ace/Thread_Adapter.inl"
00097 # endif 
00098 
00099 #include  "ace/post.h"
00100 #endif