Showing
5 changed files
with
160 additions
and
6 deletions
... | @@ -14,7 +14,7 @@ public interface HostProvider extends Provider { | ... | @@ -14,7 +14,7 @@ public interface HostProvider extends Provider { |
14 | * Triggers an asynchronous probe of the specified host, intended to | 14 | * Triggers an asynchronous probe of the specified host, intended to |
15 | * determine whether the host is present or not. An indirect result of this | 15 | * determine whether the host is present or not. An indirect result of this |
16 | * should be invocation of {@link org.onlab.onos.net.host.HostProviderService#hostDetected(HostDescription)} or | 16 | * should be invocation of {@link org.onlab.onos.net.host.HostProviderService#hostDetected(HostDescription)} or |
17 | - * {@link org.onlab.onos.net.host.HostProviderService#hostNotDetected(HostDescription)} | 17 | + * {@link org.onlab.onos.net.host.HostProviderService#hostVanished(HostDescription)} |
18 | * at some later point in time. | 18 | * at some later point in time. |
19 | * | 19 | * |
20 | * @param host host to probe | 20 | * @param host host to probe | ... | ... |
... | @@ -20,6 +20,6 @@ public interface HostProviderService extends ProviderService<HostProvider> { | ... | @@ -20,6 +20,6 @@ public interface HostProviderService extends ProviderService<HostProvider> { |
20 | * | 20 | * |
21 | * @param hostDescription description of host | 21 | * @param hostDescription description of host |
22 | */ | 22 | */ |
23 | - void hostNotDetected(HostDescription hostDescription); | 23 | + void hostVanished(HostDescription hostDescription); |
24 | 24 | ||
25 | } | 25 | } | ... | ... |
... | @@ -8,17 +8,17 @@ import org.onlab.onos.net.provider.ProviderService; | ... | @@ -8,17 +8,17 @@ import org.onlab.onos.net.provider.ProviderService; |
8 | public interface LinkProviderService extends ProviderService<LinkProvider> { | 8 | public interface LinkProviderService extends ProviderService<LinkProvider> { |
9 | 9 | ||
10 | /** | 10 | /** |
11 | - * Signals that an infrastructure link has been connected. | 11 | + * Signals that an infrastructure link has been detected. |
12 | * | 12 | * |
13 | * @param linkDescription link information | 13 | * @param linkDescription link information |
14 | */ | 14 | */ |
15 | - void linkConnected(LinkDescription linkDescription); | 15 | + void linkDetected(LinkDescription linkDescription); |
16 | 16 | ||
17 | /** | 17 | /** |
18 | - * Signals that an infrastructure link has been disconnected. | 18 | + * Signals that an infrastructure link has disappeared. |
19 | * | 19 | * |
20 | * @param linkDescription link information | 20 | * @param linkDescription link information |
21 | */ | 21 | */ |
22 | - void linkDisconnected(LinkDescription linkDescription); | 22 | + void linkVanished(LinkDescription linkDescription); |
23 | 23 | ||
24 | } | 24 | } | ... | ... |
1 | +package org.onlab.onos.net.trivial.impl; | ||
2 | + | ||
3 | +import org.apache.felix.scr.annotations.Activate; | ||
4 | +import org.apache.felix.scr.annotations.Component; | ||
5 | +import org.apache.felix.scr.annotations.Deactivate; | ||
6 | +import org.apache.felix.scr.annotations.Service; | ||
7 | +import org.onlab.onos.net.host.HostDescription; | ||
8 | +import org.onlab.onos.net.host.HostProvider; | ||
9 | +import org.onlab.onos.net.host.HostProviderBroker; | ||
10 | +import org.onlab.onos.net.host.HostProviderService; | ||
11 | +import org.onlab.onos.net.provider.AbstractProviderBroker; | ||
12 | +import org.onlab.onos.net.provider.AbstractProviderService; | ||
13 | +import org.slf4j.Logger; | ||
14 | +import org.slf4j.LoggerFactory; | ||
15 | + | ||
16 | +/** | ||
17 | + * Provides basic implementation of the host SB & NB APIs. | ||
18 | + */ | ||
19 | +@Component(immediate = true) | ||
20 | +@Service | ||
21 | +public class SimpleHostManager implements HostProviderBroker { | ||
22 | + | ||
23 | + private Logger log = LoggerFactory.getLogger(SimpleHostManager.class); | ||
24 | + | ||
25 | + private final HostProviderBroker broker = new InternalBroker(); | ||
26 | + | ||
27 | + @Activate | ||
28 | + public void activate() { | ||
29 | + log.info("Started"); | ||
30 | + } | ||
31 | + | ||
32 | + @Deactivate | ||
33 | + public void deactivate() { | ||
34 | + log.info("Stopped"); | ||
35 | + } | ||
36 | + | ||
37 | + @Override | ||
38 | + public HostProviderService register(HostProvider provider) { | ||
39 | + log.info("Registering provider {}", provider.id()); | ||
40 | + return broker.register(provider); | ||
41 | + } | ||
42 | + | ||
43 | + @Override | ||
44 | + public void unregister(HostProvider provider) { | ||
45 | + log.info("Unregistering provider {}", provider.id()); | ||
46 | + broker.unregister(provider); | ||
47 | + } | ||
48 | + | ||
49 | + // Internal delegate for tracking various providers and issuing them a | ||
50 | + // personalized provider service. | ||
51 | + private class InternalBroker extends AbstractProviderBroker<HostProvider, HostProviderService> | ||
52 | + implements HostProviderBroker { | ||
53 | + @Override | ||
54 | + protected HostProviderService createProviderService(HostProvider provider) { | ||
55 | + return new InternalHostProviderService(provider); | ||
56 | + } | ||
57 | + } | ||
58 | + | ||
59 | + // Personalized host provider service issued to the supplied provider. | ||
60 | + private class InternalHostProviderService extends AbstractProviderService<HostProvider> | ||
61 | + implements HostProviderService { | ||
62 | + | ||
63 | + public InternalHostProviderService(HostProvider provider) { | ||
64 | + super(provider); | ||
65 | + } | ||
66 | + | ||
67 | + @Override | ||
68 | + public void hostDetected(HostDescription hostDescription) { | ||
69 | + log.info("Host {} detected", hostDescription); | ||
70 | + } | ||
71 | + | ||
72 | + @Override | ||
73 | + public void hostVanished(HostDescription hostDescription) { | ||
74 | + log.info("Host {} vanished", hostDescription); | ||
75 | + } | ||
76 | + } | ||
77 | +} |
1 | +package org.onlab.onos.net.trivial.impl; | ||
2 | + | ||
3 | +import org.apache.felix.scr.annotations.Activate; | ||
4 | +import org.apache.felix.scr.annotations.Component; | ||
5 | +import org.apache.felix.scr.annotations.Deactivate; | ||
6 | +import org.apache.felix.scr.annotations.Service; | ||
7 | +import org.onlab.onos.net.link.LinkDescription; | ||
8 | +import org.onlab.onos.net.link.LinkProvider; | ||
9 | +import org.onlab.onos.net.link.LinkProviderBroker; | ||
10 | +import org.onlab.onos.net.link.LinkProviderService; | ||
11 | +import org.onlab.onos.net.provider.AbstractProviderBroker; | ||
12 | +import org.onlab.onos.net.provider.AbstractProviderService; | ||
13 | +import org.slf4j.Logger; | ||
14 | +import org.slf4j.LoggerFactory; | ||
15 | + | ||
16 | +/** | ||
17 | + * Provides basic implementation of the link SB & NB APIs. | ||
18 | + */ | ||
19 | +@Component(immediate = true) | ||
20 | +@Service | ||
21 | +public class SimpleLinkManager implements LinkProviderBroker { | ||
22 | + | ||
23 | + private Logger log = LoggerFactory.getLogger(SimpleLinkManager.class); | ||
24 | + | ||
25 | + private final LinkProviderBroker broker = new InternalBroker(); | ||
26 | + | ||
27 | + @Activate | ||
28 | + public void activate() { | ||
29 | + log.info("Started"); | ||
30 | + } | ||
31 | + | ||
32 | + @Deactivate | ||
33 | + public void deactivate() { | ||
34 | + log.info("Stopped"); | ||
35 | + } | ||
36 | + | ||
37 | + @Override | ||
38 | + public LinkProviderService register(LinkProvider provider) { | ||
39 | + log.info("Registering provider {}", provider.id()); | ||
40 | + return broker.register(provider); | ||
41 | + } | ||
42 | + | ||
43 | + @Override | ||
44 | + public void unregister(LinkProvider provider) { | ||
45 | + log.info("Unregistering provider {}", provider.id()); | ||
46 | + broker.unregister(provider); | ||
47 | + } | ||
48 | + | ||
49 | + // Internal delegate for tracking various providers and issuing them a | ||
50 | + // personalized provider service. | ||
51 | + private class InternalBroker extends AbstractProviderBroker<LinkProvider, LinkProviderService> | ||
52 | + implements LinkProviderBroker { | ||
53 | + @Override | ||
54 | + protected LinkProviderService createProviderService(LinkProvider provider) { | ||
55 | + return new InternalLinkProviderService(provider); | ||
56 | + } | ||
57 | + } | ||
58 | + | ||
59 | + // Personalized link provider service issued to the supplied provider. | ||
60 | + private class InternalLinkProviderService extends AbstractProviderService<LinkProvider> | ||
61 | + implements LinkProviderService { | ||
62 | + | ||
63 | + public InternalLinkProviderService(LinkProvider provider) { | ||
64 | + super(provider); | ||
65 | + } | ||
66 | + | ||
67 | + @Override | ||
68 | + public void linkDetected(LinkDescription linkDescription) { | ||
69 | + log.info("Link {} detected", linkDescription); | ||
70 | + } | ||
71 | + | ||
72 | + @Override | ||
73 | + public void linkVanished(LinkDescription linkDescription) { | ||
74 | + log.info("Link {} vanished", linkDescription); | ||
75 | + } | ||
76 | + } | ||
77 | +} |
-
Please register or login to post a comment