Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET Apache Qpid Documentation
SubscriptionManager.h
Go to the documentation of this file.
1 #ifndef QPID_CLIENT_SUBSCRIPTIONMANAGER_H
2 #define QPID_CLIENT_SUBSCRIPTIONMANAGER_H
3 
4 /*
5  *
6  * Licensed to the Apache Software Foundation (ASF) under one
7  * or more contributor license agreements. See the NOTICE file
8  * distributed with this work for additional information
9  * regarding copyright ownership. The ASF licenses this file
10  * to you under the Apache License, Version 2.0 (the
11  * "License"); you may not use this file except in compliance
12  * with the License. You may obtain a copy of the License at
13  *
14  * http://www.apache.org/licenses/LICENSE-2.0
15  *
16  * Unless required by applicable law or agreed to in writing,
17  * software distributed under the License is distributed on an
18  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
19  * KIND, either express or implied. See the License for the
20  * specific language governing permissions and limitations
21  * under the License.
22  *
23  */
24 
25 #include "qpid/client/Session.h"
27 #include "qpid/sys/Runnable.h"
28 #include "qpid/sys/Thread.h"
31 #include "qpid/client/LocalQueue.h"
32 #include "qpid/client/Handle.h"
33 #include <string>
34 
35 namespace qpid {
36 namespace client {
37 
38 class SubscriptionManagerImpl;
39 
97 class QPID_CLIENT_CLASS_EXTERN SubscriptionManager : public sys::Runnable, public Handle<SubscriptionManagerImpl>
98 {
99  public:
102  QPID_CLIENT_EXTERN SubscriptionManager(const SubscriptionManager&);
103  QPID_CLIENT_EXTERN ~SubscriptionManager();
104  QPID_CLIENT_EXTERN SubscriptionManager& operator=(const SubscriptionManager&);
105 
117  QPID_CLIENT_EXTERN Subscription subscribe(MessageListener& listener,
118  const std::string& queue,
119  const SubscriptionSettings& settings,
120  const std::string& name=std::string());
121 
132  QPID_CLIENT_EXTERN Subscription subscribe(LocalQueue& localQueue,
133  const std::string& queue,
134  const SubscriptionSettings& settings,
135  const std::string& name=std::string());
136 
148  QPID_CLIENT_EXTERN Subscription subscribe(MessageListener& listener,
149  const std::string& queue,
150  const std::string& name=std::string());
151 
161  QPID_CLIENT_EXTERN Subscription subscribe(LocalQueue& localQueue,
162  const std::string& queue,
163  const std::string& name=std::string());
164 
165 
174  QPID_CLIENT_EXTERN bool get(Message& result, const std::string& queue, sys::Duration timeout=0);
175 
184  QPID_CLIENT_EXTERN Message get(const std::string& queue, sys::Duration timeout=sys::TIME_INFINITE);
185 
189  QPID_CLIENT_EXTERN Subscription getSubscription(const std::string& name) const;
190 
192  QPID_CLIENT_EXTERN void cancel(const std::string& name);
193 
198  QPID_CLIENT_EXTERN void run();
199 
204  QPID_CLIENT_EXTERN void start();
205 
209  QPID_CLIENT_EXTERN void wait();
210 
215  QPID_CLIENT_EXTERN void setAutoStop(bool set=true);
216 
218  QPID_CLIENT_EXTERN void stop();
219 
220  static const uint32_t UNLIMITED=0xFFFFFFFF;
221 
223  QPID_CLIENT_EXTERN void setFlowControl(const std::string& name, const FlowControl& flow);
224 
231  QPID_CLIENT_EXTERN void setFlowControl(const std::string& name, uint32_t messages, uint32_t bytes, bool window=true);
232 
236  QPID_CLIENT_EXTERN void setDefaultSettings(const SubscriptionSettings& s);
237 
241  QPID_CLIENT_EXTERN const SubscriptionSettings& getDefaultSettings() const;
242 
246  QPID_CLIENT_EXTERN SubscriptionSettings& getDefaultSettings();
247 
256  QPID_CLIENT_EXTERN void setFlowControl(uint32_t messages, uint32_t bytes, bool window=true);
257 
262  QPID_CLIENT_EXTERN void setAcceptMode(AcceptMode mode);
263 
267  QPID_CLIENT_EXTERN void setAcquireMode(AcquireMode mode);
268 
269  QPID_CLIENT_EXTERN void registerFailoverHandler ( boost::function<void ()> fh );
270 
271  QPID_CLIENT_EXTERN Session getSession() const;
272 
273  SubscriptionManager(SubscriptionManagerImpl*);
274 
275  private:
276  typedef SubscriptionManagerImpl Impl;
277  friend class PrivateImplRef<SubscriptionManager>;
278 };
279 
281 class AutoCancel {
282  public:
283  AutoCancel(SubscriptionManager&, const std::string& tag);
284  ~AutoCancel();
285  private:
286  SubscriptionManager& sm;
287  std::string tag;
288 };
289 
290 }} // namespace qpid::client
291 
292 #endif

Qpid C++ API Reference
Generated on Thu Sep 26 2013 for Qpid C++ Client API by doxygen 1.8.3.1