/**
* 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;
import org.diirt.datasource.DesiredRateEvent;
import org.diirt.datasource.SourceDesiredRateDecoupler;
import org.diirt.datasource.DesiredRateEventListener;
import java.time.Duration;
import java.util.concurrent.ScheduledExecutorService;
/**
*
* @author carcassi
*/
class DirectRateDecoupler extends SourceDesiredRateDecoupler {
public DirectRateDecoupler(ScheduledExecutorService scannerExecutor, Duration maxDuration, DesiredRateEventListener listener) {
super(scannerExecutor, maxDuration, listener);
}
@Override
void newReadConnectionEvent() {
DesiredRateEvent event = new DesiredRateEvent();
event.addType(DesiredRateEvent.Type.READ_CONNECTION);
sendDesiredRateEvent(event);
}
@Override
void newWriteConnectionEvent() {
DesiredRateEvent event = new DesiredRateEvent();
event.addType(DesiredRateEvent.Type.WRITE_CONNECTION);
sendDesiredRateEvent(event);
}
@Override
void newValueEvent() {
DesiredRateEvent event = new DesiredRateEvent();
event.addType(DesiredRateEvent.Type.VALUE);
sendDesiredRateEvent(event);
}
@Override
void newReadExceptionEvent() {
DesiredRateEvent event = new DesiredRateEvent();
event.addType(DesiredRateEvent.Type.READ_EXCEPTION);
sendDesiredRateEvent(event);
}
@Override
void newWriteExceptionEvent() {
DesiredRateEvent event = new DesiredRateEvent();
event.addType(DesiredRateEvent.Type.WRITE_EXCEPTION);
sendDesiredRateEvent(event);
}
@Override
void newWriteSuccededEvent() {
DesiredRateEvent event = new DesiredRateEvent();
event.addType(DesiredRateEvent.Type.WRITE_SUCCEEDED);
sendDesiredRateEvent(event);
}
@Override
void newWriteFailedEvent(Exception ex) {
DesiredRateEvent event = new DesiredRateEvent();
event.addWriteFailed(ex);
sendDesiredRateEvent(event);
}
}