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.jmx;
  
  import javax.management.ObjectName;
  
  import org.apache.activemq.Service;
  
  public interface ConnectionViewMBean extends Service {
  
      /**
       * @return true if the Connection is slow
       */
      @MBeanInfo("Connection is slow.")
      boolean isSlow();
  
      /**
       * @return if after being marked, the Connection is still writing
       */
      @MBeanInfo("Connection is blocked.")
      boolean isBlocked();
  
      /**
       * @return true if the Connection is connected
       */
      @MBeanInfo("Connection is connected to the broker.")
      boolean isConnected();
  
      /**
       * @return true if the Connection is active
       */
      @MBeanInfo("Connection is active (both connected and receiving messages).")
      boolean isActive();
  
      /**
       * Resets the statistics
       */
      @MBeanInfo("Resets the statistics")
      void resetStatistics();
  
      /**
       * Returns the source address for this connection
       *
       * @return the source address for this connection
       */
      @MBeanInfo("source address for this connection")
      String getRemoteAddress();
  
      /**
       * Returns the client identifier for this connection
       *
       * @return the the client identifier for this connection
       */
      @MBeanInfo("client id for this connection")
      String getClientId();
  
      /**
       * Returns the number of messages to be dispatched to this connection
       * @return the  number of messages pending dispatch
       */
      @MBeanInfo("The number of messages pending dispatch")
      public int getDispatchQueueSize();
  
      /**
       * Returns the User Name used to authorize creation of this Connection.
       * This value can be null if display of user name information is disabled.
       *
       * @return the name of the user that created this Connection
       */
      @MBeanInfo("User Name used to authorize creation of this connection")
      String getUserName();
  
      /**
       * Returns the ObjectNames of all the Consumers created by this Connection.
       *
       * @return the ObjectNames of all Consumers created by this Connection.
       */
      @MBeanInfo("The ObjectNames of all Consumers created by this Connection")
      ObjectName[] getConsumers();
  
      /**
       * Returns the ObjectNames of all the Producers created by this Connection.
       *
       * @return the ObjectNames of all Producers created by this Connection.
       */
      @MBeanInfo("The ObjectNames of all Producers created by this Connection")
      ObjectName[] getProducers();
  
      /**
       * Returns the number of active transactions established on this Connection.
       *
       * @return the number of active transactions established on this Connection..
       */
      @MBeanInfo("The number of active transactions established on this Connection.")
      public int getActiveTransactionCount();
  
      /**
       * Returns the number of active transactions established on this Connection.
       *
       * @return the number of active transactions established on this Connection..
       */
      @MBeanInfo("The age in ms of the oldest active transaction established on this Connection.")
      public Long getOldestActiveTransactionDuration();
  
      /**
       * @return true if the Connection is fault tolerant
       */
      @MBeanInfo("Connection is fault tolerant.")
      boolean isFaultTolerantConnection();
  
      /**
       * @return true if the Connection is manageable
       */
      @MBeanInfo("Connection is manageable.")
      boolean isManageable();
  
      /**
       * @return true if the Connection is a network connection
       */
      @MBeanInfo("Connection is a network connection.")
      boolean isNetworkConnection();
  
      /**
       * @return the time in ms since epoch when connection was established
       */
      @MBeanInfo("Time in ms since epoch when connection was established.")
      long getConnectedTimestamp();
  
      /**
       * @return the WireFormatInfo information
       */
      @MBeanInfo("WireFormatInfo for the connection")
      public String getWireFormatInfo();
  
  }
  