PyLucene 3.4.0-1 import
[pylucene.git] / java / org / apache / pylucene / store / PythonIndexInput.java
1 /* ====================================================================
2  *   Licensed under the Apache License, Version 2.0 (the "License");
3  *   you may not use this file except in compliance with the License.
4  *   You may obtain a copy of the License at
5  *
6  *       http://www.apache.org/licenses/LICENSE-2.0
7  *
8  *   Unless required by applicable law or agreed to in writing, software
9  *   distributed under the License is distributed on an "AS IS" BASIS,
10  *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11  *   See the License for the specific language governing permissions and
12  *   limitations under the License.
13  * ====================================================================
14  */
15
16 package org.apache.pylucene.store;
17
18 import java.io.IOException;
19 import org.apache.lucene.store.BufferedIndexInput;
20
21
22 public class PythonIndexInput extends BufferedIndexInput {
23
24     private long pythonObject;
25
26     public PythonIndexInput()
27     {
28     }
29
30     public void pythonExtension(long pythonObject)
31     {
32         this.pythonObject = pythonObject;
33     }
34     public long pythonExtension()
35     {
36         return this.pythonObject;
37     }
38
39     public void finalize()
40         throws Throwable
41     {
42         pythonDecRef();
43     }
44
45     public native void pythonDecRef();
46
47     public native Object clone();
48     public native long length();
49     public native void close()
50         throws IOException;
51     public native byte[] readInternal(int length, long pos)
52         throws IOException;
53     public native void seekInternal(long pos)
54         throws IOException;
55
56     protected void readInternal(byte[] b, int offset, int length)
57         throws IOException
58     {
59         byte[] data = readInternal(length, getFilePointer());
60         System.arraycopy(data, 0, b, offset, data.length);
61     }
62 }