00001 // -*- C++ -*- 00002 00003 //============================================================================= 00004 /** 00005 * @file OS_Log_Msg_Attributes.h 00006 * 00007 * $Id: OS_Log_Msg_Attributes.h 91066 2010-07-12 11:05:04Z johnnyw $ 00008 * 00009 * @author Carlos O'Ryan 00010 */ 00011 //============================================================================= 00012 00013 #include /**/ "ace/config-all.h" 00014 00015 #ifndef ACE_OS_LOG_MSG_ATTRIBUTES_H 00016 #define ACE_OS_LOG_MSG_ATTRIBUTES_H 00017 #include /**/ "ace/pre.h" 00018 00019 #if !defined (ACE_LACKS_PRAGMA_ONCE) 00020 # pragma once 00021 #endif /* ACE_LACKS_PRAGMA_ONCE */ 00022 00023 #include /**/ "ace/ACE_export.h" 00024 #include "ace/os_include/os_stdio.h" 00025 #include "ace/iosfwd.h" 00026 #include "ace/Copy_Disabled.h" 00027 00028 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00029 00030 /** 00031 * @class ACE_OS_Log_Msg_Attributes 00032 * 00033 * @brief The attributes required by ACE_Log_Msg. 00034 * 00035 * When a new thread is created the TSS resources for the Log_Msg 00036 * class in the new thread may be inherited by the creator thread. 00037 * The base_attributes are encapsulated in this class to simplify their 00038 * manipulation and destruction. 00039 * @par 00040 * The contents of the class must be made available to the OS layer, 00041 * because they are part of the thread descriptor. 00042 */ 00043 class ACE_Export ACE_OS_Log_Msg_Attributes : private ACE_Copy_Disabled 00044 { 00045 public: 00046 /// Constructor 00047 ACE_OS_Log_Msg_Attributes (void); 00048 00049 protected: 00050 friend class ACE_Log_Msg; 00051 00052 /// Ostream where the new TSS Log_Msg will use. 00053 ACE_OSTREAM_TYPE *ostream_; 00054 void *ostream_refcount_; 00055 00056 /// Priority_mask to be used in new TSS Log_Msg. 00057 unsigned long priority_mask_; 00058 00059 /// Are we allowing tracing in this thread? 00060 int tracing_enabled_; 00061 00062 /// Indicates whether we should restart system calls that are 00063 /// interrupted. 00064 bool restart_; 00065 00066 /// Depth of the nesting for printing traces. 00067 int trace_depth_; 00068 00069 #if defined (ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS) 00070 /// Structured exception handling Callbacks, only used under Win32 00071 ACE_SEH_EXCEPT_HANDLER seh_except_selector_; 00072 ACE_SEH_EXCEPT_HANDLER seh_except_handler_; 00073 #endif /* ACE_HAS_WIN32_STRUCTURAL_EXCEPTIONS */ 00074 }; 00075 00076 ACE_END_VERSIONED_NAMESPACE_DECL 00077 00078 # if defined (ACE_HAS_INLINED_OSCALLS) 00079 # if defined (ACE_INLINE) 00080 # undef ACE_INLINE 00081 # endif /* ACE_INLINE */ 00082 # define ACE_INLINE inline 00083 # include "ace/OS_Log_Msg_Attributes.inl" 00084 # endif /* ACE_HAS_INLINED_OSCALLS */ 00085 00086 #include /**/ "ace/post.h" 00087 #endif /* ACE_OS_LOG_MSG_ATTRIBUTES_H */