/**
* Copyright (C) 2010-14 diirt developers. See COPYRIGHT.TXT
* All rights reserved. Use is subject to license terms. See LICENSE.TXT
*/
package org.diirt.datasource.test;
import org.diirt.datasource.ChannelWriteCallback;
import org.diirt.datasource.MultiplexedChannelHandler;
import org.diirt.datasource.PVManager;
import java.util.concurrent.TimeUnit;
/**
* Implementation for channels of a {@link TestDataSource}.
*
* @author carcassi
*/
class DelayedConnectionErrorChannel extends MultiplexedChannelHandler<Object, Object> {
DelayedConnectionErrorChannel(String channelName) {
super(channelName);
}
@Override
public void connect() {
PVManager.getReadScannerExecutorService().schedule(new Runnable() {
@Override
public void run() {
reportExceptionToAllReadersAndWriters(new RuntimeException("Connection error"));
}
}, 1, TimeUnit.SECONDS);
}
@Override
public void disconnect() {
processConnection(null);
}
@Override
public void write(Object newValue, ChannelWriteCallback callback) {
// Do nothing
}
@Override
public boolean isConnected(Object obj) {
return false;
}
}