Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET Apache Qpid Documentation
QueueQueryResult.h
Go to the documentation of this file.
1 #ifndef QPID_FRAMING_QUEUEQUERYRESULT_H
2 #define QPID_FRAMING_QUEUEQUERYRESULT_H
3 /*
4  *
5  * Licensed to the Apache Software Foundation (ASF) under one
6  * or more contributor license agreements. See the NOTICE file
7  * distributed with this work for additional information
8  * regarding copyright ownership. The ASF licenses this file
9  * to you under the Apache License, Version 2.0 (the
10  * "License"); you may not use this file except in compliance
11  * with the License. You may obtain a copy of the License at
12  *
13  * http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing,
16  * software distributed under the License is distributed on an
17  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
18  * KIND, either express or implied. See the License for the
19  * specific language governing permissions and limitations
20  * under the License.
21  *
22  */
23 
28 
29 
30 
31 #include <ostream>
32 #include "qpid/framing/amqp_types_full.h"
34 #include "qpid/CommonImportExport.h"
35 
36 namespace qpid {
37 namespace framing {
38 
39 class QPID_COMMON_CLASS_EXTERN QueueQueryResult {
40  std::string queue;
41  std::string alternateExchange;
42  FieldTable arguments;
43  uint32_t messageCount;
44  uint32_t subscriberCount;
45  uint16_t flags;
46 public:
47  static const uint16_t TYPE = 2049;
49  const std::string& _queue,
50  const std::string& _alternateExchange,
51  bool _durable,
52  bool _exclusive,
53  bool _autoDelete,
54  const FieldTable& _arguments,
55  uint32_t _messageCount,
56  uint32_t _subscriberCount) :
57  queue(_queue),
58  alternateExchange(_alternateExchange),
59  arguments(_arguments),
60  messageCount(_messageCount),
61  subscriberCount(_subscriberCount),
62  flags(0){
63  setDurable(_durable);
64  setExclusive(_exclusive);
65  setAutoDelete(_autoDelete);
66  flags |= (1 << 8);
67  flags |= (1 << 9);
68  flags |= (1 << 13);
69  flags |= (1 << 14);
70  flags |= (1 << 15);
71  if (queue.size() >= 256) throw IllegalArgumentException("Value for queue is too large");
72  if (alternateExchange.size() >= 256) throw IllegalArgumentException("Value for alternateExchange is too large");
73  }
74  QueueQueryResult() : messageCount(0), subscriberCount(0), flags(0) {}
75 
76  QPID_COMMON_EXTERN void setQueue(const std::string& _queue);
77  QPID_COMMON_EXTERN const std::string& getQueue() const;
78  QPID_COMMON_EXTERN bool hasQueue() const;
79  QPID_COMMON_EXTERN void clearQueueFlag();
80  QPID_COMMON_EXTERN void setAlternateExchange(const std::string& _alternateExchange);
81  QPID_COMMON_EXTERN const std::string& getAlternateExchange() const;
82  QPID_COMMON_EXTERN bool hasAlternateExchange() const;
83  QPID_COMMON_EXTERN void clearAlternateExchangeFlag();
84  QPID_COMMON_EXTERN void setDurable(bool _durable);
85  QPID_COMMON_EXTERN bool getDurable() const;
86  QPID_COMMON_EXTERN void setExclusive(bool _exclusive);
87  QPID_COMMON_EXTERN bool getExclusive() const;
88  QPID_COMMON_EXTERN void setAutoDelete(bool _autoDelete);
89  QPID_COMMON_EXTERN bool getAutoDelete() const;
90  QPID_COMMON_EXTERN void setArguments(const FieldTable& _arguments);
91  QPID_COMMON_EXTERN const FieldTable& getArguments() const;
92  QPID_COMMON_EXTERN FieldTable& getArguments();
93  QPID_COMMON_EXTERN bool hasArguments() const;
94  QPID_COMMON_EXTERN void clearArgumentsFlag();
95  QPID_COMMON_EXTERN void setMessageCount(uint32_t _messageCount);
96  QPID_COMMON_EXTERN uint32_t getMessageCount() const;
97  QPID_COMMON_EXTERN bool hasMessageCount() const;
98  QPID_COMMON_EXTERN void clearMessageCountFlag();
99  QPID_COMMON_EXTERN void setSubscriberCount(uint32_t _subscriberCount);
100  QPID_COMMON_EXTERN uint32_t getSubscriberCount() const;
101  QPID_COMMON_EXTERN bool hasSubscriberCount() const;
102  QPID_COMMON_EXTERN void clearSubscriberCountFlag();
103  QPID_COMMON_EXTERN friend std::ostream& operator<<(std::ostream&, const QueueQueryResult&);
104  QPID_COMMON_EXTERN void encode(Buffer&) const;
105  QPID_COMMON_EXTERN void decode(Buffer&, uint32_t=0);
106  QPID_COMMON_EXTERN void encodeStructBody(Buffer&) const;
107  QPID_COMMON_EXTERN void decodeStructBody(Buffer&, uint32_t=0);
108  QPID_COMMON_EXTERN uint32_t encodedSize() const;
109  QPID_COMMON_EXTERN uint32_t bodySize() const;
110  QPID_COMMON_EXTERN void print(std::ostream& out) const;
111 }; /* class QueueQueryResult */
112 
113 }}
114 #endif
std::ostream & operator<<(std::ostream &, TypeCode)
void decode(const Message &message, qpid::types::Variant::Map &map, const std::string &encoding=std::string())
Decodes message content into a Variant::Map.
unsigned int uint32_t
Definition: IntegerTypes.h:27
unsigned short uint16_t
Definition: IntegerTypes.h:25
QueueQueryResult(const std::string &_queue, const std::string &_alternateExchange, bool _durable, bool _exclusive, bool _autoDelete, const FieldTable &_arguments, uint32_t _messageCount, uint32_t _subscriberCount)
void encode(const qpid::types::Variant::Map &map, Message &message, const std::string &encoding=std::string())
Encodes a Variant::Map into a message.

Qpid C++ API Reference
Generated on Tue Oct 28 2014 for Qpid C++ Client API by doxygen 1.8.5