package com.cloudera.flume.agent.durability;
import java.io.IOException;
import com.cloudera.flume.conf.Context;
import com.cloudera.flume.core.EventSink;
import com.cloudera.flume.core.EventSource;
import com.cloudera.flume.handlers.endtoend.AckListener;
import com.cloudera.flume.handlers.rolling.RollSink;
import com.cloudera.flume.handlers.rolling.RollTrigger;
import com.cloudera.flume.handlers.rolling.Tagger;
import com.cloudera.flume.reporter.Reportable;
public interface WALManager extends Reportable, WALCompletionNotifier {
enum State {
IMPORT, WRITING, LOGGED, SENDING, SENT, E2EACKED, ERROR
};
final public static String A_IMPORTED = "imported";
final public static String A_WRITING = "writing";
final public static String A_LOGGED = "logged";
final public static String A_SENDING = "sending";
final public static String A_SENT = "sent";
final public static String A_ACKED = "acked";
final public static String A_RETRY = "retry";
final public static String A_ERROR = "error";
final public static String A_RECOVERED = "recovered";
final public static String A_IN_LOGGED = "loggedQ";
final public static String A_IN_SENT = "sentQ";
public void open()
throws IOException;
public void recover()
throws IOException;
final AckListener ackQueue, long checkMs) throws IOException;
}