01: /**
02: * com.mckoi.store.MutableArea 08 Jun 2003
03: *
04: * Mckoi SQL Database ( http://www.mckoi.com/database )
05: * Copyright (C) 2000, 2001, 2002 Diehl and Associates, Inc.
06: *
07: * This program is free software; you can redistribute it and/or
08: * modify it under the terms of the GNU General Public License
09: * Version 2 as published by the Free Software Foundation.
10: *
11: * This program is distributed in the hope that it will be useful,
12: * but WITHOUT ANY WARRANTY; without even the implied warranty of
13: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: * GNU General Public License Version 2 for more details.
15: *
16: * You should have received a copy of the GNU General Public License
17: * Version 2 along with this program; if not, write to the Free Software
18: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19: *
20: * Change Log:
21: *
22: *
23: */package com.mckoi.store;
24:
25: import java.io.IOException;
26:
27: /**
28: * An interface for an area that can be modified. Any changes made to an area
29: * may or may not be immediately reflected in already open areas with the same
30: * id. The specification does guarentee that after the 'checkOutAndClose'
31: * method is invoked that any new Area or MutableArea objects created by the
32: * backing store will contain the changes.
33: *
34: * @author Tobias Downer
35: */
36:
37: public interface MutableArea extends Area {
38:
39: /**
40: * Checks out all changes made to this area. This should be called after a
41: * series of updates have been made to the area and the final change is to
42: * be 'finalized'. When this method returns, any new Area or MutableArea
43: * objects created by the backing store will contain the changes made to this
44: * object. Any changes made to the Area may or may not be made to any
45: * already existing areas.
46: * <p>
47: * In a logging implementation, this may flush out the changes made to the
48: * area in a log.
49: */
50: void checkOut() throws IOException;
51:
52: // ---------- Various put methods ----------
53:
54: void put(byte b) throws IOException;
55:
56: void put(byte[] buf, int off, int len) throws IOException;
57:
58: void put(byte[] buf) throws IOException;
59:
60: void putShort(short s) throws IOException;
61:
62: void putInt(int i) throws IOException;
63:
64: void putLong(long l) throws IOException;
65:
66: void putChar(char c) throws IOException;
67:
68: }
|