首页 > 其他 > 详细

Floodlight之 FloodlightContextStore 数据结构

时间:2014-06-24 23:08:16      阅读:543      评论:0      收藏:0      [点我收藏+]

     FloodlightContextStore 代表的是一种缓存模型(利用的是ConcurrentHashMap),里面存储的是上下文相关的对象,能够根据相应的key得到具体的 Object,存在的意义是Floodlight中注册监听某个事件的listener可以在被调用的时候直接从中取出上下文信息(context information)。下面是重要的代码片段.

基本数据结构:
public class FloodlightContext {
    protected ConcurrentHashMap<String, Object> storage =
            new ConcurrentHashMap<String, Object>();

    public ConcurrentHashMap<String, Object> getStorage() {
        return storage ;
    }
}
-----------
public class FloodlightContextStore<V> {
   
    @SuppressWarnings( "unchecked" )
    public V get(FloodlightContext bc, String key) {
        return (V)bc.storage .get(key);
    }
   
    public void put(FloodlightContext bc, String key, V value) {
        bc. storage.put(key, value);
    }
   
    public void remove(FloodlightContext bc, String key) {
        bc. storage.remove(key);
    }
}

使用场景:
if (eth != null ) {
   IFloodlightProviderService.bcStore.put(bc,IFloodlightProviderService.CONTEXT_PI_PAYLOAD,     eth);
}

其中,核心接口 IFloodlightProviderService(下面是类层次图) 是Floodlight controller 和 openflow SW交互的部分,其中的成员 bcStore 存储的是解析后的packet in代表的ethenet实例,所以其他监听packet in的listeners可以直接取出,进行处理。
bubuko.com,布布扣
bubuko.com,布布扣









Floodlight之 FloodlightContextStore 数据结构,布布扣,bubuko.com

Floodlight之 FloodlightContextStore 数据结构

原文:http://blog.csdn.net/vonzhoufz/article/details/33744563

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!