01: /*
02: * Copyright 2004-2008 H2 Group. Licensed under the H2 License, Version 1.0
03: * (http://h2database.com/html/license.html).
04: * Initial Developer: H2 Group
05: */
06: package org.h2.engine;
07:
08: import java.sql.SQLException;
09:
10: import org.h2.command.CommandInterface;
11: import org.h2.message.Trace;
12: import org.h2.store.DataHandler;
13:
14: /**
15: * A local or remote session. A session represents a database connection.
16: */
17: public interface SessionInterface {
18:
19: /**
20: * Parse a command and prepare it for execution.
21: *
22: * @param sql the SQL statement
23: * @param fetchSize the number of rows to fetch in one step
24: * @return the prepared command
25: */
26: CommandInterface prepareCommand(String sql, int fetchSize)
27: throws SQLException;
28:
29: /**
30: * Roll back pending transactions and close the session.
31: */
32: void close() throws SQLException;
33:
34: /**
35: * Get the trace object
36: *
37: * @return the trace object
38: */
39: Trace getTrace();
40:
41: /**
42: * Check if close was called.
43: *
44: * @return if the session has been closed
45: */
46: boolean isClosed();
47:
48: /**
49: * Open a new session.
50: *
51: * @param ci the connection parameters
52: * @return the new session
53: */
54: SessionInterface createSession(ConnectionInfo ci)
55: throws SQLException;
56:
57: /**
58: * Get the number of disk operations before power failure is simulated.
59: * This is used for testing. If not set, 0 is returned
60: *
61: * @return the number of operations, or 0
62: */
63: int getPowerOffCount();
64:
65: /**
66: * Set the number of disk operations before power failure is simulated.
67: * To disable the countdown, use 0.
68: *
69: * @param i the number of operations
70: */
71: void setPowerOffCount(int i) throws SQLException;
72:
73: /**
74: * Get the data handler object.
75: *
76: * @return the data handler
77: */
78: DataHandler getDataHandler();
79:
80: /**
81: * Cancel the current or next command (called when closing a connection).
82: */
83: void cancel();
84: }
|