tom

Added more trivial core implementations.

...@@ -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 &amp; 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 &amp; 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 +}