本文整理汇总了Golang中context.Context.RegisteComponent方法的典型用法代码示例。如果您正苦于以下问题:Golang Context.RegisteComponent方法的具体用法?Golang Context.RegisteComponent怎么用?Golang Context.RegisteComponent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类context.Context
的用法示例。
在下文中一共展示了Context.RegisteComponent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: NewCoConnector
/// 创建新的CoConnetor组件.
///
/// 创建CoConnector组件时,CoConnector组件使用到的CoSession组件,CoConnection组件一同创建,
/// CoServer组件则通过Context拿到,在CoConnector组件启动时加载.
func NewCoConnector(ctx *context.Context) *CoConnector {
cocnct, ok := ctx.GetComponent("coconnector").(*CoConnector)
if ok == true {
return cocnct
}
var decode func([]byte) (interface{}, error)
var encode func(string, string, map[string]interface{}) ([]byte, error)
cnct := getConnector(ctx)
if opts, ok := ctx.AllOpts["coconnector"]; ok == true {
decode, _ = opts["decode"].(func([]byte) (interface{}, error))
encode, _ = opts["encode"].(func(string, string, map[string]interface{}) ([]byte, error))
}
coserv, ok1 := ctx.GetComponent("coserver").(*coserver.CoServer)
if ok1 == false {
coserv = coserver.NewCoServer()
}
cosess, ok2 := ctx.GetComponent("cosession").(*cosession.CoSession)
if ok2 == false {
cosess = cosession.NewCoSession()
}
coconn, ok3 := ctx.GetComponent("coconnection").(*coconnection.CoConnection)
if ok3 == false {
coconn = coconnection.NewCoConnection()
}
cocnct = &CoConnector{ctx, cnct, coserv, cosess, coconn, decode, encode}
ctx.RegisteComponent("coconnector", cocnct)
return cocnct
}