1 /* |
1 /* |
2 * Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
50 }; |
50 }; |
51 #endif // SERVICES_KERNEL |
51 #endif // SERVICES_KERNEL |
52 |
52 |
53 class AttachListener: AllStatic { |
53 class AttachListener: AllStatic { |
54 public: |
54 public: |
55 static void init() KERNEL_RETURN; |
55 static void init() NOT_SERVICES_RETURN; |
56 static void abort() KERNEL_RETURN; |
56 static void abort() NOT_SERVICES_RETURN; |
57 |
57 |
58 // invoke to perform clean-up tasks when all clients detach |
58 // invoke to perform clean-up tasks when all clients detach |
59 static void detachall() KERNEL_RETURN; |
59 static void detachall() NOT_SERVICES_RETURN; |
60 |
60 |
61 // indicates if the Attach Listener needs to be created at startup |
61 // indicates if the Attach Listener needs to be created at startup |
62 static bool init_at_startup() KERNEL_RETURN_(false); |
62 static bool init_at_startup() NOT_SERVICES_RETURN_(false); |
63 |
63 |
64 // indicates if we have a trigger to start the Attach Listener |
64 // indicates if we have a trigger to start the Attach Listener |
65 static bool is_init_trigger() KERNEL_RETURN_(false); |
65 static bool is_init_trigger() NOT_SERVICES_RETURN_(false); |
66 |
66 |
67 #ifdef SERVICES_KERNEL |
67 #if !INCLUDE_SERVICES |
68 static bool is_attach_supported() { return false; } |
68 static bool is_attach_supported() { return false; } |
69 #else // SERVICES_KERNEL |
69 #else |
70 private: |
70 private: |
71 static volatile bool _initialized; |
71 static volatile bool _initialized; |
72 |
72 |
73 public: |
73 public: |
74 static bool is_initialized() { return _initialized; } |
74 static bool is_initialized() { return _initialized; } |
92 // platform specific data dump |
92 // platform specific data dump |
93 static void pd_data_dump(); |
93 static void pd_data_dump(); |
94 |
94 |
95 // dequeue the next operation |
95 // dequeue the next operation |
96 static AttachOperation* dequeue(); |
96 static AttachOperation* dequeue(); |
97 #endif // SERVICES_KERNEL |
97 #endif // !INCLUDE_SERVICES |
98 }; |
98 }; |
99 |
99 |
100 #ifndef SERVICES_KERNEL |
100 #if INCLUDE_SERVICES |
101 class AttachOperation: public CHeapObj<mtInternal> { |
101 class AttachOperation: public CHeapObj<mtInternal> { |
102 public: |
102 public: |
103 enum { |
103 enum { |
104 name_length_max = 16, // maximum length of name |
104 name_length_max = 16, // maximum length of name |
105 arg_length_max = 1024, // maximum length of argument |
105 arg_length_max = 1024, // maximum length of argument |
149 } |
149 } |
150 |
150 |
151 // complete operation by sending result code and any result data to the client |
151 // complete operation by sending result code and any result data to the client |
152 virtual void complete(jint result, bufferedStream* result_stream) = 0; |
152 virtual void complete(jint result, bufferedStream* result_stream) = 0; |
153 }; |
153 }; |
154 #endif // SERVICES_KERNEL |
154 #endif // INCLUDE_SERVICES |
155 |
155 |
156 #endif // SHARE_VM_SERVICES_ATTACHLISTENER_HPP |
156 #endif // SHARE_VM_SERVICES_ATTACHLISTENER_HPP |