
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __java_rmi_server_LoaderHandler__
#define __java_rmi_server_LoaderHandler__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace net
    {
        class URL;
    }
    namespace rmi
    {
      namespace server
      {
          class LoaderHandler;
      }
    }
  }
}

class java::rmi::server::LoaderHandler : public ::java::lang::Object
{

public:
  virtual ::java::lang::Class * loadClass(::java::lang::String *) = 0;
  virtual ::java::lang::Class * loadClass(::java::net::URL *, ::java::lang::String *) = 0;
  virtual ::java::lang::Object * getSecurityContext(::java::lang::ClassLoader *) = 0;
  static ::java::lang::String * packagePrefix;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_rmi_server_LoaderHandler__
