• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang fwk.Context类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/go-hep/fwk.Context的典型用法代码示例。如果您正苦于以下问题:Golang Context类的具体用法?Golang Context怎么用?Golang Context使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



在下文中一共展示了Context类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: Configure

func (tsk *CPUCruncher) Configure(ctx fwk.Context) error {
	var err error

	for _, input := range tsk.inputs {
		if input == "" {
			continue
		}
		err = tsk.DeclInPort(input, reflect.TypeOf(int64(0)))
		if err != nil {
			return err
		}
	}

	for _, output := range tsk.outputs {
		if output == "" {
			continue
		}
		err = tsk.DeclOutPort(output, reflect.TypeOf(int64(0)))
		if err != nil {
			return err
		}
	}

	if len(tsk.cpus) <= 0 {
		msg := ctx.Msg()
		msg.Errorf("invalid cpu-timings list: %v\n", tsk.cpus)
		return fwk.Errorf("invalid cpu-timings")
	}

	return err
}
开发者ID:postfix,项目名称:fwk,代码行数:31,代码来源:cruncher.go


示例2: Write

func (o *OutputStreamer) Write(ctx fwk.Context) error {
	var err error
	store := ctx.Store()

	for i, rec := range o.recs {
		port := o.ports[i]

		n := rec.Name()
		blk := rec.Block(n)
		obj, err := store.Get(n)
		if err != nil {
			return err
		}

		rt := reflect.TypeOf(obj)
		if rt != port.Type {
			return fwk.Errorf("record[%s]: got type=%q. want type=%q.",
				rec.Name(),
				rt.Name(),
				port.Type,
			)
		}

		err = blk.Write(obj)
		if err != nil {
			return err
		}

		err = rec.Write()
		if err != nil {
			return err
		}
	}
	return err
}
开发者ID:postfix,项目名称:fwk,代码行数:35,代码来源:output.go


示例3: StopTask

func (tsk *testhsvc) StopTask(ctx fwk.Context) error {
	var err error

	h := tsk.h1d.Hist
	if h.Entries() != *evtmax {
		return fwk.Errorf("expected %d entries. got=%d", *evtmax, h.Entries())
	}
	mean := h.Mean()
	if mean != 4.5 {
		return fwk.Errorf("expected mean=%v. got=%v", 4.5, mean)
	}

	rms := h.RMS()
	if rms != 2.8722813232690143 {
		return fwk.Errorf("expected RMS=%v. got=%v", 2.8722813232690143, rms)
	}
	msg := ctx.Msg()
	msg.Infof("histo[%s]: entries=%v mean=%v RMS=%v\n",
		tsk.h1d.ID,
		h.Entries(),
		h.Mean(),
		h.RMS(),
	)

	return err
}
开发者ID:postfix,项目名称:fwk,代码行数:26,代码来源:htask.go


示例4: Read

func (input *InputStreamer) Read(ctx fwk.Context) error {
	var err error
	store := ctx.Store()
	recs := make(map[string]struct{}, len(input.ports))
	for i := 0; i < len(input.ports); i++ {
		if !input.scan.Scan() {
			err = input.scan.Err()
			if err == nil {
				return io.EOF
			}
		}
		rec := input.scan.Record()
		blk := rec.Block(rec.Name())
		obj := reflect.New(input.ports[rec.Name()].Type).Elem()
		err := blk.Read(obj.Addr().Interface())
		if err != nil {
			return fwk.Errorf("block-read error: %v", err)
		}
		err = store.Put(rec.Name(), obj.Interface())
		if err != nil {
			return fwk.Errorf("store-put error: %v", err)
		}
		recs[rec.Name()] = struct{}{}
	}

	if len(recs) != len(input.ports) {
		return fwk.Errorf("fwk.rio: expected inputs: %d. got: %d.", len(input.ports), len(recs))
	}

	return err
}
开发者ID:postfix,项目名称:fwk,代码行数:31,代码来源:input.go


示例5: Process

