blob: 248014aefb2091fc3c47b7ba8b547c165b335f2f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
/*
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*
*/
#include <amqp_types.h>
#include <Buffer.h>
#include <FieldTable.h>
#include <HeaderProperties.h>
#ifndef _BasicHeaderProperties_
#define _BasicHeaderProperties_
namespace qpid {
namespace framing {
enum DeliveryMode { TRANSIENT = 1, PERSISTENT = 2};
class BasicHeaderProperties : public HeaderProperties
{
string contentType;
string contentEncoding;
FieldTable headers;
DeliveryMode deliveryMode;
uint8_t priority;
string correlationId;
string replyTo;
string expiration;
string messageId;
uint64_t timestamp;
string type;
string userId;
string appId;
string clusterId;
uint16_t getFlags() const;
public:
BasicHeaderProperties();
virtual ~BasicHeaderProperties();
virtual uint32_t size() const;
virtual void encode(Buffer& buffer) const;
virtual void decode(Buffer& buffer, uint32_t size);
virtual uint8_t classId() { return BASIC; }
string getContentType() const { return contentType; }
string getContentEncoding() const { return contentEncoding; }
FieldTable& getHeaders() { return headers; }
const FieldTable& getHeaders() const { return headers; }
DeliveryMode getDeliveryMode() const { return deliveryMode; }
uint8_t getPriority() const { return priority; }
string getCorrelationId() const {return correlationId; }
string getReplyTo() const { return replyTo; }
string getExpiration() const { return expiration; }
string getMessageId() const {return messageId; }
uint64_t getTimestamp() const { return timestamp; }
string getType() const { return type; }
string getUserId() const { return userId; }
string getAppId() const { return appId; }
string getClusterId() const { return clusterId; }
void setContentType(const string& _type){ contentType = _type; }
void setContentEncoding(const string& encoding){ contentEncoding = encoding; }
void setHeaders(const FieldTable& _headers){ headers = _headers; }
void setDeliveryMode(DeliveryMode mode){ deliveryMode = mode; }
void setPriority(uint8_t _priority){ priority = _priority; }
void setCorrelationId(const string& _correlationId){ correlationId = _correlationId; }
void setReplyTo(const string& _replyTo){ replyTo = _replyTo;}
void setExpiration(const string& _expiration){ expiration = _expiration; }
void setMessageId(const string& _messageId){ messageId = _messageId; }
void setTimestamp(uint64_t _timestamp){ timestamp = _timestamp; }
void setType(const string& _type){ type = _type; }
void setUserId(const string& _userId){ userId = _userId; }
void setAppId(const string& _appId){appId = _appId; }
void setClusterId(const string& _clusterId){ clusterId = _clusterId; }
/** \internal
* Template to copy between types like BasicHeaderProperties.
*/
template <class T, class U>
static void copy(T& to, const U& from) {
to.setContentType(from.getContentType());
to.setContentEncoding(from.getContentEncoding());
to.setHeaders(from.getHeaders());
to.setDeliveryMode(from.getDeliveryMode());
to.setPriority(from.getPriority());
to.setCorrelationId(from.getCorrelationId());
to.setReplyTo(from.getReplyTo());
to.setExpiration(from.getExpiration());
to.setMessageId(from.getMessageId());
to.setTimestamp(from.getTimestamp());
to.setType(from.getType());
to.setUserId(from.getUserId());
to.setAppId(from.getAppId());
to.setClusterId(from.getClusterId());
}
};
}}
#endif
|