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
|
/*
*
* 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.
*
*/
package org.apache.qpid.client.message;
import java.nio.ByteBuffer;
import java.util.ArrayList;
import java.util.List;
import org.apache.qpid.framing.AMQShortString;
import org.apache.qpidity.transport.DeliveryProperties;
import org.apache.qpidity.transport.Struct;
/**
* This class contains everything needed to process a JMS message. It assembles the deliver body, the content header and
* the content body/ies.
*
* Note that the actual work of creating a JMS message for the client code's use is done outside of the MINA dispatcher
* thread in order to minimise the amount of work done in the MINA dispatcher thread.
*/
public class UnprocessedMessage_0_10 extends UnprocessedMessage<Struct[],ByteBuffer>
{
private Struct[] _headers;
private String _replyToURL;
/** List of ContentBody instances. Due to fragmentation you don't know how big this will be in general */
private List<ByteBuffer> _bodies = new ArrayList<ByteBuffer>();
public UnprocessedMessage_0_10(int channelId,long deliveryId,AMQShortString consumerTag,AMQShortString exchange,AMQShortString routingKey,boolean redelivered)
{
super(channelId,deliveryId,consumerTag,exchange,routingKey,redelivered);
}
public void receiveBody(ByteBuffer body)
{
_bodies.add(body);
}
public void setContentHeader(Struct[] headers)
{
this._headers = headers;
for(Struct s: headers)
{
if (s instanceof DeliveryProperties)
{
DeliveryProperties props = (DeliveryProperties)s;
_exchange = new AMQShortString(props.getExchange());
_routingKey = new AMQShortString(props.getRoutingKey());
_redelivered = props.getRedelivered();
}
}
}
public Struct[] getContentHeader()
{
return _headers;
}
public List<ByteBuffer> getBodies()
{
return _bodies;
}
// additional 0_10 method
public String getReplyToURL()
{
return _replyToURL;
}
public void setReplyToURL(String url)
{
_replyToURL = url;
}
}
|