summaryrefslogtreecommitdiff
path: root/ace/SV_Message_Queue.i
diff options
context:
space:
mode:
Diffstat (limited to 'ace/SV_Message_Queue.i')
-rw-r--r--ace/SV_Message_Queue.i78
1 files changed, 78 insertions, 0 deletions
diff --git a/ace/SV_Message_Queue.i b/ace/SV_Message_Queue.i
new file mode 100644
index 00000000000..f896388232e
--- /dev/null
+++ b/ace/SV_Message_Queue.i
@@ -0,0 +1,78 @@
+/* -*- C++ -*- */
+// $Id$
+
+// SV_Message_Queue.i
+
+#include "ace/SV_Message_Queue.h"
+
+// Open a message queue using the <external_id>.
+
+inline int
+ACE_SV_Message_Queue::open (key_t external_id, int create, int perms)
+{
+ ACE_TRACE ("ACE_SV_Message_Queue::open");
+ return this->internal_id_ = ACE_OS::msgget (external_id, create | perms);
+}
+
+// What does it mean to close a message queue?!
+
+inline int
+ACE_SV_Message_Queue::close (void)
+{
+ ACE_TRACE ("ACE_SV_Message_Queue::close");
+ this->internal_id_ = -1;
+ return 1;
+}
+
+inline int
+ACE_SV_Message_Queue::control (int option, void *arg)
+{
+ ACE_TRACE ("ACE_SV_Message_Queue::control");
+ return ACE_OS::msgctl (this->internal_id_, option,
+ (msqid_ds *) arg);
+}
+
+inline int
+ACE_SV_Message_Queue::remove (void)
+{
+ ACE_TRACE ("ACE_SV_Message_Queue::remove");
+ int result = this->control (IPC_RMID);
+ this->internal_id_ = -1;
+ return result;
+}
+
+inline int
+ACE_SV_Message_Queue::get_id (void)
+{
+ ACE_TRACE ("ACE_SV_Message_Queue::get_id");
+ return this->internal_id_;
+}
+
+inline void
+ACE_SV_Message_Queue::set_id (int id)
+{
+ ACE_TRACE ("ACE_SV_Message_Queue::set_id");
+ this->internal_id_ = id;
+}
+
+inline int
+ACE_SV_Message_Queue::recv (ACE_SV_Message &mb,
+ int length,
+ long type,
+ int mflags)
+{
+ ACE_TRACE ("ACE_SV_Message_Queue::recv");
+ return ACE_OS::msgrcv (this->internal_id_, (void *) &mb,
+ length, type, mflags);
+}
+
+inline int
+ACE_SV_Message_Queue::send (const ACE_SV_Message &mb,
+ int length,
+ int mflags)
+{
+ ACE_TRACE ("ACE_SV_Message_Queue::send");
+ return ACE_OS::msgsnd (this->internal_id_, (void *) &mb,
+ length, mflags);
+}
+