Package org.jgroups.blocks

Source Code of org.jgroups.blocks.TotalTokenProtocolObserver

// $Id: TotalTokenProtocolObserver.java,v 1.6 2006/08/13 09:05:10 mimbert Exp $
package org.jgroups.blocks;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jgroups.Event;
import org.jgroups.JChannel;
import org.jgroups.Message;
import org.jgroups.stack.Protocol;
import org.jgroups.stack.ProtocolObserver;

import java.util.Vector;

public class TotalTokenProtocolObserver  implements ProtocolObserver
{
  String name;
    static Log logger = LogFactory.getLog(TotalTokenProtocolObserver.class);

   
  public TotalTokenProtocolObserver(JChannel c)
  {
    this.name = c.getLocalAddress().toString();
   
    Vector prots = c.getProtocolStack().getProtocols();
    for (int i = 0; i < prots.size(); i++)
    {
      Protocol prot = (Protocol) prots.elementAt(i);
      if ("TOTAL_TOKEN".equals(prot.getName()))
      {
        prot.setObserver(this);
      }
    }
  }

  public void setProtocol(Protocol prot)
  {
  }

  public boolean up(Event evt, int num_evts)
  {
    return true;
  }

  public boolean passUp(Event evt)
  {
    Object obj = null;
    Message msg;

    if (evt.getType() != Event.MSG)
    {
      logger.debug("For channel "+name+" received event:"+evt);
      return true;
    }

    msg = (Message) evt.getArg();
    if (msg.getLength() > 0)
    {
      try
      {
                obj=msg.getObject();
      }
      catch (ClassCastException cast_ex)
      {
        logger.debug("For channel "+name+" received:"+msg);
        return true;
      }
      catch (Exception e)
      {
        logger.error(e);
      }

      logger.debug("For channel "+name+" received:"+obj);
    }
    else
      logger.debug(
        "For channel "+name+" received null msg from "
          + msg.getSrc()
          + ", headers are "
          + msg.printObjectHeaders()
          + ')');

    return true;
  }

  public boolean down(Event evt, int num_evts)
  {
    Object       obj=null;
    Message      msg;

    if(evt.getType() != Event.MSG) {
      logger.debug("For channel "+name+" sent event:"+evt);
      return true;
    }

    msg=(Message)evt.getArg();
    if(msg.getLength() > 0) {
      try {
                obj=msg.getObject();
      }
      catch(ClassCastException cast_ex) {
        logger.debug("For channel "+name+" sent:"+msg);
        return true;
      }
      catch(Exception e) {
      logger.error(e);
      }
      logger.debug("For channel "+name+" sent:"+obj);

    }
    else
      logger.debug("For channel "+name+" sent null msg to " + msg.getDest() + ", headers are " +
             msg.printObjectHeaders() + " )");
    return true;
  }
 
  public boolean passDown(Event evt)
  {
    return true;
  }

}
TOP

Related Classes of org.jgroups.blocks.TotalTokenProtocolObserver

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.