summaryrefslogtreecommitdiff
path: root/ACE/ace
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2023-04-07 08:23:37 +0200
committerGitHub <noreply@github.com>2023-04-07 08:23:37 +0200
commit9729442488fc7c4681abcf58818a3da11bb367e0 (patch)
tree55593c66ee23a027dfff1d2b8cf692f53b7b0572 /ACE/ace
parentb50aba0fdce1069b9aa9b1baac9adee396663779 (diff)
parenta78936549748c2dbb9e751d4d21baa532228f1df (diff)
downloadATCD-9729442488fc7c4681abcf58818a3da11bb367e0.tar.gz
Merge pull request #2011 from esohns/message_queue_ex_get_queue
ACE_Message_Queue_Ex: support accessing the underlying queue (e.g. for iteration)
Diffstat (limited to 'ACE/ace')
-rw-r--r--ACE/ace/Message_Queue_T.cpp7
-rw-r--r--ACE/ace/Message_Queue_T.h5
2 files changed, 12 insertions, 0 deletions
diff --git a/ACE/ace/Message_Queue_T.cpp b/ACE/ace/Message_Queue_T.cpp
index 76ff7aa38fa..6ff89561fa5 100644
--- a/ACE/ace/Message_Queue_T.cpp
+++ b/ACE/ace/Message_Queue_T.cpp
@@ -691,6 +691,13 @@ ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::set_time_pol
this->queue_.set_time_policy (rhs);
}
+template <class ACE_MESSAGE_TYPE, ACE_SYNCH_DECL, class TIME_POLICY>
+ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> &
+ACE_Message_Queue_Ex<ACE_MESSAGE_TYPE, ACE_SYNCH_USE, TIME_POLICY>::queue ()
+{
+ return this->queue_;
+}
+
template <ACE_SYNCH_DECL, class TIME_POLICY>
ACE_Message_Queue_Iterator<ACE_SYNCH_USE, TIME_POLICY>::ACE_Message_Queue_Iterator (ACE_Message_Queue <ACE_SYNCH_USE, TIME_POLICY> &q)
: queue_ (q)
diff --git a/ACE/ace/Message_Queue_T.h b/ACE/ace/Message_Queue_T.h
index cfd3fdd43a6..f4be9145dde 100644
--- a/ACE/ace/Message_Queue_T.h
+++ b/ACE/ace/Message_Queue_T.h
@@ -1385,6 +1385,11 @@ public:
/// Dump the state of an object.
virtual void dump () const;
+ /// Support access to the underlying <Message_Queue>. Note that
+ /// manipulating the lower level queue directly may be hazardous (, but
+ /// necessary in some scenarios); be sure to lock the queue first.
+ ACE_Message_Queue<ACE_SYNCH_USE, TIME_POLICY> &queue ();
+
/// Declare the dynamic allocation hooks.
ACE_ALLOC_HOOK_DECLARE;