2 * Copyright (c) 2015 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.pcep;
10 import io.netty.channel.Channel;
11 import io.netty.util.concurrent.Promise;
12 import org.eclipse.jdt.annotation.NonNull;
15 * Factory for creating PCEP session negotiator.
17 public interface PCEPSessionNegotiatorFactory {
20 * Creates PCEPSessionNegotiator instance for income attributes.
22 * @param sessionNegotiatorDependencies contains PCEPSessionNegotiator dependencies
23 * @param channel session channel
24 * @param promise session promise
25 * @return PCEPSessionNegotiator instance
27 @NonNull SessionNegotiator getSessionNegotiator(
28 @NonNull PCEPSessionNegotiatorFactoryDependencies sessionNegotiatorDependencies,
29 @NonNull Channel channel, @NonNull Promise<PCEPSession> promise);
32 * Returns a PCEPSessionProposalFactory.
34 * @return session factory
36 @NonNull PCEPSessionProposalFactory getPCEPSessionProposalFactory();