summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2012-09-04 12:19:36 +0900
committerFUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>2012-09-05 09:23:37 +0900
commitae0253a36c8787b645d33eb109636ca009d65f96 (patch)
tree573130a975870a06b27172301017d5b6c4249157
parent222d6f1feedf17cabccff9e56bda44b58b8c08bf (diff)
simplify handler registration core
- we don't need register_cls() any more. - register_instance() isn't called with dispatchers argument. - set_ev_cls is always called with dispatchers argument. Signed-off-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
-rw-r--r--ryu/controller/handler.py43
1 files changed, 4 insertions, 39 deletions
diff --git a/ryu/controller/handler.py b/ryu/controller/handler.py
index 0d4308c9..4566cd5a 100644
--- a/ryu/controller/handler.py
+++ b/ryu/controller/handler.py
@@ -35,11 +35,10 @@ DISPATCHER_NAME_OFP_DEAD = 'ofp_dead'
DEAD_DISPATCHER = dispatcher.EventDispatcher(DISPATCHER_NAME_OFP_DEAD)
-def set_ev_cls(ev_cls, dispatchers=None):
+def set_ev_cls(ev_cls, dispatchers):
def _set_ev_cls_dec(handler):
handler.ev_cls = ev_cls
- if dispatchers is not None:
- handler.dispatchers = dispatchers
+ handler.dispatchers = dispatchers
return handler
return _set_ev_cls_dec
@@ -56,47 +55,13 @@ def _listify(may_list):
return may_list
-def _get_hnd_spec_dispatchers(handler, dispatchers):
- hnd_spec_dispatchers = _listify(getattr(handler, 'dispatchers', None))
- # LOG.debug("hnd_spec_dispatchers %s", hnd_spec_dispatchers)
- if hnd_spec_dispatchers:
- _dispatchers = copy.copy(dispatchers)
- _dispatchers.extend(hnd_spec_dispatchers)
- else:
- _dispatchers = dispatchers
-
- return _dispatchers
-
-
-def register_cls(dispatchers=None):
- dispatchers = _listify(dispatchers)
-
- def _register_cls_method(cls):
- for _k, f in inspect.getmembers(cls, inspect.isfunction):
- # LOG.debug('cls %s k %s f %s', cls, _k, f)
- if not _is_ev_handler(f):
- continue
-
- _dispatchers = _get_hnd_spec_dispatchers(f, dispatchers)
- # LOG.debug("_dispatchers %s", _dispatchers)
- for d in _dispatchers:
- # LOG.debug('register dispatcher %s ev %s cls %s k %s f %s',
- # d.name, f.ev_cls, cls, k, f)
- d.register_handler(f.ev_cls, f)
- return cls
-
- return _register_cls_method
-
-
-def register_instance(i, dispatchers=None):
- dispatchers = _listify(dispatchers)
-
+def register_instance(i):
for _k, m in inspect.getmembers(i, inspect.ismethod):
# LOG.debug('instance %s k %s m %s', i, _k, m)
if not _is_ev_handler(m):
continue
- _dispatchers = _get_hnd_spec_dispatchers(m, dispatchers)
+ _dispatchers = _listify(getattr(m, 'dispatchers', None))
# LOG.debug("_dispatchers %s", _dispatchers)
for d in _dispatchers:
# LOG.debug('register dispatcher %s ev %s k %s m %s',