/*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the "License"). You may not use this file except
* in compliance with the License.
*
* You can obtain a copy of the license at
* https://glassfish.dev.java.net/public/CDDLv1.0.html.
* See the License for the specific language governing
* permissions and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* HEADER in each file and include the License file at
* https://glassfish.dev.java.net/public/CDDLv1.0.html.
*
* If applicable add the following below this CDDL HEADER,
* with the fields enclosed by brackets "[]" replaced with
* your own identifying information: Portions Copyright
* [year] [name of copyright owner]
*/
/*
* @(#)MessageBusCallback.java 1.26 05/02/06
*
* Copyright 2006 Sun Microsystems, Inc. All Rights Reserved.
*/
package com.sun.messaging.jmq.jmsserver.multibroker;
import java.util.*;
import com.sun.messaging.jmq.util.UID;
import com.sun.messaging.jmq.io.Packet;
import com.sun.messaging.jmq.io.SysMessageID;
import com.sun.messaging.jmq.jmsserver.core.PacketReference;
import com.sun.messaging.jmq.jmsserver.core.Consumer;
import com.sun.messaging.jmq.jmsserver.core.Subscription;
import com.sun.messaging.jmq.jmsserver.core.Destination;
import com.sun.messaging.jmq.jmsserver.core.DestinationUID;
import com.sun.messaging.jmq.jmsserver.core.ConsumerUID;
import com.sun.messaging.jmq.jmsserver.core.BrokerAddress;
import com.sun.messaging.jmq.jmsserver.util.BrokerException;
import com.sun.messaging.jmq.jmsserver.service.ConnectionUID;
/**
* Interface for processing messages and acknowledgements coming
* from the MessageBus.
*/
public interface MessageBusCallback {
/**
* Initial sync with the config server is complete.
* We are now ready to accept connections from clients.
*/
public void configSyncComplete();
public void processRemoteMessage(Packet msg, List consumers, BrokerAddress home,
boolean sendMsgRedeliver) throws BrokerException;
/**
* Process an acknowledgement.
*/
public void processRemoteAck(SysMessageID sysid, ConsumerUID intid,
int ackType, Map optionalProps, Long txnID,
UID msgBrokerSession, UID msgStoreSession) throws BrokerException;
/**
* Interest creation notification. This method is called when
* any remote interest is created.
*/
public void interestCreated(Consumer intr);
/**
* Interest removal notification. This method is called when
* any remote interest is removed.
*/
public void interestRemoved(Consumer cuid);
/**
* Durable subscription unsubscribe notification. This method is
* called when a remote broker unsubscribes a durable interest.
*/
public void unsubscribe(Subscription sub);
/**
* Primary interest change notification. This method is called when
* a new interest is chosen as primary interest for a failover queue.
*/
public void activeStateChanged(Consumer intr);
/**
* Client down notification. This method is called when a local
* or remote client connection is closed.
*/
public void clientDown(ConnectionUID conid);
/**
* Broker down notification. This method is called when any broker
* in this cluster goes down.
*/
public void brokerDown(BrokerAddress broker);
/**
* A new destination was created by the administrator on a remote
* broker. This broker should also add the destination if it is
* not already present.
*/
public void notifyCreateDestination(Destination d);
/**
* A destination was removed by the administrator on a remote
* broker. This broker should also remove the destination, if it
* is present.
*/
public void notifyDestroyDestination(DestinationUID uid);
/**
* A destination was updated
*/
public void notifyUpdateDestination(DestinationUID uid, Map changes);
/**
* Switch to HA_ACTIVE state.
*
* Falcon HA: Complete the initialization process, start all the
* ServiceType.NORMAL services and start processing client work.
*/
public void goHAActive();
}
/*
* EOF
*/
|