Jvmstat

sun.jvmstat.perfdata.monitor.v2_0
Class PerfDataBuffer

java.lang.Object
  extended by sun.jvmstat.perfdata.monitor.PerfDataBufferImpl
      extended by sun.jvmstat.perfdata.monitor.v2_0.PerfDataBuffer

public class PerfDataBuffer
extends PerfDataBufferImpl

The concrete implementation of version 2.0 of the HotSpot PerfData Instrumentation buffer. This class is responsible for parsing the instrumentation memory and constructing the necessary objects to represent and access the instrumentation objects contained in the memory buffer.

The structure of the 2.0 entry is defined in struct PerfDataEnry as decsribed in perfMemory.hpp. This structure looks like:

 typedef struct {
   jint entry_length;         // entry length in bytes
   jint name_offset;          // offset to entry name, relative to start
                              // of entry
   jint vector_length;        // length of the vector. If 0, then scalar.
   jbyte data_type;           // JNI field descriptor type
   jbyte flags;               // miscellaneous attribute flags
                              // 0x01 - supported
   jbyte data_units;          // unit of measure attribute
   jbyte data_variability;    // variability attribute
   jbyte data_offset;         // offset to data item, relative to start
                              // of entry.
 } PerfDataEntry;
 

Since:
1.5
See Also:
AbstractPerfDataBuffer

Field Summary
 
Fields inherited from class sun.jvmstat.perfdata.monitor.PerfDataBufferImpl
aliasCache, aliasMap, buffer, lvmid, monitors
 
Constructor Summary
PerfDataBuffer(ByteBuffer buffer, int lvmid)
          Construct a PerfDataBuffer instance.
 
Method Summary
protected  void buildMonitorMap(Map map)
          build the map of Monitor objects.
protected  void buildPseudoMonitors(Map map)
          Build the pseudo monitors used to map the prolog data into counters.
protected  MonitorStatus getMonitorStatus(Map map)
          get the list of inserted and removed monitors since last called.
protected  void getNewMonitors(Map map)
          get the new Monitor objects from the Map of Monitor objects.
protected  Monitor getNextMonitorEntry()
          method to extract the next monitor entry from the instrumentation memory.
protected  void synchWithTarget()
          Method that waits until the target jvm indicates that its shared memory is safe to access.
 
Methods inherited from class sun.jvmstat.perfdata.monitor.PerfDataBufferImpl
findByAlias, findByName, findByPattern, getBytes, getCapacity, getLocalVmId, getMonitorStatus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PerfDataBuffer

public PerfDataBuffer(ByteBuffer buffer,
                      int lvmid)
               throws MonitorException
Construct a PerfDataBuffer instance.

This class is dynamically loaded by AbstractPerfDataBuffer.createPerfDataBuffer(java.nio.ByteBuffer, int), and this constructor is called to instantiate the instance.

Parameters:
buffer - the buffer containing the instrumentation data
lvmid - the Local Java Virtual Machine Identifier for this instrumentation buffer.
Throws:
MonitorException
Method Detail

buildMonitorMap

protected void buildMonitorMap(Map map)
                        throws MonitorException
build the map of Monitor objects.

Specified by:
buildMonitorMap in class PerfDataBufferImpl
Parameters:
map - the map of Monitors.
Throws:
MonitorException - Thrown if communications errors occur while communicating with the target.

getNewMonitors

protected void getNewMonitors(Map map)
                       throws MonitorException
get the new Monitor objects from the Map of Monitor objects.

Specified by:
getNewMonitors in class PerfDataBufferImpl
Parameters:
map - the map of Monitors.
Throws:
MonitorException - Thrown if communications errors occur while communicating with the target.

getMonitorStatus

protected MonitorStatus getMonitorStatus(Map map)
                                  throws MonitorException
get the list of inserted and removed monitors since last called.

Specified by:
getMonitorStatus in class PerfDataBufferImpl
Parameters:
map - the map of Monitors.
Throws:
MonitorException - Thrown if communications errors occur while communicating with the target.

buildPseudoMonitors

protected void buildPseudoMonitors(Map map)
Build the pseudo monitors used to map the prolog data into counters.


synchWithTarget

protected void synchWithTarget()
                        throws MonitorException
Method that waits until the target jvm indicates that its shared memory is safe to access.

Throws:
MonitorException

getNextMonitorEntry

protected Monitor getNextMonitorEntry()
                               throws MonitorException
method to extract the next monitor entry from the instrumentation memory. assumes that nextEntry is the offset into the byte array at which to start the search for the next entry. method leaves next entry pointing to the next entry or to the end of data.

Throws:
MonitorException

Jvmstat