01: /*
02:
03: Derby - Class org.apache.derby.impl.store.raw.data.AllocationActions
04:
05: Licensed to the Apache Software Foundation (ASF) under one or more
06: contributor license agreements. See the NOTICE file distributed with
07: this work for additional information regarding copyright ownership.
08: The ASF licenses this file to you under the Apache License, Version 2.0
09: (the "License"); you may not use this file except in compliance with
10: the License. You may obtain a copy of the License at
11:
12: http://www.apache.org/licenses/LICENSE-2.0
13:
14: Unless required by applicable law or agreed to in writing, software
15: distributed under the License is distributed on an "AS IS" BASIS,
16: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: See the License for the specific language governing permissions and
18: limitations under the License.
19:
20: */
21:
22: package org.apache.derby.impl.store.raw.data;
23:
24: import org.apache.derby.iapi.store.raw.xact.RawTransaction;
25: import org.apache.derby.iapi.error.StandardException;
26:
27: /**
28: This interface describe the operations that has to do with page
29: allocation/deallocation. This interface is used for a special
30: allocation page that records the allocation information and dispense the
31: allocation policy.
32: */
33:
34: public interface AllocationActions {
35:
36: /**
37: Set the allocation status of pageNumber to doStatus. To undo this
38: operation, set the allocation status of pageNumber to undoStatus
39:
40: @param t The transaction
41: @param allocPage the allocation page
42: @param pageNumber the page to allocation or deallocation
43: @param doStatus set the allocation status of the page this value
44: @param undoStatus on undo, set the allocation status of the page
45: this value
46:
47: @exception StandardException Standard Cloudscape error policy
48: */
49: public void actionAllocatePage(RawTransaction t,
50: BasePage allocPage, long pageNumber, int doStatus,
51: int undoStatus) throws StandardException;
52:
53: /**
54: Chain one allocation page to the next.
55:
56: @param t The transaction
57: @param allocPage the allocation page whose next page chain needs
58: to be changed
59: @param pageNumber the next allocation page's number
60: @param pageOffset the next allocation page's page offset
61:
62: @exception StandardException Standard Cloudscape error policy
63: */
64: public void actionChainAllocPage(RawTransaction t,
65: BasePage allocPage, long pageNumber, long pageOffset)
66: throws StandardException;
67:
68: /**
69: * Compress free pages.
70: * <p>
71: * Compress the free pages at the end of the range maintained by
72: * this allocation page. All pages being compressed should be FREE.
73: * Only pages in the last allocation page can be compressed.
74: * <p>
75: *
76: * @param t The transaction
77: * @param allocPage the allocation page to do compress on.
78: * @param new_highest_page The new highest page on this allocation
79: * page. The number is the offset of the page
80: * in the array of pages maintained by this
81: * allocation page, for instance a value of 0
82: * indicates all page except the first one are
83: * to be truncated. If all pages are
84: * truncated then the offset is set to -1.
85: * @param num_pages_truncated The number of allocated pages in this
86: * allocation page prior to the truncate.
87: * Note that all pages from NewHighestPage+1
88: * through newHighestPage+num_pages_truncated
89: * should be FREE.
90: *
91: * @exception StandardException Standard exception policy.
92: **/
93: public void actionCompressSpaceOperation(RawTransaction t,
94: BasePage allocPage, int new_highest_page,
95: int num_pages_truncated) throws StandardException;
96:
97: }
|