Restore build on FreeBSD.
[getmangos.git] / dep / ACE_wrappers / ace / SV_Message_Queue.inl
blobf8118bd7604f9091f6d0a5a703adb0cfbc1bcaf4
1 // -*- C++ -*-
2 //
3 // $Id: SV_Message_Queue.inl 80826 2008-03-04 14:51:23Z wotte $
5 #include "ace/Global_Macros.h"
6 #include "ace/OS_NS_sys_msg.h"
8 ACE_BEGIN_VERSIONED_NAMESPACE_DECL
10 // Open a message queue using the <external_id>.
12 ACE_INLINE int
13 ACE_SV_Message_Queue::open (key_t external_id, int create, int perms)
15   ACE_TRACE ("ACE_SV_Message_Queue::open");
16   return this->internal_id_ = ACE_OS::msgget (external_id, create | perms);
19 // What does it mean to close a message queue?!
21 ACE_INLINE int
22 ACE_SV_Message_Queue::close (void)
24   ACE_TRACE ("ACE_SV_Message_Queue::close");
25   this->internal_id_ = -1;
26   return 1;
29 ACE_INLINE int
30 ACE_SV_Message_Queue::control (int option, void *arg)
32   ACE_TRACE ("ACE_SV_Message_Queue::control");
33   return ACE_OS::msgctl (this->internal_id_, option,
34                          (struct msqid_ds *) arg);
37 ACE_INLINE int
38 ACE_SV_Message_Queue::remove (void)
40   ACE_TRACE ("ACE_SV_Message_Queue::remove");
41   int result = this->control (IPC_RMID);
42   this->internal_id_ = -1;
43   return result;
46 ACE_INLINE int
47 ACE_SV_Message_Queue::get_id (void) const
49   ACE_TRACE ("ACE_SV_Message_Queue::get_id");
50   return this->internal_id_;
53 ACE_INLINE void
54 ACE_SV_Message_Queue::set_id (int id)
56   ACE_TRACE ("ACE_SV_Message_Queue::set_id");
57   this->internal_id_ = id;
60 ACE_INLINE ssize_t
61 ACE_SV_Message_Queue::recv (ACE_SV_Message &mb,
62                             int length,
63                             long type,
64                             int mflags)
66   ACE_TRACE ("ACE_SV_Message_Queue::recv");
67   return ACE_OS::msgrcv (this->internal_id_, (void *) &mb,
68                          length, type, mflags);
71 ACE_INLINE int
72 ACE_SV_Message_Queue::send (const ACE_SV_Message &mb,
73                             int length,
74                             int mflags)
76   ACE_TRACE ("ACE_SV_Message_Queue::send");
77   return ACE_OS::msgsnd (this->internal_id_, (void *) &mb,
78                          length, mflags);
81 ACE_END_VERSIONED_NAMESPACE_DECL