content: /**
   * Licensed to the Apache Software Foundation (ASF) under one or more
   * contributor license agreements.  See the NOTICE file distributed with
   * this work for additional information regarding copyright ownership.
   * The ASF licenses this file to You under the Apache License, Version 2.0
   * (the "License"); you may not use this file except in compliance with
   * the License.  You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS,
   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   * See the License for the specific language governing permissions and
   * limitations under the License.
   */
  package org.apache.activemq.broker.view;
  
  import org.apache.activemq.broker.region.Destination;
  
  public class BrokerDestinationView {
      private final Destination destination;
  
  
       BrokerDestinationView(Destination destination) {
          this.destination = destination;
      }
  
  
      /**
       * @return the name of the DestinationView
       */
      public String getName() {
          return destination.getName();
      }
  
      /**
       * @return the number of messages enqueued by this destination
       */
  
      public long getEnqueueCount() {
          return destination.getDestinationStatistics().getEnqueues().getCount();
      }
  
      /**
       * @return the number of messages dequeued (dispatched and removed) by this destination
       */
      public long getDequeueCount() {
          return destination.getDestinationStatistics().getDequeues().getCount();
      }
  
      /**
       * @return the number of messages dispatched by this destination
       */
      public long getDispatchCount() {
          return destination.getDestinationStatistics().getDispatched().getCount();
      }
  
      /**
       * @return the number of messages inflight (dispatched by not acknowledged) by this destination
       */
      public long getInFlightCount() {
          return destination.getDestinationStatistics().getInflight().getCount();
      }
  
      /**
       * @return the number of messages expired by this destination
       */
      public long getExpiredCount() {
          return destination.getDestinationStatistics().getExpired().getCount();
      }
  
      /**
       * @return the number of active consumers on this destination
       */
      public int getConsumerCount() {
          return (int)destination.getDestinationStatistics().getConsumers().getCount();
      }
  
      /**
       * @return the number of active consumers on this destination
       */
      public int getProducerCount() {
          return (int)destination.getDestinationStatistics().getProducers().getCount();
      }
  
      /**
       * @return the depth of the Destination
       */
      public long getQueueSize() {
          return destination.getDestinationStatistics().getMessages().getCount();
      }
  
      /**
       * @return the number of messages cached in memory by this destination
       */
      public long getMessagesCached() {
          return destination.getDestinationStatistics().getMessagesCached().getCount();
      }
  
      /**
       * @return the memory usage as a percentage for this Destination
       */
      public int getMemoryPercentUsage() {
          return destination.getMemoryUsage().getPercentUsage();
      }
  
      /**
       * @return the memory used by this destination in bytes
       */
      public long getMemoryUsageByteCount() {
          return destination.getMemoryUsage().getUsage();
      }
  
  
      /**
       * @return  the memory limit for this destination in bytes
       */
      public long getMemoryLimit() {
          return destination.getMemoryUsage().getLimit();
      }
  
      /**
       * Gets the temp usage as a percentage for this Destination.
       *
       * @return Gets the temp usage as a percentage for this Destination.
       */
      public int getTempPercentUsage() {
          return destination.getTempUsage().getPercentUsage();
      }
  
      /**
       * Gets the temp usage limit in bytes.
       *
       * @return the temp usage limit in bytes.
       */
      public long getTempUsageLimit() {
          return destination.getTempUsage().getLimit();
      }
  
      /**
       * @return the average time it takes to store a message on this destination (ms)
       */
      public double getAverageEnqueueTime() {
          return destination.getDestinationStatistics().getProcessTime().getAverageTime();
      }
  
      /**
       * @return the maximum time it takes to store a message on this destination (ms)
       */
      public long getMaxEnqueueTime() {
          return destination.getDestinationStatistics().getProcessTime().getMaxTime();
      }
  
      /**
       * @return the minimum time it takes to store a message on this destination (ms)
       */
  
      public long getMinEnqueueTime() {
          return destination.getDestinationStatistics().getProcessTime().getMinTime();
      }
  
      /**
       * @return the average size of a message (bytes)
       */
      public double getAverageMessageSize() {
          return destination.getDestinationStatistics().getMessageSize().getAverageSize();
      }
  
      /**
        * @return the max size of a message (bytes)
      */
      public long getMaxMessageSize() {
          return destination.getDestinationStatistics().getMessageSize().getMaxSize();
      }
  
      /**
       * @return the min size of a message (bytes)
       */
      public long getMinMessageSize() {
          return destination.getDestinationStatistics().getMessageSize().getMinSize();
      }
  
  
      /**
       * @return true if the destination is a Dead Letter Queue
       */
      public boolean isDLQ() {
          return destination.getActiveMQDestination().isDLQ();
      }
  
  
      /**
       * @return the number of messages blocked waiting for dispatch (indication of slow consumption if greater than zero)
       */
      public long getBlockedSends() {
          return destination.getDestinationStatistics().getBlockedSends().getCount();
      }
  
      /**
       * @return the average time(ms) messages are  blocked waiting for dispatch (indication of slow consumption if greater than zero)
       */
  
      public double getAverageBlockedTime() {
          return destination.getDestinationStatistics().getBlockedTime().getAverageTime();
      }
  
      /**
       * @return the total time(ms) messages are  blocked waiting for dispatch (indication of slow consumption if greater than zero)
       */
  
      public long getTotalBlockedTime() {
          return destination.getDestinationStatistics().getBlockedTime().getTotalTime();
      }
  }
  