Package network

Source Code of network.ConnectionReader

package network;

import java.io.DataInputStream;
import java.io.IOException;

import datatypes.MCString;

import exceptions.MCConnectionException;

public class ConnectionReader {
 
 
  private DataInputStream di;
 
  public ConnectionReader(DataInputStream di) {
    this.di = di;
  }
 
 
  public synchronized int read() throws MCConnectionException {
    try {
      return di.read();
    } catch (IOException e) {
      throw new MCConnectionException();
    }
  }
 
  public synchronized boolean readBoolean() throws MCConnectionException {
    try {
      return di.read() == 1;
    } catch (IOException e) {
      throw new MCConnectionException();
    }
  }
 
 
 
 
  public synchronized short readShort() throws MCConnectionException {
    try {
      return di.readShort();
    } catch (IOException e) {
      throw new MCConnectionException();
    }
  }
 
 
 
 
 
  public synchronized int readInt() throws MCConnectionException {
    try {
      return di.readInt();
    } catch (IOException e) {
      throw new MCConnectionException();
    }
  }
 
  public synchronized float readFloat() throws MCConnectionException {
    try {
      return di.readFloat();
    } catch (IOException e) {
      throw new MCConnectionException();
    }
  }
 
 
 
 
  public synchronized double readDouble() throws MCConnectionException {
    try {
      return di.readDouble();
    } catch (IOException e) {
      throw new MCConnectionException();
    }
  }
 
  public synchronized Long readLong() throws MCConnectionException {
    try {
      return di.readLong();
    } catch (IOException e) {
      throw new MCConnectionException();
    }
  }
 
 
 
 
  public synchronized byte[] readBytes(int numberofbytes) throws MCConnectionException {
    byte[] bytes = new byte[numberofbytes];
    try {
      di.read(bytes);
      return bytes;
    } catch (IOException e) {
      throw new MCConnectionException();
    }
  }
 
  public synchronized String readString() throws MCConnectionException {
    //length * 2: UTF16 uses 2 bytes, the client just sends the number of tokens.
    int namelength = readShort() * 2;
    return MCString.fromBytes(readBytes(namelength));
  }
 

 
 
  /**
   * Skip some bytes from the inputbuffer.
   * Bytes can be skipped if they are unused by the server.
   * It should be a bit faster then putting the values into
   * memory.
   * @param i The number of bytes to skip.
   * @throws MCConnectionException
   */
  public void skipBytes(int i) throws MCConnectionException {
    try {
      di.skipBytes(8);
    } catch (IOException e) {
      throw new MCConnectionException();
    }
  }
}
TOP

Related Classes of network.ConnectionReader

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.