package alma.acs.monitoring.blobber;
import java.util.logging.Level;
import java.util.logging.Logger;
import alma.ACS.ComponentStates;
import alma.MonitorErr.DeviceAlreadyRegisteredEx;
import alma.MonitorErr.DeviceNotRegisteredEx;
import alma.MonitorErr.RegisteringDeviceProblemEx;
import alma.MonitorErr.StartMonitoringProblemEx;
import alma.MonitorErr.StopMonitoringProblemEx;
import alma.TMCDB.MonitorCollectorOperations;
import alma.TMCDB.MonitorDataBlock;
import alma.TMCDB.propertySerailNumber;
/**
* Mock implementation of the MonitorCollector interface.
*/
public class MonitorTestCollector implements MonitorCollectorOperations {
// private static final long serialVersionUID = -7497756569813748359L;
private final DataLock<MonitorDataBlock[]> myDataLock;
private final Logger logger;
public MonitorTestCollector(Logger logger) {
this.logger = logger;
myDataLock = new DataLock<MonitorDataBlock[]>(logger, "collector");
}
/**
* Gets the data that was stored through {@link #setMonitorData(MonitorDataBlock[])}.
* Blocks if called before setMonitorData or if called twice in a row, until data gets set in setMonitorData.
*/
@Override
public MonitorDataBlock[] getMonitorData() {
MonitorDataBlock[] outArray = null;
try {
outArray = this.myDataLock.take();
} catch (InterruptedException ex) {
logger.log(Level.WARNING, "Failed to get monitor data.", ex);
}
if (outArray == null) {
outArray = new MonitorDataBlock[0];
}
return outArray;
}
/**
* Stores the data that later can be read through {@link #getMonitorData()}.
* Blocks if called twice in a row, until data gets taken out in getMonitorData.
* @throws InterruptedException
*/
public void setMonitorData(MonitorDataBlock[] inData) throws InterruptedException {
this.myDataLock.put(inData);
}
@Override
public void deregisterMonitoredDevice(String componentName)
throws DeviceNotRegisteredEx {
}
@Override
public void registerMonitoredDevice(String componentName,
String serialNumber) throws RegisteringDeviceProblemEx,
DeviceAlreadyRegisteredEx {
}
@Override
public void registerCollocatedMonitoredDevice(String componentName,
String serialNumber) throws RegisteringDeviceProblemEx,
DeviceAlreadyRegisteredEx {
}
@Override
public void registerNonCollocatedMonitoredDevice(String componentName,
String serialNumber) throws RegisteringDeviceProblemEx,
DeviceAlreadyRegisteredEx {
}
@Override
public void registerMonitoredDeviceWithMultipleSerial(String componentName,
propertySerailNumber[] serialNumbers)
throws RegisteringDeviceProblemEx, DeviceAlreadyRegisteredEx {
}
@Override
public void registerCollocatedMonitoredDeviceWithMultipleSerial(String componentName,
propertySerailNumber[] serialNumbers)
throws RegisteringDeviceProblemEx, DeviceAlreadyRegisteredEx {
}
@Override
public void registerNonCollocatedMonitoredDeviceWithMultipleSerial(String componentName,
propertySerailNumber[] serialNumbers)
throws RegisteringDeviceProblemEx, DeviceAlreadyRegisteredEx {
}
@Override
public void startMonitoring(String componentName)
throws StartMonitoringProblemEx {
}
@Override
public void stopMonitoring(String componentName)
throws StopMonitoringProblemEx {
}
@Override
public void set_archiving_interval(String compName, String propName, long time) {
}
@Override
public void enable_archiving(String compName, String propName) {
}
@Override
public void suppress_archiving(String compName, String propName) {
}
@Override
public ComponentStates componentState() {
return null;
}
@Override
public String name() {
return "MonitorTestCollector";
}
}