func (tsk *task3) Process(ctx fwk.Context) error {
	msg := ctx.Msg()
	msg.Infof("proc...\n")
	store := ctx.Store()

	parts := make([]int, 0)
	err := store.Put(tsk.parts, parts)
	if err != nil {
		return err
	}

	return nil
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:13,代码来源:task3.go


示例6: Configure

func (tsk *task3) Configure(ctx fwk.Context) error {
	var err error
	msg := ctx.Msg()
	msg.Infof("configure...\n")

	err = tsk.DeclOutPort(tsk.parts, reflect.TypeOf([]int{}))
	if err != nil {
		return err
	}

	msg.Infof("configure... [done]\n")
	return err
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:13,代码来源:task3.go


示例7: Write

func (out *OutputStream) Write(ctx fwk.Context) error {
	var err error
	store := ctx.Store()
	v, err := store.Get(out.input)
	if err != nil {
		return err
	}

	data := v.(int64)
	_, err = out.W.Write([]byte(fmt.Sprintf("%d\n", data)))
	if err != nil {
		return err
	}

	return err
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:16,代码来源:outputstream.go


示例8: Read

func (stream *InputStream) Read(ctx fwk.Context) error {
	var err error
	store := ctx.Store()
	var data int64
	_, err = fmt.Fscanf(stream.R, "%d\n", &data)
	if err != nil {
		return err
	}

	err = store.Put(stream.output, data)
	if err != nil {
		return err
	}

	return err
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:16,代码来源:inputstream.go


示例9: StopTask

func (tsk *reducer) StopTask(ctx fwk.Context) error {
	var err error

	tsk.mux.RLock()
	sum := tsk.sum
	nevts := tsk.nevts
	tsk.mux.RUnlock()

	msg := ctx.Msg()
	if sum != tsk.exp {
		msg.Errorf("expected sum=%v. got=%v (nevts=%d)\n", tsk.exp, sum, nevts)
		return fwk.Errorf("%s: expected sum=%v. got=%v (nevts=%d)", tsk.Name(), tsk.exp, sum, nevts)
	}
	msg.Debugf("expected sum=%v. got=%v (all GOOD) (nevts=%d)\n", tsk.exp, sum, nevts)

	return err
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:17,代码来源:reducer.go


示例10: Configure

func (tsk *testhsvc) Configure(ctx fwk.Context) error {
	var err error

	svc, err := ctx.Svc("histsvc")
	if err != nil {
		return err
	}

	tsk.hsvc = svc.(fwk.HistSvc)

	tsk.h1d, err = tsk.hsvc.BookH1D("h1d-"+tsk.Name(), 100, -10, 10)
	if err != nil {
		return err
	}

	return err
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:17,代码来源:hsvc_test.go


示例11: Configure

func (tsk *task2) Configure(ctx fwk.Context) error {
	var err error
	msg := ctx.Msg()
	msg.Infof("configure...\n")

	err = tsk.DeclInPort(tsk.input, reflect.TypeOf(int64(1)))
	if err != nil {
		return err
	}

	err = tsk.DeclOutPort(tsk.output, reflect.TypeOf(int64(1)))
	if err != nil {
		return err
	}

	msg.Infof("configure... [done]\n")
	return err
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:18,代码来源:task2.go


示例12: Process

func (tsk *CPUCruncher) Process(ctx fwk.Context) error {
	var err error
	store := ctx.Store()
	for _, input := range tsk.inputs {
		_, err = store.Get(input)
		if err != nil {
			return err
		}
	}

	cpu := <-tsk.cpuch
	time.Sleep(time.Duration(cpu) * time.Microsecond)

	for _, output := range tsk.outputs {
		err = store.Put(output, cpu)
		if err != nil {
			return err
		}
	}

	return err
}
开发者ID:postfix,项目名称:fwk,代码行数:22,代码来源:cruncher.go


示例13: Process

func (tsk *task2) Process(ctx fwk.Context) error {
	store := ctx.Store()
	msg := ctx.Msg()
	v, err := store.Get(tsk.input)
	if err != nil {
		return err
	}
	i := v.(int64)
	o := tsk.fct(i)
	err = store.Put(tsk.output, o)
	if err != nil {
		return err
	}

	msg.Infof("proc... (id=%d|%d) => [%d -> %d]\n", ctx.ID(), ctx.Slot(), i, o)
	return nil
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:17,代码来源:task2.go


示例14: StartTask

func (tsk *testhsvc) StartTask(ctx fwk.Context) error {
	var err error

	svc, err := ctx.Svc("histsvc")
	if err != nil {
		return err
	}

	tsk.hsvc = svc.(fwk.HistSvc)

	if !strings.HasPrefix(tsk.stream, "/") {
		tsk.stream = "/" + tsk.stream
	}
	if strings.HasSuffix(tsk.stream, "/") {
		tsk.stream = tsk.stream[:len(tsk.stream)-1]
	}

	tsk.h1d, err = tsk.hsvc.BookH1D(tsk.stream+"/h1d-"+tsk.Name(), 100, -10, 10)
	if err != nil {
		return err
	}

	return err
}
开发者ID:postfix,项目名称:fwk,代码行数:24,代码来源:htask.go


示例15: Process

func (tsk *task1) Process(ctx fwk.Context) error {
	var err error
	msg := ctx.Msg()
	msg.Infof("proc... (id=%d|%d) => [%d, %d]\n", ctx.ID(), ctx.Slot(), tsk.i1, tsk.i2)
	store := ctx.Store()

	err = store.Put(tsk.i1prop, tsk.i1)
	if err != nil {
		return err
	}

	err = store.Put(tsk.i2prop, tsk.i2)
	if err != nil {
		return err
	}

	return nil
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:18,代码来源:task1.go


示例16: Process

func (tsk *reducer) Process(ctx fwk.Context) error {
	var err error

	tsk.mux.Lock()
	tsk.nevts += 1
	tsk.mux.Unlock()

	store := ctx.Store()
	v, err := store.Get(tsk.input)
	if err != nil {
		return err
	}

	val := v.(int64)
	tsk.mux.Lock()
	tsk.sum += val
	sum := tsk.sum
	tsk.mux.Unlock()

	msg := ctx.Msg()
	msg.Infof("sum=%d (id=%d|%d)\n", sum, ctx.ID(), ctx.Slot())
	return err
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:23,代码来源:reducer.go


示例17: StartTask

func (tsk *task3) StartTask(ctx fwk.Context) error {
	msg := ctx.Msg()
	msg.Infof("start...\n")
	return nil
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:5,代码来源:task3.go


示例18: StopTask

func (tsk *task2) StopTask(ctx fwk.Context) error {
	msg := ctx.Msg()
	msg.Infof("stop...\n")
	return nil
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:5,代码来源:task2.go


示例19: Process

func (tsk *testhsvc) Process(ctx fwk.Context) error {
	var err error
	id := ctx.ID()
	tsk.hsvc.FillH1D(tsk.h1d.ID, float64(id), 1)
	return err
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:6,代码来源:hsvc_test.go


示例20: StopSvc

func (svc *svc1) StopSvc(ctx fwk.Context) error {
	var err error
	msg := ctx.Msg()
	msg.Infof("-- stop svc --\n")
	return err
}
开发者ID:andradeandrey,项目名称:fwk,代码行数:6,代码来源:svc1.go



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang kernel.StatusCode函数代码示例发布时间:2022-05-23
下一篇:
Golang gorp.Transaction类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap