当前位置: 首页>>代码示例>>Golang>>正文


Golang Context.RegisteComponent方法代码示例

本文整理汇总了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
}
开发者ID:liweisheng,项目名称:server-framework,代码行数:40,代码来源:coconnector.go


注:本文中的context.Context.RegisteComponent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。