< prev index next >

src/share/vm/classfile/moduleEntry.hpp

Print this page




  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_CLASSFILE_MODULEENTRY_HPP
  26 #define SHARE_VM_CLASSFILE_MODULEENTRY_HPP
  27 
  28 #include "classfile/classLoaderData.hpp"
  29 #include "classfile/vmSymbols.hpp"
  30 #include "oops/symbol.hpp"
  31 #include "prims/jni.h"
  32 #include "runtime/mutexLocker.hpp"
  33 #include "trace/traceMacros.hpp"
  34 #include "utilities/growableArray.hpp"
  35 #include "utilities/hashtable.hpp"
  36 #include "utilities/ostream.hpp"
  37 
  38 #define UNNAMED_MODULE "Unnamed Module"
  39 #define JAVAPKG "java/"
  40 #define JAVAPKG_LEN 5
  41 #define JAVA_BASE_NAME "java.base"
  42 
  43 class ModuleClosure;
  44 
  45 // A ModuleEntry describes a module that has been defined by a call to JVM_DefineModule.
  46 // It contains:
  47 //   - Symbol* containing the module's name.
  48 //   - pointer to the java.lang.reflect.Module for this module.
  49 //   - pointer to the java.security.ProtectionDomain shared by classes defined to this module.
  50 //   - ClassLoaderData*, class loader of this module.
  51 //   - a growable array containg other module entries that this module can read.
  52 //   - a flag indicating if this module can read all unnamed modules.
  53 //
  54 // The Mutex Module_lock is shared between ModuleEntry and PackageEntry, to lock either
  55 // data structure.
  56 class ModuleEntry : public HashtableEntry<Symbol*, mtModule> {
  57 private:
  58   jobject _module;                     // java.lang.reflect.Module
  59   jobject _pd;                         // java.security.ProtectionDomain, cached
  60                                        // for shared classes from this module




  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 #ifndef SHARE_VM_CLASSFILE_MODULEENTRY_HPP
  26 #define SHARE_VM_CLASSFILE_MODULEENTRY_HPP
  27 
  28 #include "classfile/classLoaderData.hpp"
  29 #include "classfile/vmSymbols.hpp"
  30 #include "oops/symbol.hpp"
  31 #include "prims/jni.h"
  32 #include "runtime/mutexLocker.hpp"
  33 #include "trace/traceMacros.hpp"
  34 #include "utilities/growableArray.hpp"
  35 #include "utilities/hashtable.hpp"
  36 #include "utilities/ostream.hpp"
  37 
  38 #define UNNAMED_MODULE "Unnamed Module"
  39 #define JAVAPKG "java"
  40 #define JAVAPKG_LEN 4
  41 #define JAVA_BASE_NAME "java.base"
  42 
  43 class ModuleClosure;
  44 
  45 // A ModuleEntry describes a module that has been defined by a call to JVM_DefineModule.
  46 // It contains:
  47 //   - Symbol* containing the module's name.
  48 //   - pointer to the java.lang.reflect.Module for this module.
  49 //   - pointer to the java.security.ProtectionDomain shared by classes defined to this module.
  50 //   - ClassLoaderData*, class loader of this module.
  51 //   - a growable array containg other module entries that this module can read.
  52 //   - a flag indicating if this module can read all unnamed modules.
  53 //
  54 // The Mutex Module_lock is shared between ModuleEntry and PackageEntry, to lock either
  55 // data structure.
  56 class ModuleEntry : public HashtableEntry<Symbol*, mtModule> {
  57 private:
  58   jobject _module;                     // java.lang.reflect.Module
  59   jobject _pd;                         // java.security.ProtectionDomain, cached
  60                                        // for shared classes from this module


< prev index next >