/* * Galaxy * Copyright (c) 2012-2014, Parallel Universe Software Co. All rights reserved. * * This program and the accompanying materials are dual-licensed under * either the terms of the Eclipse Public License v1.0 as published by * the Eclipse Foundation * * or (per the licensee's choosing) * * under the terms of the GNU Lesser General Public License version 3.0 * as published by the Free Software Foundation. */ package co.paralleluniverse.galaxy.jgroups; import org.jgroups.Address; import org.jgroups.ChannelListener; import org.jgroups.Message; import org.jgroups.Receiver; import org.jgroups.View; import org.jgroups.stack.Protocol; /** * * @author pron */ public interface Channel { Address getAddress(); String getClusterName(); String getName(Address member); String getName(); void getState(Address target, long timeout, boolean useFlushIfPresent) throws Exception; View getView(); boolean isConnected(); boolean isOpen(); void send(Message msg) throws Exception; void setReceiver(Receiver r); Receiver getReceiver(); void removeChannelListener(ChannelListener listener); void addChannelListener(ChannelListener listener); void setDiscardOwnMessages(boolean flag); boolean getDiscardOwnMessages(); <T extends Protocol> boolean hasProtocol(Class<T> protocolType); }