Python の 2 つの関数を理解しようとしています。これは、ryu オープンソース コントローラーのコードに由来します。何らかの方法で LLDP を実装し、トポロジー情報を保存しようとしていると思われます。
@set_ev_cls(event.EventSwitchRequest)
と
@set_ev_cls(event.EventLinkRequest)
上記のステートメントが Python で何を意味するのかわかりません。誰かが意味を説明できれば素晴らしいと思います。ファイル全体をここに示します。Python ソースファイルへのリンク
@set_ev_cls(event.EventSwitchRequest)
def switch_request_handler(self, req):
# LOG.debug(req)
dpid = req.dpid
switches = []
if dpid is None:
# reply all list
for dp in self.dps.itervalues():
switches.append(self._get_switch(dp.id))
elif dpid in self.dps:
switches.append(self._get_switch(dpid))
rep = event.EventSwitchReply(req.src, switches)
self.reply_to_request(req, rep)
@set_ev_cls(event.EventLinkRequest)
def link_request_handler(self, req):
# LOG.debug(req)
dpid = req.dpid
if dpid is None:
links = self.links
else:
links = [link for link in self.links if link.src.dpid == dpid]
rep = event.EventLinkReply(req.src, dpid, links)
self.reply_to_request(req, rep)