00001 // -*- C++ -*- 00002 // 00003 // SSLIOP_Current.inl,v 1.7 2005/11/16 07:53:24 ossama Exp 00004 00005 TAO_BEGIN_VERSIONED_NAMESPACE_DECL 00006 00007 ACE_INLINE void 00008 TAO::SSLIOP::Current::tss_slot (size_t slot) 00009 { 00010 this->tss_slot_ = slot; 00011 } 00012 00013 ACE_INLINE int 00014 TAO::SSLIOP::Current::implementation (TAO::SSLIOP::Current_Impl *impl) 00015 { 00016 if (this->orb_core_ == 0) 00017 return -1; 00018 00019 return this->orb_core_->set_tss_resource (this->tss_slot_, impl); 00020 } 00021 00022 ACE_INLINE TAO::SSLIOP::Current_Impl * 00023 TAO::SSLIOP::Current::implementation (void) 00024 { 00025 if (this->orb_core_ == 0) 00026 return 0; 00027 00028 TAO::SL3::SecurityCurrent_Impl *impl = 00029 static_cast<TAO::SL3::SecurityCurrent_Impl *> ( 00030 this->orb_core_->get_tss_resource (this->tss_slot_)); 00031 00032 // Make sure we've got SSL session state in TSS before allowing 00033 // further use of the SSLIOP::Current object. 00034 if (impl != 0 && impl->tag () == ::SSLIOP::TAG_SSL_SEC_TRANS) 00035 return dynamic_cast<TAO::SSLIOP::Current_Impl *> (impl); 00036 00037 return 0; 00038 } 00039 00040 TAO_END_VERSIONED_NAMESPACE_DECL