001 /**002 * Licensed to the Apache Software Foundation (ASF) under one or more003 * contributor license agreements. See the NOTICE file distributed with004 * this work for additional information regarding copyright ownership.005 * The ASF licenses this file to You under the Apache License, Version 2.0006 * (the "License"); you may not use this file except in compliance with007 * the License. You may obtain a copy of the License at008 *009 * http://www.apache.org/licenses/LICENSE-2.0010 *011 * Unless required by applicable law or agreed to in writing, software012 * distributed under the License is distributed on an "AS IS" BASIS,013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.014 * See the License for the specific language governing permissions and015 * limitations under the License.016 */017 package org.apache.activemq.broker.region;018019 import java.io.IOException;020 import java.util.Set;021022 import org.apache.activemq.broker.ConnectionContext;023 import org.apache.activemq.command.ActiveMQDestination;024 import org.apache.activemq.command.ActiveMQTopic;025 import org.apache.activemq.command.SubscriptionInfo;026027 /**028 * Used to create Destinations. One instance of DestinationFactory is used per BrokerService. 029 * 030 * @author fateev@amazon.com031 * 032 */033 public abstract class DestinationFactory {034035 /**036 * Create destination implementation.037 */038 public abstract Destination createDestination(ConnectionContext context, ActiveMQDestination destination, DestinationStatistics destinationStatistics) throws Exception;039040 public abstract void removeDestination(Destination dest);041042 /**043 * Returns a set of all the {@link org.apache.activemq.command.ActiveMQDestination}044 * objects that the persistence store is aware exist.045 */046 public abstract Set<ActiveMQDestination> getDestinations();047048 /**049 * Lists all the durable subscirptions for a given destination.050 */051 public abstract SubscriptionInfo[] getAllDurableSubscriptions(ActiveMQTopic topic) throws IOException;052053054 public abstract long getLastMessageBrokerSequenceId() throws IOException;055056 public abstract void setRegionBroker(RegionBroker regionBroker);057 }