Revert "Minor modernization of DynamicAny code"
[ACE_TAO.git] / TAO / tao / PI / PICurrent_Impl.inl
blob3a5e53d5d2e449e1f89c378b0b9d9e5c277b4dd2
1 // -*- C++ -*-
2 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
4 ACE_INLINE
5 TAO::PICurrent_Impl::PICurrent_Impl (
6     TAO_ORB_Core   *orb_core,
7     size_t         tss_slot,
8     PICurrent_Impl *pop)
9   : orb_core_ (orb_core),
10     tss_slot_ (tss_slot),
11     pop_ (pop),
12     push_ (0),
13     slot_table_ (),
14     lazy_copy_ (0),
15     impending_change_callback_ (0)
19 ACE_INLINE void
20 TAO::PICurrent_Impl::convert_from_lazy_to_real_copy ()
22   // Make sure we take a physical copy of the existing logical
23   // copy of the table before it disappears/changes.
24   if (0 != this->lazy_copy_)
25     {
26       this->slot_table_ = this->lazy_copy_->current_slot_table ();
28       // Must tell the old copied PICurrent_Impl that we no
29       // longer want to be told when/if it is going to be
30       // changed or destroyed.
31       this->lazy_copy_->set_callback_for_impending_change (0);
32       this->lazy_copy_ = 0;
33     }
36 ACE_INLINE void
37 TAO::PICurrent_Impl::set_callback_for_impending_change (TAO::PICurrent_Impl *p)
39   this->impending_change_callback_ = (this == p) ? 0 : p;
42 ACE_INLINE TAO::PICurrent_Impl::Table &
43 TAO::PICurrent_Impl::current_slot_table ()
45   return (0 == this->lazy_copy_) ?
46          this->slot_table_ :
47          this->lazy_copy_->current_slot_table ();
50 TAO_END_VERSIONED_NAMESPACE_DECL