2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.protocol.framework;
10 import io.netty.util.concurrent.Future;
12 import java.io.IOException;
13 import java.net.InetSocketAddress;
16 * Dispatcher class for creating protocol servers and clients.
18 public interface Dispatcher {
20 * Creates server. Each server needs factories to pass their instances to client sessions.
22 * @param connectionFactory factory for connection specific attributes
23 * @param sfactory to create specific session
24 * @param handlerFactory protocol specific channel handlers factory
26 * @return instance of ProtocolServer
28 public Future<ProtocolServer> createServer(final InetSocketAddress address, final ProtocolConnectionFactory connectionFactory,
29 final ProtocolSessionFactory<?> sfactory) throws IOException;
34 * @param connection connection specific attributes
35 * @param sfactory protocol session factory to create a specific session
36 * @param handlerFactory protocol-specific channel handlers factory
38 * @return session associated with this client
40 public <T extends ProtocolSession> Future<T> createClient(final ProtocolConnection connection, final ProtocolSessionFactory<T> sfactory) throws IOException;