PyLucene 3.4.0-1 import
[pylucene.git] / java / org / apache / pylucene / store / PythonIndexOutput.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.BufferedIndexOutput;
20
21
22 public class PythonIndexOutput extends BufferedIndexOutput {
23
24     private long pythonObject;
25
26     public PythonIndexOutput()
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 void seek(long pos)
46         throws IOException
47     {
48         super.seek(pos);
49         seekInternal(pos);
50     }
51
52     public native void pythonDecRef();
53     public native long length()
54         throws IOException;
55     public native void flushBuffer(byte[] data)
56         throws IOException;
57     public native void seekInternal(long pos)
58         throws IOException;
59     public native void close()
60         throws IOException;
61
62     protected void flushBuffer(byte[] b, int offset, int len)
63         throws IOException
64     {
65         byte[] data = new byte[len];
66         System.arraycopy(b, offset, data, 0, len);
67         flushBuffer(data);
68     }
69 }