001 /** 002 * 003 * Copyright 2004 Protique Ltd 004 * 005 * Licensed under the Apache License, Version 2.0 (the "License"); 006 * you may not use this file except in compliance with the License. 007 * You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 * 017 **/ 018 019 020 package org.activemq.io.impl; 021 import java.io.DataInput; 022 import java.io.IOException; 023 import org.activemq.message.ActiveMQDestination; 024 import org.activemq.message.ConsumerInfo; 025 import org.activemq.message.Packet; 026 027 /** 028 * Reads a ConsumerInfo object from a Stream 029 */ 030 031 public class ConsumerInfoReader extends AbstractPacketReader { 032 033 /** 034 * Return the type of Packet 035 * 036 * @return integer representation of the type of Packet 037 */ 038 039 public int getPacketType() { 040 return Packet.CONSUMER_INFO; 041 } 042 043 /** 044 * @return a new Packet instance 045 */ 046 047 public Packet createPacket() { 048 return new ConsumerInfo(); 049 } 050 051 052 /** 053 * build a Packet instance from the data input stream 054 * 055 * @param packet A Packet object 056 * @param dataIn the data input stream to build the packet from 057 * @throws IOException 058 */ 059 060 public void buildPacket(Packet packet, DataInput dataIn) throws IOException { 061 super.buildPacket(packet, dataIn); 062 ConsumerInfo info = (ConsumerInfo) packet; 063 info.setConsumerId(dataIn.readUTF()); 064 info.setClientId(dataIn.readUTF()); 065 info.setSessionId(dataIn.readShort()); 066 info.setSelector(dataIn.readUTF()); 067 info.setConsumerName(dataIn.readUTF()); 068 info.setConsumerNo(dataIn.readInt()); 069 info.setPrefetchNumber(dataIn.readShort()); 070 info.setStartTime(dataIn.readLong()); 071 info.setStarted(dataIn.readBoolean()); 072 info.setReceiptRequired(dataIn.readBoolean()); 073 info.setNoLocal(dataIn.readBoolean()); 074 info.setBrowser(dataIn.readBoolean()); 075 info.setDestination(ActiveMQDestination.readFromStream(dataIn)); 076 } 077 078 079 }