Apache Qpid - AMQP Messaging for Java JMS, C++, Python, Ruby, and .NET Apache Qpid Documentation
DeliveryProperties.h
Go to the documentation of this file.
1 #ifndef QPID_FRAMING_DELIVERYPROPERTIES_H
2 #define QPID_FRAMING_DELIVERYPROPERTIES_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 DeliveryProperties {
40  uint8_t priority;
41  uint8_t deliveryMode;
42  uint64_t ttl;
43  uint64_t timestamp;
44  uint64_t expiration;
45  std::string exchange;
46  std::string routingKey;
47  std::string resumeId;
48  uint64_t resumeTtl;
49  uint16_t flags;
50 public:
51  static const uint16_t TYPE = 1025;
53  bool _discardUnroutable,
54  bool _immediate,
55  bool _redelivered,
56  uint8_t _priority,
57  uint8_t _deliveryMode,
58  uint64_t _ttl,
59  uint64_t _timestamp,
60  uint64_t _expiration,
61  const std::string& _exchange,
62  const std::string& _routingKey,
63  const std::string& _resumeId,
64  uint64_t _resumeTtl) :
65  priority(_priority),
66  deliveryMode(_deliveryMode),
67  ttl(_ttl),
68  timestamp(_timestamp),
69  expiration(_expiration),
70  exchange(_exchange),
71  routingKey(_routingKey),
72  resumeId(_resumeId),
73  resumeTtl(_resumeTtl),
74  flags(0){
75  setDiscardUnroutable(_discardUnroutable);
76  setImmediate(_immediate);
77  setRedelivered(_redelivered);
78  flags |= (1 << 11);
79  flags |= (1 << 12);
80  flags |= (1 << 13);
81  flags |= (1 << 14);
82  flags |= (1 << 15);
83  flags |= (1 << 0);
84  flags |= (1 << 1);
85  flags |= (1 << 2);
86  flags |= (1 << 3);
87  if (exchange.size() >= 256) throw IllegalArgumentException("Value for exchange is too large");
88  if (routingKey.size() >= 256) throw IllegalArgumentException("Value for routingKey is too large");
89  if (resumeId.size() >= 65536) throw IllegalArgumentException("Value for resumeId is too large");
90  }
91  DeliveryProperties() : priority(0), deliveryMode(0), ttl(0), timestamp(0), expiration(0), resumeTtl(0), flags(0) {}
92 
93  QPID_COMMON_EXTERN void setDiscardUnroutable(bool _discardUnroutable);
94  QPID_COMMON_EXTERN bool getDiscardUnroutable() const;
95  QPID_COMMON_EXTERN void setImmediate(bool _immediate);
96  QPID_COMMON_EXTERN bool getImmediate() const;
97  QPID_COMMON_EXTERN void setRedelivered(bool _redelivered);
98  QPID_COMMON_EXTERN bool getRedelivered() const;
99  QPID_COMMON_EXTERN void setPriority(uint8_t _priority);
100  QPID_COMMON_EXTERN uint8_t getPriority() const;
101  QPID_COMMON_EXTERN bool hasPriority() const;
102  QPID_COMMON_EXTERN void clearPriorityFlag();
103  QPID_COMMON_EXTERN void setDeliveryMode(uint8_t _deliveryMode);
104  QPID_COMMON_EXTERN uint8_t getDeliveryMode() const;
105  QPID_COMMON_EXTERN bool hasDeliveryMode() const;
106  QPID_COMMON_EXTERN void clearDeliveryModeFlag();
107  QPID_COMMON_EXTERN void setTtl(uint64_t _ttl);
108  QPID_COMMON_EXTERN uint64_t getTtl() const;
109  QPID_COMMON_EXTERN bool hasTtl() const;
110  QPID_COMMON_EXTERN void clearTtlFlag();
111  QPID_COMMON_EXTERN void setTimestamp(uint64_t _timestamp);
112  QPID_COMMON_EXTERN uint64_t getTimestamp() const;
113  QPID_COMMON_EXTERN bool hasTimestamp() const;
114  QPID_COMMON_EXTERN void clearTimestampFlag();
115  QPID_COMMON_EXTERN void setExpiration(uint64_t _expiration);
116  QPID_COMMON_EXTERN uint64_t getExpiration() const;
117  QPID_COMMON_EXTERN bool hasExpiration() const;
118  QPID_COMMON_EXTERN void clearExpirationFlag();
119  QPID_COMMON_EXTERN void setExchange(const std::string& _exchange);
120  QPID_COMMON_EXTERN const std::string& getExchange() const;
121  QPID_COMMON_EXTERN bool hasExchange() const;
122  QPID_COMMON_EXTERN void clearExchangeFlag();
123  QPID_COMMON_EXTERN void setRoutingKey(const std::string& _routingKey);
124  QPID_COMMON_EXTERN const std::string& getRoutingKey() const;
125  QPID_COMMON_EXTERN bool hasRoutingKey() const;
126  QPID_COMMON_EXTERN void clearRoutingKeyFlag();
127  QPID_COMMON_EXTERN void setResumeId(const std::string& _resumeId);
128  QPID_COMMON_EXTERN const std::string& getResumeId() const;
129  QPID_COMMON_EXTERN bool hasResumeId() const;
130  QPID_COMMON_EXTERN void clearResumeIdFlag();
131  QPID_COMMON_EXTERN void setResumeTtl(uint64_t _resumeTtl);
132  QPID_COMMON_EXTERN uint64_t getResumeTtl() const;
133  QPID_COMMON_EXTERN bool hasResumeTtl() const;
134  QPID_COMMON_EXTERN void clearResumeTtlFlag();
135  QPID_COMMON_EXTERN friend std::ostream& operator<<(std::ostream&, const DeliveryProperties&);
136  QPID_COMMON_EXTERN void encode(Buffer&) const;
137  QPID_COMMON_EXTERN void decode(Buffer&, uint32_t=0);
138  QPID_COMMON_EXTERN void encodeStructBody(Buffer&) const;
139  QPID_COMMON_EXTERN void decodeStructBody(Buffer&, uint32_t=0);
140  QPID_COMMON_EXTERN uint32_t encodedSize() const;
141  QPID_COMMON_EXTERN uint32_t bodySize() const;
142  QPID_COMMON_EXTERN void print(std::ostream& out) const;
143 }; /* class DeliveryProperties */
144 
145 }}
146 #endif
DeliveryProperties(bool _discardUnroutable, bool _immediate, bool _redelivered, uint8_t _priority, uint8_t _deliveryMode, uint64_t _ttl, uint64_t _timestamp, uint64_t _expiration, const std::string &_exchange, const std::string &_routingKey, const std::string &_resumeId, uint64_t _resumeTtl)
unsigned char uint8_t
Definition: IntegerTypes.h:24
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
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