Mercurial > hg > monetdb-java
view src/main/java/nl/cwi/monetdb/mcl/protocol/AbstractProtocol.java @ 67:87ba760038b6 embedded
More cleanup. About to start the tuple conversions.
author | Pedro Ferreira <pedro.ferreira@monetdbsolutions.com> |
---|---|
date | Tue, 06 Dec 2016 18:13:54 +0100 (2016-12-06) |
parents | 7307caacc2d5 |
children | 86967be24645 |
line wrap: on
line source
package nl.cwi.monetdb.mcl.protocol; import nl.cwi.monetdb.jdbc.MonetConnection; import nl.cwi.monetdb.mcl.responses.AutoCommitResponse; import nl.cwi.monetdb.mcl.responses.SchemaResponse; import nl.cwi.monetdb.mcl.responses.UpdateResponse; import nl.cwi.monetdb.mcl.responses.DataBlockResponse; import nl.cwi.monetdb.mcl.responses.ResultSetResponse; import java.io.IOException; import java.util.Map; /** * Created by ferreira on 11/30/16. */ public abstract class AbstractProtocol<T> { protected ServerResponses currentServerResponseHeader = ServerResponses.UNKNOWN; public ServerResponses waitUntilPrompt() { while(this.currentServerResponseHeader != ServerResponses.PROMPT) { this.fetchNextResponseData(); } return this.currentServerResponseHeader; } public abstract void fetchNextResponseData(); //UPDATE currentData!!! public ServerResponses getCurrentServerResponseHeader() { return currentServerResponseHeader; } public abstract T getCurrentData(); public abstract StarterHeaders getNextStarterHeader(); public abstract ResultSetResponse getNextResultSetResponse(MonetConnection con, MonetConnection.ResponseList list, int seqnr) throws MCLParseException; public abstract UpdateResponse getNextUpdateResponse() throws MCLParseException; public SchemaResponse getNextSchemaResponse() { return new SchemaResponse(); } public abstract AutoCommitResponse getNextAutoCommitResponse() throws MCLParseException; public abstract DataBlockResponse getNextDatablockResponse(Map<Integer, ResultSetResponse> rsresponses) throws MCLParseException; public abstract TableResultHeaders getNextTableHeader(Object line, String[] stringValues, int[] intValues) throws MCLParseException; public abstract int parseTupleLine(Object line, Object[] values, int[] typesMap) throws MCLParseException; public abstract String getRemainingStringLine(int startIndex); public abstract void writeNextCommand(byte[] prefix, byte[] query, byte[] suffix) throws IOException; }