package net.ion.craken.node; import java.io.IOException; import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; import net.ion.craken.mr.NodeMapReduce; import net.ion.craken.node.crud.ChildQueryRequest; import net.ion.craken.node.crud.IndexInfoHandler; import net.ion.craken.node.crud.tree.Fqn; import net.ion.nsearcher.config.Central; import net.ion.nsearcher.search.Searcher; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.queryparser.classic.ParseException; import com.google.common.base.Function; public interface ReadSession extends ISession<ReadNode> { public final static String EncryptKeyBytes = "KeyBytes"; public final static String EncryptIvBytes = "IvBytes"; public ReadNode ghostBy(String fqn0, Object... fqns); public ReadNode ghostBy(Fqn fqn); public ReadNode ghostBy(String fqn); public ReadNode pathBy(String fqn0, Object... fqns); public boolean exists(Fqn fqn); public <T> Future<T> tran(TransactionJob<T> tjob); public <T> Future<T> tran(TransactionJob<T> tjob, TranExceptionHandler handler); public <T> T tranSync(TransactionJob<T> tjob) throws Exception; public <T> T tranSync(TransactionJob<T> tjob, TranExceptionHandler handler) throws Exception; public Workspace workspace(); public <Ri, Rv, V> Future<V> mapReduce(NodeMapReduce<Ri, Rv> mapper, Function<Map<Ri, Rv>, V> function); public <Ri, Rv> Map<Ri, Rv> mapReduceSync(NodeMapReduce<Ri, Rv> mapper) throws InterruptedException, ExecutionException; @Deprecated public ReadSession awaitListener() throws InterruptedException, ExecutionException ; public Searcher newSearcher() throws IOException; public Central central(); public <T> T indexInfo(IndexInfoHandler<T> indexInfo); public ChildQueryRequest queryRequest(String string) throws IOException, ParseException; public Analyzer queryAnalyzer(); public ReadSession queryAnayzler(Analyzer analyzer) ; public void attribute(String key, Object value); public Object attribute(String key) ; public String encrypt(String value) throws IOException ; }