summaryrefslogtreecommitdiff
path: root/TAO/tao/Connection_Handler.inl
blob: dcbafce3da6ef0c89aa75d745658cb271d443444 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//* -*- C++ -*- */
//$Id$

ACE_INLINE
TAO_Connection_Handler::TAO_Connection_Handler (void)
  : orb_core_ (0),
    tss_resources_ (0),
    ref_count_ (1),
    cache_map_entry_ (0),
    is_registered_ (0)
{
}

ACE_INLINE
TAO_Connection_Handler::~TAO_Connection_Handler (void)
{
}


ACE_INLINE TAO_Connection_Cache_Manager::HASH_MAP_ENTRY *
TAO_Connection_Handler::cache_map_entry (void)
{
  return this->cache_map_entry_;
}

ACE_INLINE void
TAO_Connection_Handler::cache_map_entry (
    TAO_Connection_Cache_Manager::HASH_MAP_ENTRY *entry)
{
  this->cache_map_entry_ = entry;
}

ACE_INLINE void
TAO_Connection_Handler::incr_ref_count (void)
{
  this->ref_count_ ++;
}

ACE_INLINE void
TAO_Connection_Handler::decr_ref_count (void)
{
  this->ref_count_ --;

  if (this->ref_count_ == 0)
    {
      // This check is required. If the Cache map has been closed or
      // vanishes, the entry that we have is invalid. So, do this
      // check before we access the internals of the
      // <cache_map_entry_>
      if (cache_map_entry_)
        {

          // Now mark the Ext_Id for us as closed
          this->cache_map_entry_->int_id_.recycle_state
            (ACE_RECYCLABLE_CLOSED);
        }

      // Now the handler is gone
      delete this;
    }
}


ACE_INLINE CORBA::Boolean
TAO_Connection_Handler::is_registered (void)
{
  return this->is_registered_;
}

ACE_INLINE void
TAO_Connection_Handler::is_registered (CORBA::Boolean flag)
{
  this->is_registered_ = flag;
}

ACE_INLINE TAO_ORB_Core *
TAO_Connection_Handler::orb_core (void)
{
  return this->orb_core_;
}

ACE_INLINE TAO_ORB_Core_TSS_Resources *
TAO_Connection_Handler::tss_resources (void)
{
  return this->tss_resources_;
}