+++ /dev/null
-/* Copyright (C) 2001 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-package gnu.gcj.runtime;
-import java.util.Hashtable;
-
-/**
- * A ClassLoader backed by a gcj-compiled shared library.
- * @author Per Bothner <per@bothner.com>, Brainfood Inc.
- */
-
-public class SharedLibLoader extends ClassLoader
-{
- public native void finalize ();
-
- /** Called during dlopen's processing of the init section. */
- void registerClass(String name, Class cls)
- {
- classMap.put(name, cls);
- }
-
- /** Load a shared library, and associate a ClassLoader with it.
- * @param libname named of shared library (passed to dlopen)
- * @param parent the parent ClassLoader
- * @parem flags passed to dlopen
- */
- public SharedLibLoader(String libname, ClassLoader parent, int flags)
- {
- super(parent);
- init(libname, flags);
- }
-
-
- /** Load a shared library, and asociate a ClassLoader with it.
- * @param libname named of shared library (passed to dlopen)
- */
- public SharedLibLoader(String libname)
- {
- super(getSystemClassLoader());
- init(libname, 0);
- }
-
- void init(String libname, int flags)
- {
- init(libname.getBytes(), flags);
- }
-
- native void init(byte[] libname, int flags);
-
- public Class loadClass(String name)
- throws ClassNotFoundException
- {
- return super.loadClass(name);
- }
-
- public Class findClass(String name)
- throws ClassNotFoundException
- {
- Object cls = classMap.get(name);
- if (cls == null)
- throw new ClassNotFoundException(name);
- return (Class) cls;
- }
-
- /** The handle returned by dlopen. */
- gnu.gcj.RawData handler;
-
- /** Map classnames to Classes. */
- Hashtable classMap = new Hashtable(20);
-}