1 /*
2 * hunt-proton: AMQP Protocol library for D programming language.
3 *
4 * Copyright (C) 2018-2019 HuntLabs
5 *
6 * Website: https://www.huntlabs.net/
7 *
8 * Licensed under the Apache-2.0 License.
9 *
10 */
11
12
13 module hunt.proton.amqp.transport.Transfer;
14
15 import hunt.logging;
16 import hunt.proton.amqp.Binary;
17 import hunt.proton.amqp.UnsignedInteger;
18 import hunt.proton.amqp.transport.FrameBody;
19 import hunt.proton.amqp.transport.ReceiverSettleMode;
20 import hunt.proton.amqp.transport.DeliveryState;
21 import hunt.Boolean;
22
23 class Transfer : FrameBody
24 {
25 private UnsignedInteger _handle;
26 private UnsignedInteger _deliveryId;
27 private Binary _deliveryTag;
28 private UnsignedInteger _messageFormat;
29 private Boolean _settled; //
30 private Boolean _more;
31 private ReceiverSettleMode _rcvSettleMode;
32 private DeliveryState _state;
33 private Boolean _resume;
34 private Boolean _aborted;
35 private Boolean _batchable;
36
37 this() {
38 // _settled = new Boolean(false);
39 _more = new Boolean(false);
40 _resume = new Boolean(false);
41 _aborted = new Boolean(false);
42 _batchable = new Boolean(false);
43 }
44
45 this(Transfer other)
46 {
47 this._handle = other.getHandle();
48 this._deliveryId = other.getDeliveryId();
49 this._deliveryTag = Binary.copy(other.getDeliveryTag());
50 this._messageFormat = other.getMessageFormat();
51 this._settled = other.getSettled();
52 this._more = other.getMore();
53 this._rcvSettleMode = other.getRcvSettleMode();
54 this._state = other.getState();
55 this._resume = other.getResume();
56 this._aborted = other.getAborted();
57 this._batchable = other.getBatchable();
58 }
59
60 public UnsignedInteger getHandle()
61 {
62 return _handle;
63 }
64
65 public void setHandle(UnsignedInteger handle)
66 {
67 if( handle is null )
68 {
69 logError("the handle field is mandatory");
70 }
71
72 _handle = handle;
73 }
74
75 public UnsignedInteger getDeliveryId()
76 {
77 return _deliveryId;
78 }
79
80 public void setDeliveryId(UnsignedInteger deliveryId)
81 {
82 _deliveryId = deliveryId;
83 }
84
85 public Binary getDeliveryTag()
86 {
87 return _deliveryTag;
88 }
89
90 public void setDeliveryTag(Binary deliveryTag)
91 {
92 _deliveryTag = deliveryTag;
93 }
94
95 public UnsignedInteger getMessageFormat()
96 {
97 return _messageFormat;
98 }
99
100 public void setMessageFormat(UnsignedInteger messageFormat)
101 {
102 _messageFormat = messageFormat;
103 }
104
105 public Boolean getSettled()
106 {
107 return _settled;
108 }
109
110 public void setSettled(Boolean settled)
111 {
112 _settled = settled;
113 }
114
115 public Boolean getMore()
116 {
117 return _more;
118 }
119
120 public void setMore(Boolean more)
121 {
122 _more = more;
123 }
124
125 public ReceiverSettleMode getRcvSettleMode()
126 {
127 return _rcvSettleMode;
128 }
129
130 public void setRcvSettleMode(ReceiverSettleMode rcvSettleMode)
131 {
132 _rcvSettleMode = rcvSettleMode;
133 }
134
135 public DeliveryState getState()
136 {
137 return _state;
138 }
139
140 public void setState(DeliveryState state)
141 {
142 _state = state;
143 }
144
145 public Boolean getResume()
146 {
147 return _resume;
148 }
149
150 public void setResume(Boolean resume)
151 {
152 _resume = resume;
153 }
154
155 public Boolean getAborted()
156 {
157 return _aborted;
158 }
159
160 public void setAborted(Boolean aborted)
161 {
162 _aborted = aborted;
163 }
164
165 public Boolean getBatchable()
166 {
167 return _batchable;
168 }
169
170 public void setBatchable(Boolean batchable)
171 {
172 _batchable = batchable;
173 }
174
175 //override
176 public void invoke(E)(FrameBodyHandler!E handler, Binary payload, E context)
177 {
178 handler.handleTransfer(this, payload, context);
179 }
180
181
182 public FrameBody copy()
183 {
184 return new Transfer(this);
185 }
186 }