01: /*
02: * IzPack - Copyright 2001-2008 Julien Ponge, All Rights Reserved.
03: *
04: * http://izpack.org/
05: * http://izpack.codehaus.org/
06: *
07: * Copyright 2002 Elmar Grom
08: *
09: * Licensed under the Apache License, Version 2.0 (the "License");
10: * you may not use this file except in compliance with the License.
11: * You may obtain a copy of the License at
12: *
13: * http://www.apache.org/licenses/LICENSE-2.0
14: *
15: * Unless required by applicable law or agreed to in writing, software
16: * distributed under the License is distributed on an "AS IS" BASIS,
17: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18: * See the License for the specific language governing permissions and
19: * limitations under the License.
20: */
21:
22: package com.izforge.izpack.util;
23:
24: /*---------------------------------------------------------------------------*/
25: /**
26: * Any class in IzPack that uses native libraries must implement this interface. See the package
27: * documentation for more details on requirements relating to the use of native libraries within
28: * IzPack.
29: *
30: * @version 0.0.1 / 2/6/2002
31: * @author Elmar Grom
32: */
33: /*---------------------------------------------------------------------------*/
34: public interface NativeLibraryClient {
35:
36: /*--------------------------------------------------------------------------*/
37: /**
38: * This method is used to free the library at the end of progam execution. After this call, any
39: * instance of this calss will not be usable any more! <b><i><u>This method is very likely NOT
40: * to return!</u></i></b> <br>
41: * <br>
42: * <b>DO NOT CALL THIS METHOD DIRECTLY!</b><br>
43: * It is used by the librarian to free a native library before physically deleting it from its
44: * temporary loaction. A call to this method is likely to irrecoverably freeze the application!
45: * <br>
46: * <br>
47: * The contract for this method implementation is that a call will bring the native library into
48: * a state where it can be deleted. This translates into an operation to free the library. Since
49: * no libraries should be left behind when the installer shuts down, it is necessary that each
50: * library provides the means to free itself. For instance in a MS-Windows environment the
51: * library must call <code>FreeLibraryAndExitThread()</code>. This will result in a native
52: * fuction call that does not return.
53: *
54: * @param name the name of the library, without path but with extension
55: */
56: /*--------------------------------------------------------------------------*/
57: public void freeLibrary(String name);
58: }
59: /*---------------------------------------------------------------------------*/
|