/* * Copyright 2014 Eediom Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.araqne.logdb.cep; import java.util.Iterator; import java.util.List; import java.util.Set; public interface EventContextStorage { String getName(); /** * return hosts which contains external clock */ Set<String> getHosts(); EventClock<? extends EventClockItem> getClock(String host); Iterator<EventKey> getContextKeys(); Iterator<EventKey> getContextKeys(String topic); EventContext getContext(EventKey key); void advanceTime(String host, long now); void clearClocks(); void clearContexts(); void clearContexts(String topic); void addSubscriber(String topic, EventSubscriber subscriber); void removeSubscriber(String topic, EventSubscriber subscriber); void removeContext(EventKey key, EventCause cause); void removeContexts(List<EventKey> contexts, EventCause removal); List<EventContext> getContexts(Set<EventKey> key); void storeContext(EventContext ctx); void storeContexts(List<EventContext> contexts); void addContextVariable(EventKey evtKey, String key, Object value); }