1 /***
2 *
3 * Copyright 2004 Protique Ltd
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 **/
18
19 package org.codehaus.activemq.message;
20
21 /***
22 * Denotes an object that can be serialized/deserailized using a PacketReader or PacketWriter
23 */
24
25 public interface Packet {
26
27 /***
28 * Return the type of Packet
29 *
30 * @return integer representation of the type of Packet
31 */
32
33 public int getPacketType();
34
35 /***
36 * @return the unique id for this Packet
37 */
38
39 public String getId();
40
41 /***
42 * Set the unique id for this Packet
43 *
44 * @param newId
45 */
46
47 public void setId(String newId);
48
49 /***
50 * @return true if a Recipt is required
51 */
52 public boolean isReceiptRequired();
53
54 /***
55 * @return true if this is a Receipt
56 */
57 public boolean isReceipt();
58
59 /***
60 * Set if a Recipt if required on receiving this Packet
61 *
62 * @param value
63 */
64
65 public void setReceiptRequired(boolean value);
66
67 /***
68 * Retrieve if a JMS Message type or not
69 *
70 * @return true if it is a JMS Message
71 */
72 public boolean isJMSMessage();
73
74 /***
75 * Get a hint about how much memory this Packet is consuming
76 *
77 * @return an aproximation of the current memory used by this instance
78 */
79 public int getMemoryUsage();
80
81 /***
82 * Set a hint about how mujch memory this packet is consuming
83 *
84 * @param newMemoryUsage
85 */
86 public void setMemoryUsage(int newMemoryUsage);
87
88 /***
89 * Increment reference count for bounded memory collections
90 *
91 * @return the incremented reference value
92 * @see org.codehaus.activemq.message.util.MemoryBoundedQueue
93 */
94 public int incrementMemoryReferenceCount();
95
96
97 /***
98 * Decrement reference count for bounded memory collections
99 *
100 * @return the decremented reference value
101 * @see org.codehaus.activemq.message.util.MemoryBoundedQueue
102 */
103 public int decrementMemoryReferenceCount();
104
105 /***
106 * @return the current reference count for bounded memory collections
107 * @see org.codehaus.activemq.message.util.MemoryBoundedQueue
108 */
109 public int getMemoryUsageReferenceCount();
110
111 /***
112 * As the packet passes through the broker add the broker to the visited list
113 *
114 * @param brokerName the name of the broker
115 */
116 public void addBrokerVisited(String brokerName);
117
118
119 /***
120 * test to see if the named broker has already seen this packet
121 *
122 * @param brokerName the name of the broker
123 * @return true if the packet has visited the broker
124 */
125 public boolean hasVisited(String brokerName);
126
127 /***
128 * @return Returns the brokersVisited.
129 */
130 public String getBrokersVisitedAsString();
131
132
133 /***
134 * ActiveMQMessage object
135 */
136 public static final int ACTIVEMQ_MESSAGE = 6;
137
138 /***
139 * ActiveMQTextMessage object
140 */
141
142 public static final int ACTIVEMQ_TEXT_MESSAGE = 7;
143
144 /***
145 * ActiveMQObjectMessage object
146 */
147
148 public static final int ACTIVEMQ_OBJECT_MESSAGE = 8;
149
150 /***
151 * ActiveMQBytesMessage
152 */
153
154 public static final int ACTIVEMQ_BYTES_MESSAGE = 9;
155
156 /***
157 * ActiveMQStreamMessage object
158 */
159
160 public static final int ACTIVEMQ_STREAM_MESSAGE = 10;
161
162 /***
163 * ActiveMQMapMessage object
164 */
165
166 public static final int ACTIVEMQ_MAP_MESSAGE = 11;
167
168 /***
169 * Message acknowledge
170 */
171 public static final int ACTIVEMQ_MSG_ACK = 15;
172
173 /***
174 * Recipt message
175 */
176
177 public static final int RECEIPT_INFO = 16;
178
179 /***
180 * Consumer Infomation
181 */
182
183 public static final int CONSUMER_INFO = 17;
184
185 /***
186 * Producer Info
187 */
188
189 public static final int PRODUCER_INFO = 18;
190
191 /***
192 * Transaction info
193 */
194
195 public static final int TRANSACTION_INFO = 19;
196
197 /***
198 * XA Transaction info
199 */
200
201 public static final int XA_TRANSACTION_INFO = 20;
202
203 /***
204 * Broker infomation message
205 */
206
207 public static final int ACTIVEMQ_BROKER_INFO = 21;
208
209 /***
210 * Connection info message
211 */
212
213 public static final int ACTIVEMQ_CONNECTION_INFO = 22;
214
215
216 /***
217 * Session Info message
218 */
219 public static final int SESSION_INFO = 23;
220
221 /***
222 * Durable Unsubscribe message
223 */
224
225 public static final int DURABLE_UNSUBSCRIBE = 24;
226
227
228 /***
229 * A receipt with an Object reponse.
230 */
231 public static final int RESPONSE_RECEIPT_INFO = 25;
232
233
234 /***
235 * A receipt with an Integer reponse.
236 */
237 public static final int INT_RESPONSE_RECEIPT_INFO = 26;
238
239 /***
240 * Infomation about the Capacity for more Messages for either Connection/Broker
241 */
242 public static final int CAPACITY_INFO = 27;
243
244 /***
245 * Request infomation about the current capacity
246 */
247 public static final int CAPACITY_INFO_REQUEST = 28;
248
249 /***
250 * Infomation about the wire format expected
251 */
252 public static final int WIRE_FORMAT_INFO = 29;
253
254
255 }