1 /*
   2  * Copyright (c) 2003, 2004, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   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
   7  * published by the Free Software Foundation.  Oracle designates this
   8  * particular file as subject to the "Classpath" exception as provided
   9  * by Oracle in the LICENSE file that accompanied this code.
  10  *
  11  * This code is distributed in the hope that it will be useful, but WITHOUT
  12  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  13  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  14  * version 2 for more details (a copy is included in the LICENSE file that
  15  * accompanied this code).
  16  *
  17  * You should have received a copy of the GNU General Public License version
  18  * 2 along with this work; if not, write to the Free Software Foundation,
  19  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  20  *
  21  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  22  * or visit www.oracle.com if you need additional information or have any
  23  * questions.
  24  */
  25 package sun.management.snmp.jvminstr;
  26 
  27 // java imports
  28 //
  29 import java.io.Serializable;
  30 
  31 // jmx imports
  32 //
  33 import com.sun.jmx.snmp.SnmpStatusException;
  34 
  35 // jdmk imports
  36 //
  37 import com.sun.jmx.snmp.agent.SnmpMib;
  38 
  39 import java.lang.management.GarbageCollectorMXBean;
  40 
  41 import sun.management.snmp.jvmmib.JvmMemGCEntryMBean;
  42 import sun.management.snmp.util.MibLogger;
  43 
  44 /**
  45  * The class is used for implementing the "JvmMemGCEntry" group.
  46  */
  47 public class JvmMemGCEntryImpl implements JvmMemGCEntryMBean {
  48 
  49     /**
  50      * Variable for storing the value of "JvmMemManagerIndex".
  51      *
  52      * "An index opaquely computed by the agent and which uniquely
  53      * identifies a Memory Manager."
  54      *
  55      */
  56     protected final int JvmMemManagerIndex;
  57 
  58     protected final GarbageCollectorMXBean gcm;
  59 
  60     /**
  61      * Constructor for the "JvmMemGCEntry" group.
  62      */
  63     public JvmMemGCEntryImpl(GarbageCollectorMXBean gcm, int index) {
  64         this.gcm=gcm;
  65         this.JvmMemManagerIndex = index;
  66     }
  67 
  68     /**
  69      * Getter for the "JvmMemGCTimeMs" variable.
  70      */
  71     // Don't bother to uses the request contextual cache for this.
  72     public Long getJvmMemGCTimeMs() throws SnmpStatusException {
  73         return gcm.getCollectionTime();
  74     }
  75 
  76     /**
  77      * Getter for the "JvmMemGCCount" variable.
  78      */
  79     // Don't bother to uses the request contextual cache for this.
  80     public Long getJvmMemGCCount() throws SnmpStatusException {
  81         return gcm.getCollectionCount();
  82     }
  83 
  84     /**
  85      * Getter for the "JvmMemManagerIndex" variable.
  86      */
  87     public Integer getJvmMemManagerIndex() throws SnmpStatusException {
  88         return JvmMemManagerIndex;
  89     }
  90 
  91 }