View Javadoc

1   /*
2   Copyright (C) 2007 Dirk Huenniger
3   
4   This library is free software; you can redistribute it and/or
5   modify it under the terms of the GNU Lesser General Public
6   License as published by the Free Software Foundation; either
7   version 2.1 of the License, or (at your option) any later version.
8   
9   This library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  Lesser General Public License for more details.
13  
14  You should have received a copy of the GNU Lesser General Public
15  License along with this library; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
17   */
18  package org.indi.reactor;
19  
20  import java.io.IOException;
21  import java.nio.channels.ClosedChannelException;
22  import java.nio.channels.SelectableChannel;
23  
24  /**
25   * Abstract Factory to create EventHandlers
26   * 
27   * @author Dirk Hünniger
28   * 
29   */
30  public interface EventHandlerFactory {
31      /**
32       * Create a new EventHandler. Register it with the give reactor and
33       * associate it with the given Channel.
34       * 
35       * @param r
36       *                The reactor to register the EventHanlder with
37       * @param ch
38       *                The channel to associate the EventHandler with
39       * @return The newly created and configured EventHandler
40       * @throws ClosedChannelException
41       * @throws IOException
42       */
43      public EventHandler produce(Reactor r, SelectableChannel ch)
44  	    throws ClosedChannelException, IOException;
45  }