8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
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 package jdk.vm.ci.hotspot.services;
24
25 import jdk.vm.ci.code.CompiledCode;
26 import jdk.vm.ci.code.InstalledCode;
27 import jdk.vm.ci.hotspot.HotSpotCodeCacheProvider;
28 import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
29 import jdk.vm.ci.meta.JVMCIMetaAccessContext;
30 import jdk.vm.ci.meta.ResolvedJavaType;
31 import jdk.vm.ci.services.JVMCIPermission;
32
33 /**
34 * Service-provider class for responding to VM events and for creating
35 * {@link JVMCIMetaAccessContext}s.
36 */
37 public abstract class HotSpotVMEventListener {
38
39 private static Void checkPermission() {
40 SecurityManager sm = System.getSecurityManager();
41 if (sm != null) {
42 sm.checkPermission(new JVMCIPermission());
43 }
44 return null;
45 }
46
47 @SuppressWarnings("unused")
48 HotSpotVMEventListener(Void ignore) {
49 }
50
51 /**
52 * Initializes a new instance of this class.
53 *
54 * @throws SecurityException if a security manager has been installed and it denies
55 * {@link JVMCIPermission}
62 * Notifies this client that the VM is shutting down.
63 */
64 public void notifyShutdown() {
65 }
66
67 /**
68 * Notify on successful install into the code cache.
69 *
70 * @param hotSpotCodeCacheProvider
71 * @param installedCode
72 * @param compiledCode
73 */
74 public void notifyInstall(HotSpotCodeCacheProvider hotSpotCodeCacheProvider, InstalledCode installedCode, CompiledCode compiledCode) {
75 }
76
77 /**
78 * Notify on completion of a bootstrap.
79 */
80 public void notifyBootstrapFinished() {
81 }
82
83 /**
84 * Create a custom {@link JVMCIMetaAccessContext} to be used for managing the lifetime of loaded
85 * metadata. It a custom one isn't created then the default implementation will be a single
86 * context with globally shared instances of {@link ResolvedJavaType} that are never released.
87 *
88 * @param runtime the runtime instance that will use the returned context
89 * @return a custom context or null
90 */
91 public JVMCIMetaAccessContext createMetaAccessContext(HotSpotJVMCIRuntime runtime) {
92 return null;
93 }
94 }
|
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
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 package jdk.vm.ci.hotspot.services;
24
25 import jdk.vm.ci.code.CompiledCode;
26 import jdk.vm.ci.code.InstalledCode;
27 import jdk.vm.ci.hotspot.HotSpotCodeCacheProvider;
28 import jdk.vm.ci.services.JVMCIPermission;
29
30 /**
31 * Service-provider class for responding to VM events.
32 */
33 public abstract class HotSpotVMEventListener {
34
35 private static Void checkPermission() {
36 SecurityManager sm = System.getSecurityManager();
37 if (sm != null) {
38 sm.checkPermission(new JVMCIPermission());
39 }
40 return null;
41 }
42
43 @SuppressWarnings("unused")
44 HotSpotVMEventListener(Void ignore) {
45 }
46
47 /**
48 * Initializes a new instance of this class.
49 *
50 * @throws SecurityException if a security manager has been installed and it denies
51 * {@link JVMCIPermission}
58 * Notifies this client that the VM is shutting down.
59 */
60 public void notifyShutdown() {
61 }
62
63 /**
64 * Notify on successful install into the code cache.
65 *
66 * @param hotSpotCodeCacheProvider
67 * @param installedCode
68 * @param compiledCode
69 */
70 public void notifyInstall(HotSpotCodeCacheProvider hotSpotCodeCacheProvider, InstalledCode installedCode, CompiledCode compiledCode) {
71 }
72
73 /**
74 * Notify on completion of a bootstrap.
75 */
76 public void notifyBootstrapFinished() {
77 }
78 }
|