00001 // this is for emacs file handling -*- mode: c++; indent-tabs-mode: nil -*- 00002 00003 // -- BEGIN LICENSE BLOCK ---------------------------------------------- 00004 // This file is part of FZIs ic_workspace. 00005 // 00006 // This program is free software licensed under the LGPL 00007 // (GNU LESSER GENERAL PUBLIC LICENSE Version 3). 00008 // You can find a copy of this license in LICENSE folder in the top 00009 // directory of the source code. 00010 // 00011 // © Copyright 2014 FZI Forschungszentrum Informatik, Karlsruhe, Germany 00012 // 00013 // -- END LICENSE BLOCK ------------------------------------------------ 00014 00015 //---------------------------------------------------------------------- 00024 //---------------------------------------------------------------------- 00025 #ifndef ICL_CORE_OS_THREAD_H_INCLUDED 00026 #define ICL_CORE_OS_THREAD_H_INCLUDED 00027 00028 #include "icl_core/BaseTypes.h" 00029 #include "icl_core/os_ns.h" 00030 00031 #if defined _SYSTEM_POSIX_ 00032 # include "icl_core/os_posix_thread.h" 00033 #elif defined _SYSTEM_WIN32_ 00034 # include "icl_core/os_win32_thread.h" 00035 #else 00036 # error "No os_thread implementation defined for this platform." 00037 #endif 00038 00039 #ifdef _IC_BUILDER_DEPRECATED_STYLE_ 00040 # include "icl_core/Deprecate.h" 00041 #endif 00042 00043 namespace icl_core { 00044 00045 #ifdef _IC_BUILDER_DEPRECATED_STYLE_ 00046 typedef ICL_CORE_VC_DEPRECATE ICL_CORE_OS_IMPL_NS::ThreadId tThreadId ICL_CORE_GCC_DEPRECATE; 00047 typedef ICL_CORE_VC_DEPRECATE int32_t tThreadPriority ICL_CORE_GCC_DEPRECATE; 00048 #endif 00049 typedef ICL_CORE_OS_IMPL_NS::ThreadId ThreadId; 00050 typedef int32_t ThreadPriority; 00051 00052 namespace os { 00053 00054 inline ThreadId threadSelf() 00055 { 00056 return ICL_CORE_OS_IMPL_NS::threadSelf(); 00057 } 00058 00059 inline pid_t getpid() 00060 { 00061 return ICL_CORE_OS_IMPL_NS::getpid(); 00062 } 00063 00065 #ifdef _IC_BUILDER_DEPRECATED_STYLE_ 00066 00067 inline ThreadId ThreadSelf() ICL_CORE_GCC_DEPRECATE; 00068 inline ICL_CORE_VC_DEPRECATE_STYLE ThreadId ThreadSelf() 00069 { return threadSelf(); } 00070 00071 #endif 00072 00073 00074 } 00075 } 00076 00077 #endif