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

#ifndef __gnu_java_net_loader_Load_gcjlib$SoResource__
#define __gnu_java_net_loader_Load_gcjlib$SoResource__

#pragma interface

#include <gnu/java/net/loader/Resource.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace net
      {
        namespace loader
        {
            class Load_gcjlib;
            class Load_gcjlib$SoResource;
        }
      }
    }
  }
  namespace java
  {
    namespace net
    {
        class URL;
    }
  }
}

class gnu::java::net::loader::Load_gcjlib$SoResource : public ::gnu::java::net::loader::Resource
{

public: // actually package-private
  Load_gcjlib$SoResource(::gnu::java::net::loader::Load_gcjlib *, ::java::net::URL *);
public:
  ::java::io::InputStream * getInputStream();
  jint getLength();
  ::java::net::URL * getURL();
private:
  ::java::net::URL * __attribute__((aligned(__alignof__( ::gnu::java::net::loader::Resource)))) url;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_java_net_loader_Load_gcjlib$SoResource__
