View Javadoc

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  import java.io.DataInput;
22  import java.io.IOException;
23  
24  /***
25   * Allows instances implementing Packet to read from a DataOutputStream
26   */
27  
28  public interface PacketReader {
29  
30      /***
31       * Return the type of Packet
32       * 
33       * @return integer representation of the type of Packet
34       */
35  
36      public int getPacketType();
37  
38      /***
39       * @param packetType
40       * @return true if this PacketReader can a Packet of this type
41       */
42      public boolean canRead(int packetType);
43  
44      /***
45       * @return a new Packet instance
46       */
47  
48      public Packet createPacket();
49  
50      /***
51       * build a Packet instance from the data input stream
52       *
53       * @param packet A Packet object
54       * @param dataIn the data input stream to build the packet from
55       * @throws IOException
56       */
57  
58      public void buildPacket(Packet packet, DataInput dataIn) throws IOException;
59  
60      /***
61       * Deserailizes a Packet from a byte array
62       *
63       * @param data
64       * @return the deserialized Packet
65       * @throws IOException
66       */
67  
68      public Packet readPacketFromByteArray(byte[] data) throws IOException;
69  
70  }