001 /* 002 * Copyright 2009 Red Hat, Inc. 003 * Red Hat licenses this file to you under the Apache License, version 004 * 2.0 (the "License"); you may not use this file except in compliance 005 * with the License. You may obtain a copy of the License at 006 * http://www.apache.org/licenses/LICENSE-2.0 007 * Unless required by applicable law or agreed to in writing, software 008 * distributed under the License is distributed on an "AS IS" BASIS, 009 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 010 * implied. See the License for the specific language governing 011 * permissions and limitations under the License. 012 */ 013 package org.hornetq.spi.core.remoting; 014 015 /** 016 * A Connector is used by the client for creating and controlling a connection. 017 * 018 * @author <a href="mailto:tim.fox@jboss.com">Tim Fox</a> 019 */ 020 public interface Connector 021 { 022 /** 023 * starts the connector 024 */ 025 void start(); 026 027 /** 028 * closes the connector 029 */ 030 void close(); 031 032 /** 033 * returns true if the connector is started, oterwise false. 034 * 035 * @return true if the connector is started 036 */ 037 boolean isStarted(); 038 039 /** 040 * Create and return a connection from this connector. 041 * <p/> 042 * This method must NOT throw an exception if it fails to create the connection 043 * (e.g. network is not available), in this case it MUST return null 044 * 045 * @return The connection, or null if unable to create a connection (e.g. network is unavailable) 046 */ 047 Connection createConnection(); 048 }