/*
***************************************************************************************
* Copyright (C) 2006 EsperTech, Inc. All rights reserved. *
* http://www.espertech.com/esper *
* http://www.espertech.com *
* ---------------------------------------------------------------------------------- *
* The software in this package is published under the terms of the GPL license *
* a copy of which has been included with this distribution in the license.txt file. *
***************************************************************************************
*/
package com.espertech.esper.core.support;
import com.espertech.esper.core.service.EPStatementHandleCallback;
import com.espertech.esper.schedule.ScheduleBucket;
import com.espertech.esper.schedule.ScheduleHandle;
import com.espertech.esper.schedule.ScheduleHandleCallback;
import com.espertech.esper.schedule.SchedulingService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
public class SupportSchedulingServiceImpl implements SchedulingService {
private Map<Long, ScheduleHandle> added = new HashMap<Long, ScheduleHandle>();
private long currentTime;
public Map<Long, ScheduleHandle> getAdded() {
return added;
}
public void evaluateLock() {
//To change body of implemented methods use File | Settings | File Templates.
}
public void evaluateUnLock() {
//To change body of implemented methods use File | Settings | File Templates.
}
public void add(long afterTime, ScheduleHandle callback, long scheduleSlot) {
log.debug(".add Not implemented, afterMSec=" + afterTime + " callback=" + callback.getClass().getName());
added.put(afterTime, callback);
}
public void remove(ScheduleHandle callback, long scheduleSlot) {
log.debug(".remove Not implemented, callback=" + callback.getClass().getName());
}
public long getTime() {
log.debug(".getTime Time is " + currentTime);
return this.currentTime;
}
public void setTime(long currentTime) {
log.debug(".setTime Setting new time, currentTime=" + currentTime);
this.currentTime = currentTime;
}
public void evaluate(Collection<ScheduleHandle> handles) {
log.debug(".evaluate Not implemented");
}
public ScheduleBucket allocateBucket() {
return new ScheduleBucket(0);
}
public static void evaluateSchedule(SchedulingService service) {
Collection<ScheduleHandle> handles = new LinkedList<ScheduleHandle>();
service.evaluate(handles);
for (ScheduleHandle handle : handles) {
if (handle instanceof EPStatementHandleCallback) {
EPStatementHandleCallback callback = (EPStatementHandleCallback) handle;
callback.getScheduleCallback().scheduledTrigger(null);
} else {
ScheduleHandleCallback cb = (ScheduleHandleCallback) handle;
cb.scheduledTrigger(null);
}
}
}
public void destroy() {
}
public int getTimeHandleCount() {
throw new RuntimeException("not implemented");
}
public Long getFurthestTimeHandle() {
throw new RuntimeException("not implemented");
}
public int getScheduleHandleCount() {
throw new RuntimeException("not implemented");
}
public boolean isScheduled(ScheduleHandle scheduleHandle) {
return false; //To change body of implemented methods use File | Settings | File Templates.
}
private static final Logger log = LoggerFactory.getLogger(SupportSchedulingServiceImpl.class);
}