View Javadoc

1   /*
2    *  Copyright 2006 Simon Raess
3    *
4    *  Licensed under the Apache License, Version 2.0 (the "License");
5    *  you may not use this file except in compliance with the License.
6    *  You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    * 
10   *  Unless required by applicable law or agreed to in writing, software
11   *  distributed under the License is distributed on an "AS IS" BASIS,
12   *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   *  See the License for the specific language governing permissions and
14   *  limitations under the License.
15   */
16  package net.sf.beep4j;
17  
18  /**
19   * Factory to create ChannelHandler objects. This factory is used by the
20   * {@link Session#startChannel(ProfileInfo[], ChannelHandlerFactory)}
21   * method to create a new ChannelHandler for the selected profile. Otherwise
22   * the application would have to pass in n ChannelHandler objects for
23   * n ProfileInfo objects passed into the method.
24   * 
25   * @author Simon Raess
26   */
27  public interface ChannelHandlerFactory {
28  	
29  	/**
30  	 * Notifies the factory that the channel creation failed. 
31  	 * 
32  	 * @param code the error code
33  	 * @param message the error message
34  	 */
35  	void startChannelFailed(int code, String message);
36  	
37  	/**
38  	 * Requests the factory to create a ChannelHandler for the
39  	 * specified ProfileInfo.
40  	 * 
41  	 * @param info the ProfileInfo
42  	 * @return a new ChannelHandler for that profile
43  	 */
44  	ChannelHandler createChannelHandler(ProfileInfo info);
45  	
46  }