Restore build on FreeBSD.
[getmangos.git] / dep / ACE_wrappers / ace / IO_SAP.cpp
blob37200bfea7a96ffb9baa9e909766040b42b2d2e3
1 // $Id: IO_SAP.cpp 80826 2008-03-04 14:51:23Z wotte $
3 #include "ace/IO_SAP.h"
5 #include "ace/Log_Msg.h"
6 #include "ace/OS_NS_unistd.h"
7 #include "ace/OS_NS_errno.h"
8 #include "ace/OS_NS_fcntl.h"
9 #include "ace/os_include/os_signal.h"
11 #if !defined (__ACE_INLINE__)
12 #include "ace/IO_SAP.inl"
13 #endif /* __ACE_INLINE__ */
15 ACE_RCSID(ace, IO_SAP, "$Id: IO_SAP.cpp 80826 2008-03-04 14:51:23Z wotte $")
17 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
19 ACE_ALLOC_HOOK_DEFINE(ACE_IO_SAP)
21 // This is the do-nothing constructor. It does not perform a
22 // ACE_OS::open system call.
24 ACE_IO_SAP::ACE_IO_SAP (void)
25 : handle_ (ACE_INVALID_HANDLE)
27 ACE_TRACE ("ACE_IO_SAP::ACE_IO_SAP");
30 void
31 ACE_IO_SAP::dump (void) const
33 #if defined (ACE_HAS_DUMP)
34 ACE_TRACE ("ACE_IO_SAP::dump");
36 ACE_DEBUG ((LM_DEBUG, ACE_BEGIN_DUMP, this));
37 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("handle_ = %d"), this->handle_));
38 ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("\npid_ = %d"), this->pid_));
39 ACE_DEBUG ((LM_DEBUG, ACE_END_DUMP));
40 #endif /* ACE_HAS_DUMP */
43 // Cache for the process ID.
44 pid_t ACE_IO_SAP::pid_ = 0;
46 int
47 ACE_IO_SAP::enable (int value) const
49 ACE_TRACE ("ACE_IO_SAP::enable");
50 /* First-time in initialization. */
51 if (ACE_IO_SAP::pid_ == 0)
52 ACE_IO_SAP::pid_ = ACE_OS::getpid ();
54 switch (value)
56 #if defined (SIGURG)
57 case SIGURG:
58 case ACE_SIGURG:
59 #if defined (F_SETOWN)
60 return ACE_OS::fcntl (this->handle_,
61 F_SETOWN,
62 ACE_IO_SAP::pid_);
63 #else
64 ACE_NOTSUP_RETURN (-1);
65 #endif /* F_SETOWN */
66 #endif /* SIGURG */
67 #if defined (SIGIO)
68 case SIGIO:
69 case ACE_SIGIO:
70 #if defined (F_SETOWN) && defined (FASYNC)
71 if (ACE_OS::fcntl (this->handle_,
72 F_SETOWN,
73 ACE_IO_SAP::pid_) == -1
74 || ACE::set_flags (this->handle_,
75 FASYNC) == -1)
76 return -1;
77 break;
78 #else
79 ACE_NOTSUP_RETURN (-1);
80 #endif /* F_SETOWN && FASYNC */
81 #else // <==
82 ACE_NOTSUP_RETURN (-1);
83 #endif /* SIGIO <== */
84 case ACE_NONBLOCK:
85 if (ACE::set_flags (this->handle_,
86 ACE_NONBLOCK) == -1)
87 return -1;
88 break;
89 default:
90 return -1;
93 return 0;
96 int
97 ACE_IO_SAP::disable (int value) const
99 ACE_TRACE ("ACE_IO_SAP::disable");
101 switch (value)
103 #if defined (SIGURG)
104 case SIGURG:
105 case ACE_SIGURG:
106 #if defined (F_SETOWN)
107 if (ACE_OS::fcntl (this->handle_,
108 F_SETOWN, 0) == -1)
109 return -1;
110 break;
111 #else
112 ACE_NOTSUP_RETURN (-1);
113 #endif /* F_SETOWN */
114 #endif /* SIGURG */
115 #if defined (SIGIO)
116 case SIGIO:
117 case ACE_SIGIO:
118 #if defined (F_SETOWN) && defined (FASYNC)
119 if (ACE_OS::fcntl (this->handle_,
120 F_SETOWN,
121 0) == -1
122 || ACE::clr_flags (this->handle_, FASYNC) == -1)
123 return -1;
124 break;
125 #else
126 ACE_NOTSUP_RETURN (-1);
127 #endif /* F_SETOWN && FASYNC */
128 #else // <==
129 ACE_NOTSUP_RETURN (-1);
130 #endif /* SIGIO <== */
131 case ACE_NONBLOCK:
132 if (ACE::clr_flags (this->handle_,
133 ACE_NONBLOCK) == -1)
134 return -1;
135 break;
136 default:
137 return -1;
139 return 0;
142 ACE_END_VERSIONED_NAMESPACE_DECL