当前位置: 首页 > news >正文

梅州做网站公司青岛品牌策划青岛博采网络好

梅州做网站公司,青岛品牌策划青岛博采网络好,株洲做网站,建行手机#xff08;接上篇#xff09; DeviceTwin struct组成剖析 该部分对DeviceTwin struct的组成进行剖析。接着devicetwin struct调用链剖析的实例化DeviceTwin struct#xff08;dt : DeviceTwin{}#xff09;往下剖析#xff0c;进入DeviceTwin struct的定义#xff0c;…接上篇 DeviceTwin struct组成剖析 该部分对DeviceTwin struct的组成进行剖析。接着devicetwin struct调用链剖析的实例化DeviceTwin structdt : DeviceTwin{}往下剖析进入DeviceTwin struct的定义具体如下所示。 KubeEdge/edge/pkg/devicetwin/devicetwin.go //DeviceTwin the module type DeviceTwin struct { context      *context.Context dtcontroller *DTController } DeviceTwin struct的定义由 *context.Context 和 *DTController两部分组成。其中*context.Context可以参考8.3.2,这里不再赘述。下面重点剖析DTController。 DTController的定义具体如下所示。 KubeEdge/edge/pkg/devicetwin/dtcontroller.go //DTController controller for devicetwin type DTController struct { HeartBeatToModule map[string]chan interface{} DTContexts        *dtcontext.DTContext DTModules         map[string]dtmodule.DTModule Stop              chan bool } 在DTController struct定义中发现\*dtcontext.DTContext和dtmodule.DTModule的定义具体如下所示。 KubeEdge/edge/pkg/devicetwin/dtcontext/dtcontext.go //DTContext context for devicetwin type DTContext struct { GroupID        string NodeID         string CommChan       map[string]chan interface{} ConfirmChan    chan interface{} ConfirmMap     *sync.Map ModulesHealth  *sync.Map ModulesContext *context.Context DeviceList     *sync.Map DeviceMutex    *sync.Map Mutex          *sync.RWMutex // DBConn *dtclient.Conn State string } 从DTContext struct的定义可以看出DTContext struct主要用来实现devicetwin的通信和缓存。DTModule.DTModule struct定义如下所示。 KubeEdge/edge/pkg/devicetwin/dtmodule/dtmodule.go //DTModule module for devicetwin type DTModule struct { Name   string Worker dtmanager.DTWorker } 在 DTModule struct定义中dtmanager.DTWorker是interface type定义如下所示。 KubeEdge/edge/pkg/devicetwin/dtmanager/dtworker.go //DTWorker worker for devicetwin type DTWorker interface { Start() } 从dtmanager.DTWorker的interface type可以推测DTModule有多种类型而且都实现了DTWorker interface。KubeEdge/edge/pkg/devicetwin/dtmodule/dtmodule.go中的InitWorker()就是用来实例化DTModule的多种类型的具体定义如下所示。 KubeEdge/edge/pkg/devicetwin/dtmodule/dtmodule.go // InitWorker init worker func (dm *DTModule) InitWorker(recv chan interface{}, confirm chan interface{}, heartBeat chan interface{}, dtContext *dtcontext.DTContext) { switch dm.Name { case dtcommon.MemModule: dm.Worker dtmanager.MemWorker{ Group: dtcommon.MemModule, Worker: dtmanager.Worker{ ReceiverChan:  recv, ConfirmChan:   confirm, HeartBeatChan: heartBeat, DTContexts:    dtContext, }, } ... } 从InitWorker()函数的定义中可以梳理出DTModule有MemWorker、TwinWorker、DeviceWorker和CommWorker四种类型。 到此EdgeCore中devicetwin的struct调用链剖析就全部结束了。 「未完待续……」
http://www.hkea.cn/news/14431377/

相关文章:

  • 社区网站的建设什么是网站ui设计
  • 企业网站建设代理公司wordpress 4.5.7
  • 网站建设的色彩搭配网站建设一个人能做吗
  • 建筑英才网首页网站seo站群软件
  • 怎样租用个人网站空间wordpress主题放到哪里
  • 一站式做网站价格静态网页设计素材
  • 做网站运营的要求洛阳霞光做网站的公司
  • 主题 外贸网站 模板做微信公众号网站
  • 佛山网站建设公司经营范围wordpress怎么修改导航
  • 网站图片链接怎么做的网站开发公司基础产品
  • 阿里云建站方案做宣传册从哪个网站找素材
  • 网站开发的基本原则网站的标题标签一般是写在
  • 西安网站建设定网络推广深圳有效渠道
  • 做网站什么时候要用到虚拟主机北京商城型网站建设
  • 床上用品网站源码新乡哪里做网站
  • 想建网站英文网站建设步骤
  • 蜂蜜网站建设网站外链数怎么查
  • 桂林市网站建设企业网站一定要花钱吗
  • 口碑好的做网站全国旅游景点视频大全
  • 专门做t恤的网站wordpress 平铺相册
  • vue做网站的优缺点微信下单小程序怎么弄
  • 江西南昌网站开发培训机构如何招生营销
  • 北京做彩右影影视公司网站网站建设费用明细表
  • 济宁网站建设优惠枣庄定制网站建设公司
  • 备案期间怎么访问网站室内设计师35岁后的出路
  • 淮北建网站网站备案怎么办
  • 上海网站建设做物流一关于做营销型网站的建议
  • 佛山网站优化运营最好的网站开发公司
  • 网站建设需要哪些条件东道设计公司招聘
  • 腾讯云网站制作教程住房和城乡建设主管部门网站