summaryrefslogtreecommitdiff
path: root/cpp/broker/inc/Queue.h
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2006-10-16 13:50:26 +0000
committerAlan Conway <aconway@apache.org>2006-10-16 13:50:26 +0000
commit8a6ab3aa61d441b9210c05c84dc9998acfc38737 (patch)
tree1eb9d7f39b5c2d04a85a1f66caef3d398567b740 /cpp/broker/inc/Queue.h
parent9a808fb13aba243d41bbdab75158dae5939a80a4 (diff)
downloadqpid-python-8a6ab3aa61d441b9210c05c84dc9998acfc38737.tar.gz
Build system reorg, see README and Makefile comments for details.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@464494 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/broker/inc/Queue.h')
-rw-r--r--cpp/broker/inc/Queue.h106
1 files changed, 0 insertions, 106 deletions
diff --git a/cpp/broker/inc/Queue.h b/cpp/broker/inc/Queue.h
deleted file mode 100644
index 2229ba6235..0000000000
--- a/cpp/broker/inc/Queue.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- *
- * Copyright (c) 2006 The Apache Software Foundation
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-#ifndef _Queue_
-#define _Queue_
-
-#include <vector>
-#include <queue>
-#include "memory.h"
-#include "apr_time.h"
-#include "amqp_types.h"
-#include "Binding.h"
-#include "ConnectionToken.h"
-#include "Consumer.h"
-#include "Message.h"
-#include "MonitorImpl.h"
-
-namespace qpid {
- namespace broker {
-
- /**
- * Thrown when exclusive access would be violated.
- */
- struct ExclusiveAccessException{};
-
- /**
- * The brokers representation of an amqp queue. Messages are
- * delivered to a queue from where they can be dispatched to
- * registered consumers or be stored until dequeued or until one
- * or more consumers registers.
- */
- class Queue{
- const string name;
- const u_int32_t autodelete;
- const bool durable;
- const ConnectionToken* const owner;
- std::vector<Consumer*> consumers;
- std::queue<Binding*> bindings;
- std::queue<Message::shared_ptr> messages;
- bool queueing;
- bool dispatching;
- int next;
- mutable qpid::concurrent::MonitorImpl lock;
- apr_time_t lastUsed;
- Consumer* exclusive;
-
- bool startDispatching();
- bool dispatch(Message::shared_ptr& msg);
-
- public:
-
- typedef std::tr1::shared_ptr<Queue> shared_ptr;
-
- typedef std::vector<shared_ptr> vector;
-
- Queue(const string& name, bool durable = false, u_int32_t autodelete = 0, const ConnectionToken* const owner = 0);
- ~Queue();
- /**
- * Informs the queue of a binding that should be cancelled on
- * destruction of the queue.
- */
- void bound(Binding* b);
- /**
- * Delivers a message to the queue from where it will be
- * dispatched to immediately to a consumer if one is
- * available or stored for dequeue or later dispatch if
- * not.
- */
- void deliver(Message::shared_ptr& msg);
- /**
- * Dispatch any queued messages providing there are
- * consumers for them. Only one thread can be dispatching
- * at any time, but this method (rather than the caller)
- * is responsible for ensuring that.
- */
- void dispatch();
- void consume(Consumer* c, bool exclusive = false);
- void cancel(Consumer* c);
- Message::shared_ptr dequeue();
- u_int32_t purge();
- u_int32_t getMessageCount() const;
- u_int32_t getConsumerCount() const;
- inline const string& getName() const { return name; }
- inline const bool isExclusiveOwner(const ConnectionToken* const o) const { return o == owner; }
- inline bool hasExclusiveConsumer() const { return exclusive; }
- bool canAutoDelete() const;
- };
- }
-}
-
-
-#endif