




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
package net.floodlightcontroller.core;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Map;? java.util.ArrayListList接口的可调数组的实现。它可以实现所有可选的List操作,允许所有元素,包括null。除了实现List接口,这个类还提供了操纵数组大小的方法来在内部存储这个列表。? java.util.Collection为在collection分层结构中的根接口。Collection代表一组对象,即为元素。一些collection可以复制元素,一些是有序的。JDK不提供这个接口的直接实现:它只提供更加具体的子接口的实现,像是Set和List。Collection 的实现实现collection接口的类名通常为这种形式:,总结如下:InterfaceHash TableResizable ArrayBalanced TreeLinked ListHash Table + Linked ListSetHashSet TreeSet LinkedHashSetList ArrayList LinkedList Deque ArrayDeque LinkedList MapHashMap TreeMap LinkedHashMap AbstractCollection, AbstractSet, AbstractList, AbstractSequentialList and AbstractMap 这些类提供了核心collection接口的基本实现,来使实现它们的需要最小化。这些类的API文档精确地描述了实现了多少方法,所以通过这些特定实现的基本操作,类的实现会分清哪些方法需要被忽略。? java.util.HashMapHash表是基于Map接口实现的。这个实现提供了所有可选map操作,并且允许null值和null键,为非同步。此类不保证map顺序不变。? java.util.Map把键映射到值。Map不可以包含复制的键,每个键只能映射到一个值。import ernal.Controller;import net.floodlightcontroller.core.module.FloodlightModuleContext;import net.floodlightcontroller.core.module.FloodlightModuleException;import net.floodlightcontroller.core.module.IFloodlightModule;import net.floodlightcontroller.core.module.IFloodlightService;import net.floodlightcontroller.counter.ICounterStoreService;import net.floodlightcontroller.debugcounter.IDebugCounterService;import net.floodlightcontroller.flowcache.IFlowCacheService;import net.floodlightcontroller.perfmon.IPktInProcessingTimeService;import net.floodlightcontroller.restserver.IRestApiService;import net.floodlightcontroller.storage.IStorageSourceService;import net.floodlightcontroller.threadpool.IThreadPoolService;? ernal.Controller主要的controller类。处理所有的启动和网络监听。? net.floodlightcontroller.core.module.FloodlightModuleContextIFloodlightProvider服务的注册表。? java.lang.ExceptionException和它的子类是一种Throwable形式,指示一种合理的应用可能想要捕捉的状态。Exception类和一些不是RuntimeException的子类是checked exceptions。Checked exceptions需要被在一个方法中声明,如果它们可以被方法的执行丢弃并且传播到方法或构建类的边界之外,就要在构建类的throws从句中声明。? net.floodlightcontroller.core.module.IFloodlightModule为加载的Floodlight模块定义了一个接口。功能的结构如下:1 getServices() : what services does this module provide2 getDependencies() : list the dependencies3 init() : internal initializations (dont touch other modules)4 startUp() : external initializations (do touch other modules)? net.floodlightcontroller.core.module.IFloodlightService任何提供服务的IFloodlightModule包的基本接口。net.floodlightcontroller.counter.ICounterStoreService接口和IDebugCounterService接口,IFlowCacheService接口,IPktInProcessingTimeService接口,IRestApiService接口继承了IFloodlightService。? net.floodlightcontroller.flowcache.IFlowCacheService接口的IFlowCache.通用接口 APIs 到 Big Switch Flow-缓存服务. Flow-缓存维护了在底层网络中正在被利用的网络层的流。流缓存可以用相应的API,通过多种滤波器来访问。public class FloodlightProvider implements IFloodlightModule Controller controller;声明类名,并且此类实现IFloodlightModule接口。声明一个controller变量,故之前需导入ernal.Controller类。Controller的实现会在另外篇幅介绍。 OverridePublicCollectionClassgetModuleServices() CollectionClass services = new ArrayListClass(1); services.add(IFloodlightProviderService.class); return services;override表明这个方法声明故意忽略在超类中的方法声明。PublicCollectionClassgetModuleServices() 可以看做是每个类实现IFloodlightModule时的固定格式。其中CollectionClass可以看做是继承了IFloodlightService接口的一个类所组成的Collection,而且由此Collection作为返回值。下面用new对ArrayListClass进行实例化,实例名为services,(1)表示构建一个原始大小为1的列表,元素的类型为Class。services.add(IFloodlightProviderService.class)中services.add是利用之前实例化的类ArrayList中的add方法,在services列表中加上一个元素,类型如(IFloodlightProviderService.class)所示,表示构造一个IFloodlightProviderService的类。 Override public MapClass, IFloodlightService getServiceImpls() controller = new Controller(); MapClass, IFloodlightService m = new HashMapClass, IFloodlightService(); m.put(IFloodlightProviderService.class, controller); return m; MapClass,IFloodlightService中Map接口的格式为:Interface Map 类型参数:K- 在映射中保持的键的类型V- 被映射的值的类型HashMapClass,IFloodlightService();Hash表是基于Map接口来实现的。这个实现提供了所有可选的映射操作,并且允许空值和空键。此表不保证map的顺序;而Hashmap的特性与Hash表相似。这一类型不保证map的顺序不变。 Override public CollectionClass getModuleDependencies() CollectionClass dependencies = new ArrayListClass(4); dependencies.add(IStorageSourceService.class); dependencies.add(IPktInProcessingTimeService.class); dependencies.add(IRestApiService.class); dependencies.add(ICounterStoreService.class); dependencies.add(IDebugCounterService.class); dependencies.add(IFlowCacheService.class); dependencies.add(IThreadPoolService.class); return dependencies; Override public void init(FloodlightModuleContext context) throws FloodlightModuleException controller.setStorageSourceService( context.getServiceImpl(IStorageSourceService.class); controller.setPktInProcessingService( context.getServiceImpl(IPktInProcessingTimeService.class); controller.setCounterStore( context.getServiceImpl(ICounterStoreService.class); controller.setDebugCounter( context.getServiceImpl(IDebugCounterService.class); controller.setFlowCacheMgr( context.getServiceImpl(IFlowCacheService.class); controller.setRestApiService( context.getServiceImpl(IRestApiService.class); controller.setThreadPoolService( context.getServiceImpl(IThreadPoolService.class); controller.init(context.getConfigParams(this); public void init(FloodlightModuleContext context) throws FloodlightModuleException 这是每一个模块进行内部初始化的固定格式,throws声明方法可能回避的异常,当有异常抛出时会中断该方法,而异常被抛到这个方法的调用者那里。这个有点像下属处理不了的问题就交到上司手里一样,这种情况称为回避异常。但是这使得调用这个方法就有
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 特种作业安全培训
- 浙江国企招聘2024宁波象山县市场开发经营有限公司招聘1人笔试参考题库附带答案详解
- 【高中++语文】《兰亭集序》课件+统编版高二语文选择性必修下册
- 2025重庆九洲隆瓴科技有限公司招聘软件技术员等岗位29人笔试参考题库附带答案详解
- 2025河南郑州空中丝路文化传媒有限公司招聘实习生7人笔试参考题库附带答案详解
- 环境管理专业考研分享
- 河北省沧州市任丘市2021-2022学年八年级上学期期末考试物理试题【含答案】
- 2025年陕西供销集团有限公司社会招聘(8人)笔试参考题库附带答案详解
- 2025年山东省环保发展集团绿能有限公司及权属企业招聘(社招校招)(75人)笔试参考题库附带答案详解
- 采购合同执行跨组织创新重点基础知识点
- 2023年郑州轨道工程职业学院单招职业适应性考试题库及答案1套
- 2025年许昌职业技术学院单招职业技能测试题库附答案
- 2025年平顶山文化艺术职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 上海市宝山区上海交大附中2024-2025学年高考生物试题模拟试卷(8)生物试题含解析
- 私募基金财务管理制度版本
- 国家粮食和物资储备局直属联系单位招聘笔试真题2024
- 2024年新食品安全法相关试题及答案
- 新疆阿克苏地区拜城县2023-2024学年七年级下学期数学期中考试试题(含答案)
- 攀枝花2025年四川攀枝花市仁和区事业单位春季引才(15人)笔试历年参考题库附带答案详解
- 2025-2030全球及中国炼油厂服务行业市场现状供需分析及投资评估规划分析研究报告
- 劳务派遣标书项目实施方案
评论
0/150
提交评论