001/* 002 * IzPack - Copyright 2001-2005 Julien Ponge, All Rights Reserved. 003 * 004 * http://www.izforge.com/izpack/ 005 * http://developer.berlios.de/projects/izpack/ 006 * 007 * Copyright 2002 Elmar Grom 008 * 009 * Licensed under the Apache License, Version 2.0 (the "License"); 010 * you may not use this file except in compliance with the License. 011 * You may obtain a copy of the License at 012 * 013 * http://www.apache.org/licenses/LICENSE-2.0 014 * 015 * Unless required by applicable law or agreed to in writing, software 016 * distributed under the License is distributed on an "AS IS" BASIS, 017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 018 * See the License for the specific language governing permissions and 019 * limitations under the License. 020 */ 021 022package com.izforge.izpack.util; 023 024/*---------------------------------------------------------------------------*/ 025/** 026 * Any class in IzPack that uses native libraries must implement this interface. See the package 027 * documentation for more details on requirements relating to the use of native libraries within 028 * IzPack. 029 * 030 * @version 0.0.1 / 2/6/2002 031 * @author Elmar Grom 032 */ 033/*---------------------------------------------------------------------------*/ 034public interface NativeLibraryClient 035{ 036 037 /*--------------------------------------------------------------------------*/ 038 /** 039 * This method is used to free the library at the end of progam execution. After this call, any 040 * instance of this calss will not be usable any more! <b><i><u>This method is very likely NOT 041 * to return!</u></i></b> <br> 042 * <br> 043 * <b>DO NOT CALL THIS METHOD DIRECTLY!</b><br> 044 * It is used by the librarian to free a native library before physically deleting it from its 045 * temporary loaction. A call to this method is likely to irrecoverably freeze the application! 046 * <br> 047 * <br> 048 * The contract for this method implementation is that a call will bring the native library into 049 * a state where it can be deleted. This translates into an operation to free the library. Since 050 * no libraries should be left behind when the installer shuts down, it is necessary that each 051 * library provides the means to free itself. For instance in a MS-Windows environment the 052 * library must call <code>FreeLibraryAndExitThread()</code>. This will result in a native 053 * fuction call that does not return. 054 * 055 * @param name the name of the library, without path but with extension 056 */ 057 /*--------------------------------------------------------------------------*/ 058 public void freeLibrary(String name); 059} 060/*---------------------------------------------------------------------------*/