blob: 20775d03990b46d36d737457290d6fb47ba6f45b [file] [log] [blame]
/*
* Copyright 2018 Open Networking Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.onosproject.drivers.polatis.openflow;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
import org.osgi.service.component.annotations.Reference;
import org.osgi.service.component.annotations.ReferenceCardinality;
import org.onosproject.net.driver.AbstractDriverLoader;
import org.onosproject.net.optical.OpticalDevice;
import org.onosproject.ui.UiGlyph;
import org.onosproject.ui.UiGlyphFactory;
import org.onosproject.ui.UiExtensionService;
import com.google.common.collect.ImmutableList;
/**
* Loader for Polatis OpenFlow device drivers.
*/
@Component(immediate = true)
public class PolatisDriversLoader extends AbstractDriverLoader {
// OSGI: help bundle plugin discover runtime package dependency.
@SuppressWarnings("unused")
private OpticalDevice optical;
@Reference(cardinality = ReferenceCardinality.MANDATORY)
protected UiExtensionService uiExtensionService;
private UiGlyphFactory glyphFactory =
() -> ImmutableList.of(
new UiGlyph("policon", "0 0 64 64",
"M 32.024746,2 30.163615,19.069136 24.258784,3.015638 "
+ "26.879599,19.985033 17.021343,6.007051 23.943688,21.71947 "
+ "10.8045,10.769161 21.557349,24.15439 6.031794,16.978659 "
+ "19.883076,27.1245 3.027943,24.21114 19.033986,30.42674 "
+ "2,31.97526 19.069136,33.83639 3.015638,39.74122 "
+ "19.985033,37.12041 6.007051,46.97866 21.719466,40.05632 "
+ "10.769161,53.19551 24.154391,42.44265 16.978659,57.96822 "
+ "27.124504,44.11693 24.21114,60.97206 30.426738,44.96602 "
+ "31.975259,62 33.83639,44.93086 39.74122,60.98437 "
+ "37.120405,44.01497 46.978663,57.99296 40.056317,42.28054 "
+ "53.195507,53.23084 42.442656,39.84561 57.968215,47.02135 "
+ "44.116927,36.8755 60.972063,39.78886 44.966018,33.57327 "
+ "62,32.02475 44.930865,30.16362 60.984369,24.25878 "
+ "44.014972,26.8796 57.992959,17.021342 42.280539,23.94369 "
+ "53.23084,10.8045 39.845614,21.55735 47.021349,6.031794 "
+ "36.875501,19.883076 39.788865,3.027943 33.573267,19.033986 Z "
+ "m -0.05497,19.23081 A 10.768943,10.768943 0 0 1 "
+ "42.769201,31.96977 10.768943,10.768943 0 0 1 "
+ "32.030235,42.7692 10.768943,10.768943 0 0 1 "
+ "21.230812,32.03023 10.768943,10.768943 0 0 1 "
+ "31.969778,21.23081 Z")
);
public PolatisDriversLoader() {
super("/polatis-openflow-drivers.xml");
}
@Activate
@Override
protected void activate() {
uiExtensionService.register(glyphFactory);
super.activate();
}
@Deactivate
@Override
protected void deactivate() {
uiExtensionService.unregister(glyphFactory);
super.deactivate();
}
}