summaryrefslogtreecommitdiff
path: root/ACE/ace/Notification_Queue.inl
blob: 5d615dffb31f22d9e29b32a654bc2fbea4d5e68b (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
ACE_BEGIN_VERSIONED_NAMESPACE_DECL

ACE_INLINE ACE_Notification_Queue_Node::
ACE_Notification_Queue_Node()
  : ACE_Intrusive_List_Node<ACE_Notification_Queue_Node>()
  , contents_(0, 0)
{
}

ACE_INLINE void
ACE_Notification_Queue_Node::set(ACE_Notification_Buffer const & rhs)
{
  contents_ = rhs;
}

ACE_INLINE ACE_Notification_Buffer const &
ACE_Notification_Queue_Node::get() const
{
  return contents_;
}

ACE_INLINE bool
ACE_Notification_Queue_Node::matches_for_purging(ACE_Event_Handler * eh) const
{
  return (0 != get().eh_) && (0 == eh || eh == get().eh_);
}

ACE_INLINE bool
ACE_Notification_Queue_Node::mask_disables_all_notifications(
    ACE_Reactor_Mask mask)
{
  // the existing notification mask is left with nothing when applying
  // the mask
  return ACE_BIT_DISABLED (get().mask_, ~mask);
}

ACE_INLINE void
ACE_Notification_Queue_Node::clear_mask(ACE_Reactor_Mask mask)
{
  ACE_CLR_BITS(contents_.mask_, mask);
}

ACE_END_VERSIONED_NAMESPACE_DECL