summaryrefslogtreecommitdiff
path: root/TAO/tao/Connection_Handler.inl
blob: 6e982ced480ff101c8261684b8358e9d45c0acbc (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
87
88
89
90
91
92
93
94
95
96
97
// -*- C++ -*-
//
//$Id$

ACE_INLINE
TAO_Connection_Handler::TAO_Connection_Handler (void)
  : orb_core_ (0),
    transport_ (0),
    tss_resources_ (0),
    pending_upcalls_ (1),
    pending_upcall_lock_ (0)
{
}

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_;
}

ACE_INLINE TAO_Transport *
TAO_Connection_Handler::transport (void)
{
  return this->transport_;
}

ACE_INLINE int
TAO_Connection_Handler::is_connect_complete (void) const
{
  return this->successful () ||
    this->error_detected ();
}

ACE_INLINE int
TAO_Connection_Handler::is_connect_successful (void) const
{
  return this->error_detected ();
}

ACE_INLINE int
TAO_Connection_Handler::incr_refcount (void)
{
  ACE_GUARD_RETURN (ACE_Lock,
                    ace_mon,
                    *this->pending_upcall_lock_, -1);

  return ++this->reference_count_;
}

ACE_INLINE void
TAO_Connection_Handler::decr_refcount (void)
{
  {
    ACE_GUARD (ACE_Lock,
               ace_mon,
               *this->pending_upcall_lock_);

    --this->reference_count_;
  }

  if (this->reference_count_ == 0)
    this->handle_close_i ();
}

ACE_INLINE int
TAO_Connection_Handler::incr_pending_upcalls (void)
{
  ACE_GUARD_RETURN (ACE_Lock,
                    ace_mon,
                    *this->pending_upcall_lock_, -1);

  return ++this->pending_upcalls_;


}

ACE_INLINE int
TAO_Connection_Handler::decr_pending_upcalls (void)
{
  ACE_GUARD_RETURN (ACE_Lock,
                    ace_mon,
                    *this->pending_upcall_lock_, -1);

  return --this->pending_upcalls_;
}

ACE_INLINE int
TAO_Connection_Handler::pending_upcalls (void) const
{
  return this->pending_upcalls_;
}