00001 /** 00002 * @file TSS_Adapter.cpp 00003 * 00004 * $Id: TSS_Adapter.cpp 69051 2005-10-28 16:14:56Z ossama $ 00005 * 00006 * Originally in Synch.cpp 00007 * 00008 * @author Douglas C. Schmidt <schmidt@cs.wustl.edu> 00009 */ 00010 00011 #include "ace/TSS_Adapter.h" 00012 00013 ACE_RCSID(ace, TSS_Adapter, "$Id: TSS_Adapter.cpp 69051 2005-10-28 16:14:56Z ossama $") 00014 00015 ACE_BEGIN_VERSIONED_NAMESPACE_DECL 00016 00017 ACE_TSS_Adapter::ACE_TSS_Adapter (void *object, ACE_THR_DEST f) 00018 : ts_obj_ (object), 00019 func_ (f) 00020 { 00021 // ACE_TRACE ("ACE_TSS_Adapter::ACE_TSS_Adapter"); 00022 } 00023 00024 void 00025 ACE_TSS_Adapter::cleanup (void) 00026 { 00027 // ACE_TRACE ("ACE_TSS_Adapter::cleanup"); 00028 (*this->func_)(this->ts_obj_); // call cleanup routine for ts_obj_ 00029 } 00030 00031 ACE_END_VERSIONED_NAMESPACE_DECL 00032 00033 extern "C" void 00034 ACE_TSS_C_cleanup (void *object) 00035 { 00036 // ACE_TRACE ("ACE_TSS_C_cleanup"); 00037 if (object != 0) 00038 { 00039 ACE_TSS_Adapter * const tss_adapter = (ACE_TSS_Adapter *) object; 00040 // Perform cleanup on the real TS object. 00041 tss_adapter->cleanup (); 00042 // Delete the adapter object. 00043 delete tss_adapter; 00044 } 00045 }