f98ece68c24b49df6c480a86a115a85fa59b7e47
[bgpcep.git] / pcep / topology-provider / src / main / java / org / opendaylight / bgpcep / pcep / topology / provider / config / PCEPTopologyDeployer.java
1 /*
2  * Copyright (c) 2017 Pantheon Technologies s.r.o. and others.  All rights reserved.
3  *
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
7  */
8 package org.opendaylight.bgpcep.pcep.topology.provider.config;
9
10 import com.google.common.base.Optional;
11 import java.net.InetAddress;
12 import java.net.InetSocketAddress;
13 import javax.annotation.Nonnull;
14 import javax.annotation.Nullable;
15 import org.opendaylight.bgpcep.programming.spi.InstructionScheduler;
16 import org.opendaylight.controller.config.yang.pcep.topology.provider.PCEPTopologyProviderRuntimeRegistrator;
17 import org.opendaylight.protocol.concepts.KeyMapping;
18 import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TopologyId;
19
20 /**
21  * The PCEPTopologyDeployer service is managing PcepTopologyProvider
22  */
23 public interface PCEPTopologyDeployer {
24     /**
25      * Creates and register topology provider instance
26      *  @param topologyId topology ID
27      * @param inetSocketAddress inetSocketAddress
28      * @param rpcTimeout rpc Timeout
29      * @param client List of clients password configuration
30      * @param scheduler  Instruction Scheduler
31      */
32     void createTopologyProvider(@Nonnull TopologyId topologyId, @Nonnull InetSocketAddress inetSocketAddress,
33         short rpcTimeout, @Nullable Optional<KeyMapping> client, @Nonnull InstructionScheduler scheduler,
34         Optional<PCEPTopologyProviderRuntimeRegistrator> runtime);
35
36     /**
37      * Closes and unregister topology provider instance
38      *
39      * @param topologyID topology ID
40      */
41     void removeTopologyProvider(@Nonnull TopologyId topologyID);
42 }