cdev-1.7.2n
This commit is contained in:
@@ -0,0 +1,240 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
// Copyright (c) 1994,1995 Southeastern Universities Research Association,
|
||||
// Continuous Electron Beam Accelerator Facility
|
||||
//
|
||||
// This software was developed under a United States Government license
|
||||
// described in the NOTICE file included as part of this distribution.
|
||||
//
|
||||
// Jefferson Lab HPC Group, 12000 Jefferson Ave., Newport News, VA 23606
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// Description:
|
||||
// rsvcDataInputStream that converts a byte stream into a rsvcData
|
||||
//
|
||||
// Author:
|
||||
// Jie Chen
|
||||
// Jefferson Lab HPC Group
|
||||
//
|
||||
// Revision History:
|
||||
// $Log: rsvcDataInputStream.java,v $
|
||||
// Revision 1.1.1.1 2000/05/23 15:12:50 pal
|
||||
// cdev_psi_1.7.2
|
||||
//
|
||||
// Revision 1.1 1999/10/18 17:12:41 chen
|
||||
// *** empty log message ***
|
||||
//
|
||||
//
|
||||
//
|
||||
import java.io.*;
|
||||
import java.math.*;
|
||||
|
||||
public class rsvcDataInputStream
|
||||
{
|
||||
// for 32 bit machine
|
||||
public static final int _RSVC_STREAM_BYTE_UNIT = 4;
|
||||
|
||||
/**
|
||||
* Return a long word (32 bit) aligned size from original size
|
||||
*/
|
||||
public static final int _RSVC_RNDUP (int x)
|
||||
{
|
||||
return ((x + _RSVC_STREAM_BYTE_UNIT - 1)/_RSVC_STREAM_BYTE_UNIT)
|
||||
* _RSVC_STREAM_BYTE_UNIT;
|
||||
}
|
||||
|
||||
// underlying data output stream
|
||||
private DataInputStream input = null;
|
||||
|
||||
/**
|
||||
* Construct a data output stream
|
||||
*/
|
||||
public rsvcDataInputStream (InputStream stream)
|
||||
{
|
||||
try {
|
||||
input = new DataInputStream (stream);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a single byte char from stream
|
||||
*/
|
||||
public byte readByte () throws IOException
|
||||
{
|
||||
int tmp;
|
||||
try {
|
||||
tmp = input.readInt ();
|
||||
}catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
return (byte)tmp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a value of short from the stream
|
||||
*/
|
||||
public short readShort () throws IOException
|
||||
{
|
||||
int tmp;
|
||||
try {
|
||||
tmp = input.readInt ();
|
||||
}catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
return (short)tmp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a value of int from stream
|
||||
*/
|
||||
public int readInt () throws IOException
|
||||
{
|
||||
int tmp;
|
||||
try {
|
||||
tmp = input.readInt ();
|
||||
}catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a value of long from stream
|
||||
*/
|
||||
public long readLong () throws IOException
|
||||
{
|
||||
long tmp;
|
||||
try {
|
||||
tmp = input.readLong ();
|
||||
}catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Read a value of float from stream
|
||||
*/
|
||||
public float readFloat () throws IOException
|
||||
{
|
||||
float tmp;
|
||||
try {
|
||||
tmp = input.readFloat ();
|
||||
}catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Read a value of double to stream
|
||||
*/
|
||||
public double readDouble () throws IOException
|
||||
{
|
||||
double tmp;
|
||||
try {
|
||||
tmp = input.readDouble ();
|
||||
}catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
return tmp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a string as series of byte using default encoding
|
||||
*/
|
||||
public String readString () throws IOException
|
||||
{
|
||||
int len, rlen, i;
|
||||
|
||||
// first find out str size
|
||||
try {
|
||||
len = input.readInt ();
|
||||
}catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
|
||||
// readout next bytes of strlen
|
||||
byte[] tmp = new byte[len];
|
||||
try {
|
||||
input.readFully (tmp, 0, len);
|
||||
}catch (IOException e) {
|
||||
throw e;
|
||||
}
|
||||
|
||||
// find out read length of this string by looking for the first 0
|
||||
// in this byte array
|
||||
rlen = 0;
|
||||
for (i = 0; i < len; i++) {
|
||||
if (tmp[i] == 0)
|
||||
break;
|
||||
}
|
||||
rlen = i;
|
||||
|
||||
return new String (tmp, 0, rlen);
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a series of byte
|
||||
*/
|
||||
public byte[] readBytes () throws IOException
|
||||
{
|
||||
int len;
|
||||
|
||||
try {
|
||||
len = input.readInt();
|
||||
}catch (IOException e){
|
||||
throw e;
|
||||
}
|
||||
|
||||
byte[] result = new byte[len];
|
||||
try {
|
||||
input.readFully (result, 0, len);
|
||||
}catch (IOException e){
|
||||
throw e;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Read a number of bytes: blocked until all bytes are read
|
||||
*/
|
||||
public byte[] readBytes (int len) throws IOException
|
||||
{
|
||||
byte[] result = new byte[len];
|
||||
try {
|
||||
input.readFully (result, 0, len);
|
||||
}catch (IOException e){
|
||||
throw e;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Read a time stamp from the stream
|
||||
*/
|
||||
public rsvcTimeStamp readTimeStamp () throws IOException
|
||||
{
|
||||
rsvcTimeStamp ts = new rsvcTimeStamp ();
|
||||
|
||||
try {
|
||||
ts.secPastEpoch = input.readInt();
|
||||
}catch (IOException e){
|
||||
throw e;
|
||||
}
|
||||
|
||||
try{
|
||||
ts.nsec = input.readInt();
|
||||
}catch (IOException e){
|
||||
throw e;
|
||||
}
|
||||
return ts;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user