blob: 20775d03990b46d36d737457290d6fb47ba6f45b [file] [log] [blame]
Laszlo Papp86455232018-03-13 14:32:56 +00001/*
2 * Copyright 2018 Open Networking Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package org.onosproject.drivers.polatis.openflow;
18
Ray Milkeyd84f89b2018-08-17 14:54:17 -070019import org.osgi.service.component.annotations.Activate;
20import org.osgi.service.component.annotations.Component;
21import org.osgi.service.component.annotations.Deactivate;
22import org.osgi.service.component.annotations.Reference;
23import org.osgi.service.component.annotations.ReferenceCardinality;
Laszlo Papp86455232018-03-13 14:32:56 +000024import org.onosproject.net.driver.AbstractDriverLoader;
25import org.onosproject.net.optical.OpticalDevice;
26import org.onosproject.ui.UiGlyph;
27import org.onosproject.ui.UiGlyphFactory;
28import org.onosproject.ui.UiExtensionService;
29
30import com.google.common.collect.ImmutableList;
31
32/**
33 * Loader for Polatis OpenFlow device drivers.
34 */
35@Component(immediate = true)
36public class PolatisDriversLoader extends AbstractDriverLoader {
37
38 // OSGI: help bundle plugin discover runtime package dependency.
39 @SuppressWarnings("unused")
40 private OpticalDevice optical;
41
Ray Milkeyd84f89b2018-08-17 14:54:17 -070042 @Reference(cardinality = ReferenceCardinality.MANDATORY)
Laszlo Papp86455232018-03-13 14:32:56 +000043 protected UiExtensionService uiExtensionService;
44
45 private UiGlyphFactory glyphFactory =
46 () -> ImmutableList.of(
47 new UiGlyph("policon", "0 0 64 64",
48 "M 32.024746,2 30.163615,19.069136 24.258784,3.015638 "
49 + "26.879599,19.985033 17.021343,6.007051 23.943688,21.71947 "
50 + "10.8045,10.769161 21.557349,24.15439 6.031794,16.978659 "
51 + "19.883076,27.1245 3.027943,24.21114 19.033986,30.42674 "
52 + "2,31.97526 19.069136,33.83639 3.015638,39.74122 "
53 + "19.985033,37.12041 6.007051,46.97866 21.719466,40.05632 "
54 + "10.769161,53.19551 24.154391,42.44265 16.978659,57.96822 "
55 + "27.124504,44.11693 24.21114,60.97206 30.426738,44.96602 "
56 + "31.975259,62 33.83639,44.93086 39.74122,60.98437 "
57 + "37.120405,44.01497 46.978663,57.99296 40.056317,42.28054 "
58 + "53.195507,53.23084 42.442656,39.84561 57.968215,47.02135 "
59 + "44.116927,36.8755 60.972063,39.78886 44.966018,33.57327 "
60 + "62,32.02475 44.930865,30.16362 60.984369,24.25878 "
61 + "44.014972,26.8796 57.992959,17.021342 42.280539,23.94369 "
62 + "53.23084,10.8045 39.845614,21.55735 47.021349,6.031794 "
63 + "36.875501,19.883076 39.788865,3.027943 33.573267,19.033986 Z "
64 + "m -0.05497,19.23081 A 10.768943,10.768943 0 0 1 "
65 + "42.769201,31.96977 10.768943,10.768943 0 0 1 "
66 + "32.030235,42.7692 10.768943,10.768943 0 0 1 "
67 + "21.230812,32.03023 10.768943,10.768943 0 0 1 "
68 + "31.969778,21.23081 Z")
69 );
70
71 public PolatisDriversLoader() {
72 super("/polatis-openflow-drivers.xml");
73 }
74
75 @Activate
76 @Override
77 protected void activate() {
78 uiExtensionService.register(glyphFactory);
79 super.activate();
80 }
81
82 @Deactivate
83 @Override
84 protected void deactivate() {
85 uiExtensionService.unregister(glyphFactory);
86 super.deactivate();
87 }
88
89}