hotspot/src/share/vm/services/attachListener.hpp
changeset 13975 2f7431485cfa
parent 13195 be27e1b6a4b9
child 13977 92de166c91b3
equal deleted inserted replaced
13951:3fc49366dc15 13975:2f7431485cfa
     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