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 * @return an aproximation of the current memory used by this instance
77 */
78 public int getMemoryUsage();
79
80 /***
81 * Set a hint about how mujch memory this packet is consuming
82 * @param newMemoryUsage
83 */
84 public void setMemoryUsage(int newMemoryUsage);
85
86 /***
87 * Increment reference count for bounded memory collections
88 * @return the incremented reference value
89 * @see org.codehaus.activemq.message.util.MemoryBoundedQueue
90 */
91 public int incrementMemoryReferenceCount();
92
93
94 /***
95 * Decrement reference count for bounded memory collections
96 * @return the decremented reference value
97 * @see org.codehaus.activemq.message.util.MemoryBoundedQueue
98 */
99 public int decrementMemoryReferenceCount();
100
101 /***
102 * @return the current reference count for bounded memory collections
103 * @see org.codehaus.activemq.message.util.MemoryBoundedQueue
104 */
105 public int getMemoryUsageReferenceCount();
106
107 /***
108 * ActiveMQMessage object
109 */
110 public static final int ACTIVEMQ_MESSAGE = 6;
111
112 /***
113 * ActiveMQTextMessage object
114 */
115
116 public static final int ACTIVEMQ_TEXT_MESSAGE = 7;
117
118 /***
119 * ActiveMQObjectMessage object
120 */
121
122 public static final int ACTIVEMQ_OBJECT_MESSAGE = 8;
123
124 /***
125 * ActiveMQBytesMessage
126 */
127
128 public static final int ACTIVEMQ_BYTES_MESSAGE = 9;
129
130 /***
131 * ActiveMQStreamMessage object
132 */
133
134 public static final int ACTIVEMQ_STREAM_MESSAGE = 10;
135
136 /***
137 * ActiveMQMapMessage object
138 */
139
140 public static final int ACTIVEMQ_MAP_MESSAGE = 11;
141
142 /***
143 * Message acknowledge
144 */
145 public static final int ACTIVEMQ_MSG_ACK = 15;
146
147 /***
148 * Recipt message
149 */
150
151 public static final int RECEIPT_INFO = 16;
152
153 /***
154 * Consumer Infomation
155 */
156
157 public static final int CONSUMER_INFO = 17;
158
159 /***
160 * Producer Info
161 */
162
163 public static final int PRODUCER_INFO = 18;
164
165 /***
166 * Transaction info
167 */
168
169 public static final int TRANSACTION_INFO = 19;
170
171 /***
172 * XA Transaction info
173 */
174
175 public static final int XA_TRANSACTION_INFO = 20;
176
177 /***
178 * Broker infomation message
179 */
180
181 public static final int ACTIVEMQ_BROKER_INFO = 21;
182
183 /***
184 * Connection info message
185 */
186
187 public static final int ACTIVEMQ_CONNECTION_INFO = 22;
188
189
190 /***
191 * Session Info message
192 */
193 public static final int SESSION_INFO = 23;
194
195 /***
196 * Durable Unsubscribe message
197 */
198
199 public static final int DURABLE_UNSUBSCRIBE = 24;
200
201
202 /***
203 * A receipt with an Object reponse.
204 */
205 public static final int RESPONSE_RECEIPT_INFO = 25;
206
207
208 /***
209 * A receipt with an Integer reponse.
210 */
211 public static final int INT_RESPONSE_RECEIPT_INFO = 26;
212
213 /***
214 * Infomation about the Capacity for more Messages for either Connection/Broker
215 */
216 public static final int CAPACITY_INFO = 27;
217
218 /***
219 * Request infomation about the current capacity
220 */
221 public static final int CAPACITY_INFO_REQUEST = 28;
222
223
224 }