Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * 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.catalina.tribes.group.interceptors;
 
 

Version:
1.0
 
 public class ThroughputInterceptor extends ChannelInterceptorBase {
     private static final Log log = LogFactory.getLog(ThroughputInterceptor.class);
 
     double mbTx = 0;
     double mbAppTx = 0;
     double mbRx = 0;
     double timeTx = 0;
     double lastCnt = 0;
     final AtomicLong msgTxCnt = new AtomicLong(1);
     final AtomicLong msgRxCnt = new AtomicLong(0);
     final AtomicLong msgTxErr = new AtomicLong(0);
     int interval = 10000;
     final AtomicInteger access = new AtomicInteger(0);
     long txStart = 0;
     long rxStart = 0;
     final DecimalFormat df = new DecimalFormat("#0.00");
 
 
     @Override
     public void sendMessage(Member[] destinationChannelMessage msgInterceptorPayload payloadthrows ChannelException {
         if ( .addAndGet(1) == 1 )  = System.currentTimeMillis();
         long bytes = XByteBuffer.getDataPackageLength(((ChannelData)msg).getDataPackageLength());
         try {
             super.sendMessage(destinationmsgpayload);
         }catch ( ChannelException x ) {
             .addAndGet(1);
             if ( .get() == 1 ) .addAndGet(-1);
             throw x;
         }
          += (bytes*destination.length)/(1024d*1024d);
          += bytes/(1024d*1024d);
         if ( .addAndGet(-1) == 0 ) {
             long stop = System.currentTimeMillis();
              += (stop - ) / 1000d;
             if ((.get() / ) >= ) {
                 ++;
                 report();
             }
         }
         .addAndGet(1);
     }
 
     @Override
     public void messageReceived(ChannelMessage msg) {
         if (  == 0 )  = System.currentTimeMillis();
         long bytes = XByteBuffer.getDataPackageLength(((ChannelData)msg).getDataPackageLength());
          += bytes/(1024d*1024d);
         .addAndGet(1);
         if ( .get() %  == 0 ) report();
         super.messageReceived(msg);
 
     }
 
     public void report(double timeTx) {
         StringBuilder buf = new StringBuilder("ThroughputInterceptor Report[\n\tTx Msg:");
         buf.append().append(" messages\n\tSent:");
         buf.append(.format());
         buf.append(" MB (total)\n\tSent:");
         buf.append(.format());
         buf.append(" MB (application)\n\tTime:");
        buf.append(.format(timeTx));
        buf.append(" seconds\n\tTx Speed:");
        buf.append(.format(/timeTx));
        buf.append(" MB/sec (total)\n\tTxSpeed:");
        buf.append(.format(/timeTx));
        buf.append(" MB/sec (application)\n\tError Msg:");
        buf.append().append("\n\tRx Msg:");
        buf.append();
        buf.append(" messages\n\tRx Speed:");
        buf.append(.format(/((System.currentTimeMillis()-)/1000)));
        buf.append(" MB/sec (since 1st msg)\n\tReceived:");
        buf.append(.format()).append(" MB]\n");
        if ( .isInfoEnabled() ) .info(buf);
    }
    public void setInterval(int interval) {
        this. = interval;
    }
    public int getInterval() {
        return ;
    }
    public double getLastCnt() {
        return ;
    }
    public double getMbAppTx() {
        return ;
    }
    public double getMbRx() {
        return ;
    }
    public double getMbTx() {
        return ;
    }
    public AtomicLong getMsgRxCnt() {
        return ;
    }
    public AtomicLong getMsgTxCnt() {
        return ;
    }
    public AtomicLong getMsgTxErr() {
        return ;
    }
    public long getRxStart() {
        return ;
    }
    public double getTimeTx() {
        return ;
    }
    public long getTxStart() {
        return ;
    }
New to GrepCode? Check out our FAQ X