/*
* Created on Feb 22, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package de.desy.tine.server;
import java.io.ByteArrayOutputStream;
import java.io.DataInput;
import java.io.DataOutput;
import java.io.IOException;
import de.desy.tine.definitions.TErrorList;
import de.desy.tine.definitions.TFormat;
import de.desy.tine.io.TDataOutputStream;
import de.desy.tine.server.equipment.TEquipmentModuleFactory;
import de.desy.tine.server.logger.MsgLog;
import de.desy.tine.stringUtils.StringToBytes;
import de.desy.tine.structUtils.TStructDescription;
import de.desy.tine.structUtils.TStructIfc;
import de.desy.tine.structUtils.TStructRegistry;
// TODO Class documentation
/**
* \internal
*
* @author jwlg TODO Get information from server.
*/
public class TServerStatistics implements TStructIfc
{
TEquipmentModuleFactory myServer;
// private String fecName = ""; /* exported as 16-byte char */
private byte[] reserved = new byte[4]; /* TODO What is this? */
private int localtime;
private int starttime;
private int systemPollingRate;
private short numBkgTsks;
private short numTotalContracts;
private short numTotalClients;
private short numTargetContracts;
private short numTargetClients;
private short numConnections;
private int numConnectionTimeouts;
private int numConnectionArrivals;
private int numUdpPkts;
private int numTcpPkts;
private int numIpxPkts;
private int numSpxPkts;
private static TStructDescription myStructDsc;
static
{
createTaggedStructure();
}
public TServerStatistics(TEquipmentModuleFactory server)
{
myServer = server;
}
/**
* Constructs and registers the tagged structure description.
*/
private static void createTaggedStructure()
{
myStructDsc = new TStructDescription("AQS");
myStructDsc.beginDefinition();
myStructDsc.addField("fecName",TFormat.CF_TEXT, 16); // was 32!
myStructDsc.addField("reserved",TFormat.CF_BYTE, 4);
myStructDsc.addField("localtime", TFormat.CF_LONG, 1);
myStructDsc.addField("starttime", TFormat.CF_LONG, 1);
myStructDsc.addField("sysPollRate", TFormat.CF_LONG, 1);
myStructDsc.addField("numBkgTasks", TFormat.CF_SHORT, 1);
myStructDsc.addField("numContracts", TFormat.CF_SHORT, 1);
myStructDsc.addField("numClients", TFormat.CF_SHORT, 1);
myStructDsc.addField("numTgtCont", TFormat.CF_SHORT, 1);
myStructDsc.addField("numTgtCln", TFormat.CF_SHORT, 1);
myStructDsc.addField("numConnections", TFormat.CF_SHORT, 1);
myStructDsc.addField("numTimeouts", TFormat.CF_LONG, 1);
myStructDsc.addField("numArrivals", TFormat.CF_LONG, 1);
myStructDsc.addField("numUDPPkts", TFormat.CF_LONG, 1);
myStructDsc.addField("numTCPPkts", TFormat.CF_LONG, 1);
myStructDsc.addField("numIPXPkts", TFormat.CF_LONG, 1);
myStructDsc.addField("numSPSPkts", TFormat.CF_LONG, 1);
myStructDsc.setArraySize(1);
myStructDsc.endDefinition();
TStructRegistry.add(myStructDsc);
}
/**
* @return Returns the tagged structure description.
*/
public static TStructDescription getStructDescription()
{
return myStructDsc;
}
/**
* Convert structure to byte array.
*
* @return Returns a byte array.
*/
public byte[] toByteArray()
{
ByteArrayOutputStream bfout = new ByteArrayOutputStream();
TDataOutputStream dsout = new TDataOutputStream(bfout);
try
{
writeData(dsout);
dsout.close();
}
catch (Exception e)
{
e.printStackTrace();
MsgLog.log("TServerStatistics.toByteArray",e.toString(),TErrorList.code_failure,e,0);
}
return bfout.toByteArray();
}
/**
* Writes attrinutes sequentially to a DataOutput.
*
* @param dout
* @throws IOException
*/
public void writeData(DataOutput dout) throws IOException
{
// NOTE No swapping here. Use TDataOutputStream!
dout.write(StringToBytes.stringToFixedBytes(myServer.getFecName(), 16));
dout.write(reserved);
localtime = (int)(System.currentTimeMillis()/1000);
dout.writeInt(localtime);
dout.writeInt(starttime);
dout.writeInt(systemPollingRate);
dout.writeShort(numBkgTsks);
dout.writeShort(numTotalContracts);
dout.writeShort(numTotalClients);
dout.writeShort(numTargetContracts);
dout.writeShort(numTargetClients);
dout.writeShort(numConnections);
dout.writeInt(numConnectionTimeouts);
dout.writeInt(numConnectionArrivals);
dout.writeInt(numUdpPkts);
dout.writeInt(numTcpPkts);
dout.writeInt(numIpxPkts);
dout.writeInt(numSpxPkts);
}
/*
* (non-Javadoc) NOT IMPLEMENTED. Statistics cannot be read from a stream.
*
* @see de.desy.tine.client.TStructIfc#readData(java.io.DataInput)
*/
public void readData(DataInput din) throws IOException
{
// TODO Auto-generated method stub
// NOTE No swapping here. Use TDataOutputStream!
}
/**
* @return Returns the local time.
*/
public int getLocaltime()
{
localtime = (int)(System.currentTimeMillis()/1000);
return localtime;
}
/**
* @param localtime
* The local time to set.
*/
public void setLocaltime(int localtime)
{
this.localtime = localtime;
}
/**
* @return Returns the number of background tasks.
*/
public short getNumBkgTsks()
{
return numBkgTsks;
}
/**
* @param numBkgTsks
* The number of background tasks.
*/
public void setNumBkgTsks(short numBkgTsks)
{
this.numBkgTsks = numBkgTsks;
}
/**
* @return Returns the numConnectionArrivals.
*/
public int getNumConnectionArrivals()
{
return numConnectionArrivals;
}
/**
* @param numConnectionArrivals
* The numConnectionArrivals to set.
*/
public void setNumConnectionArrivals(int numConnectionArrivals)
{
this.numConnectionArrivals = numConnectionArrivals;
}
/**
* @return Returns the numConnections.
*/
public short getNumConnections()
{
return numConnections;
}
/**
* @param numConnections
* The numConnections to set.
*/
public void setNumConnections(short numConnections)
{
this.numConnections = numConnections;
}
public void addNumConnections(short numConnections)
{
this.numConnections += numConnections;
}
public void incNumConnections()
{
this.numConnections++;
}
/**
* @return Returns the numConnectionTimeouts.
*/
public int getNumConnectionTimeouts()
{
return numConnectionTimeouts;
}
/**
* @param numConnectionTimeouts
* The numConnectionTimeouts to set.
*/
public void setNumConnectionTimeouts(int numConnectionTimeouts)
{
this.numConnectionTimeouts = numConnectionTimeouts;
}
/**
* @param numConnectionTimeouts
* The numConnectionTimeouts to set.
*/
public void incNumConnectionTimeouts()
{
this.numConnectionTimeouts++;
}
/**
* @return Returns the numIpxPkts.
*/
public int getNumIpxPkts()
{
return numIpxPkts;
}
/**
* @param numIpxPkts
* The numIpxPkts to set.
*/
public void setNumIpxPkts(int numIPXpkts)
{
this.numIpxPkts = numIPXpkts;
}
/**
* @param numIpxPkts
* The numIpxPkts to set.
*/
public void incNumIpxPkts()
{
this.numIpxPkts++;
}
/**
* @return Returns the numSpxPkts.
*/
public int getNumSpxPkts()
{
return numSpxPkts;
}
/**
* @param numSpxPkts
* The numSpxPkts to set.
*/
public void setNumSpxPkts(int numSPXpkts)
{
this.numSpxPkts = numSPXpkts;
}
/**
* @param numSpxPkts
* The numSpxPkts to set.
*/
public void incNumSpxPkts()
{
this.numSpxPkts++;
}
/**
* @return Returns the numTargetClients.
*/
public short getNumTargetClients()
{
return numTargetClients;
}
/**
* @param numTargetClients
* The numTargetClients to set.
*/
public void setNumTargetClients(short numTargetClients)
{
this.numTargetClients = numTargetClients;
}
/**
* @return Returns the numTargetContracts.
*/
public short getNumTargetContracts()
{
return numTargetContracts;
}
/**
* @param numTargetContracts
* The numTargetContracts to set.
*/
public void setNumTargetContracts(short numTargetContracts)
{
this.numTargetContracts = numTargetContracts;
}
/**
* @return Returns the numTcpPkts.
*/
public int getNumTcpPkts()
{
return numTcpPkts;
}
/**
* @param numTcpPkts
* The numTcpPkts to set.
*/
public void incNumTcpPkts()
{
this.numTcpPkts++;
}
/**
* @return Returns the numTotalClients.
*/
public short getNumTotalClients()
{
return numTotalClients;
}
/**
* @param numTotalClients
* The numTotalClients to set.
*/
public void setNumTotalClients(short numTotalClients)
{
this.numTotalClients = numTotalClients;
}
/**
* @return Returns the numTotalContracts.
*/
public short getNumTotalContracts()
{
return numTotalContracts;
}
/**
* @param numTotalContracts
* The numTotalContracts to set.
*/
public void setNumTotalContracts(short numTotalContracts)
{
this.numTotalContracts = numTotalContracts;
}
/**
* @return Returns the numUdpPkts.
*/
public int getNumUdpPkts()
{
return numUdpPkts;
}
/**
* @param numUdpPkts
* The numUdpPkts to set.
*/
public void incNumUdpPkts()
{
this.numUdpPkts++;
}
/**
* @return Returns the reserved.
*/
public byte[] getReserved()
{
return reserved;
}
/**
* @param reserved
* The reserved to set.
*/
public void setReserved(byte[] reserved)
{
this.reserved = reserved;
}
/**
* @return Returns the starttime.
*/
public int getStarttime()
{
return starttime;
}
/**
* @param starttime
* The starttime to set.
*/
public void setStarttime(int starttime)
{
this.starttime = starttime;
}
/**
* @return Returns the systemPollingRate.
*/
public int getSystemPollingRate()
{
return systemPollingRate;
}
/**
* @param systemPollingRate
* The systemPollingRate to set.
*/
public void setSystemPollingRate(int systemPollingRate)
{
this.systemPollingRate = systemPollingRate;
}
public void setNumTcpPkts(int numTcpPkts)
{
this.numTcpPkts = numTcpPkts;
}
public void setNumUdpPkts(int numUdpPkts)
{
this.numUdpPkts = numUdpPkts;
}
}