可以將其註冊到POX的Core中
後續調用就比較方便了
建立自己的Class
註冊的方式有兩種,我們建立自己的Class實現自定義功能時,使用這兩種方法將Class註冊到Core裡面,Core主要是統整各個Class,以上兩種函數都是註冊的方法,則一即可
匯入函數: from pox.core import core
core.register()
core.register("class註冊到Core中用的名字",class的實例)
core.register()例子
#coding=utf-8 #!/usr/bin/python from pox.core import core class MyClass(object): def __init__(self, an_arg): #呼叫函數後基本都會執行這個部分an_arg會收到傳來的參數 self.arg = an_arg print "MyClass instance registered:", self.arg def message(self): print "MyClass with arg:", self.arg def launch(): component = MyClass("Hello world!") #新建物件,傳參數 core.register("nameofclass", component) #註冊這個class的名字是nameofclass,然後調用 core.nameofclass.message() #註冊好之後,我們試著調用class裡面的函數
core.registerNew()
core.registerNew("class的名字",傳到Class的參數)
需要注意的是使用core.registerNew,如果再class裡面沒有給予名字,則core會直接把Class的名字註冊進去
core.registerNew()例子
#coding=utf-8 #!/usr/bin/python from pox.core import core class MyClass(object): _core_name = "square" #可以在class裡面以_core_name建立註冊進Core的名稱,這邊沒放就會直接註冊class名稱 def __init__(self, an_arg): self.arg = an_arg print "MyClass instance registered:", self.arg def message(self): print "MyClass with arg:", self.arg core.call_when_ready(message, 'openflow', 'openflow_discovery') #當openflow與openflow_discovery class註冊後,開始message函數 def launch(): core.registerNew(MyClass, "HelloWorld") #該Class,傳入的參數 core.nameofclass.message() #註冊完後就可以用Core的方式調用函數
沒有留言:
張貼留言