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


Golang plumb.NewEyeCognizer函数代码示例

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


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

示例1: Materialize

func (x Process) Materialize() be.Reflex {
	p := &process{
		spawn: make(chan interface{}),
	}
	reflex, _ := plumb.NewEyeCognizer(p.cognize, "Command", "Spawn", "Exit", "IO")
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:7,代码来源:proc.go

示例2: Materialize

func (Strobe) Materialize() be.Reflex {
	x := &strobe{
		when:   make(chan interface{}, 1), // whens and charges cannot be out of order by more than one slot
		charge: make(chan interface{}, 1),
	}
	reflex, _ := plumb.NewEyeCognizer(x.Cognize, "Charge", "When", "Strobe")
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:8,代码来源:strobe.go

示例3: MaterializeWriteTo

func MaterializeWriteTo(w io.Writer) be.Reflex {
	x := &writerTo{
		WriteCloser: kitio.SovereignWriter(w),
	}
	reflex, eye := plumb.NewEyeCognizer(x.cognize, "_")
	go eye.Show("_", x.WriteCloser)
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:8,代码来源:stdio.go

示例4: MaterializeReadFrom

func MaterializeReadFrom(w io.Reader) be.Reflex {
	x := &readFrom{
		ReadCloser: kitio.SovereignReader(w),
	}
	reflex, eye := plumb.NewEyeCognizer(x.cognize, "_")
	go eye.Show("_", x.ReadCloser)
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:8,代码来源:stdio.go

示例5: Materialize

func (Exit) Materialize() be.Reflex {
	reflex, _ := plumb.NewEyeCognizer(
		func(eye *plumb.Eye, valve string, value interface{}) {
			os.Exit(value.(int))
		},
		"_",
	)
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:9,代码来源:os.go

示例6: Materialize

func (Memory) Materialize() be.Reflex {
	h := &memory{
		focus:  make(chan []interface{}),
		learn:  make(chan *eu.Circuit),
		recall: make(chan []interface{}),
	}
	reflex, eye := plumb.NewEyeCognizer(h.Cognize, "Focus", "Learn", "Recall", "Use")
	go h.loop(eye)
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:10,代码来源:memory.go

示例7: Materialize

func (See) Materialize() be.Reflex {
	reflex, _ := plumb.NewEyeCognizer(
		func(eye *plumb.Eye, dvalve string, dvalue interface{}) {
			if dvalve != "Source" {
				return
			}
			eye.Show("Seen", es.SeeCircuit(es.NewSrcString(plumb.AsString(dvalue))))
		},
		"Source", "Seen",
	)
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:12,代码来源:see.go

示例8: Materialize

func (Lookup) Materialize() be.Reflex {
	reflex, _ := plumb.NewEyeCognizer(
		func(eye *plumb.Eye, dvalve string, dvalue interface{}) {
			if dvalve != "Address" {
				return
			}
			_, r := faculty.Root.LookupAddress(dvalue.(string))
			eye.Show("Circuit", r.(Circuit))
		},
		"Address", "Circuit",
	)
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:13,代码来源:escher.go

示例9: Materialize

func (Understand) Materialize() be.Reflex {
	reflex, _ := plumb.NewEyeCognizer(
		func(eye *plumb.Eye, dvalve string, dvalue interface{}) {
			if dvalve != "Seen" {
				return
			}
			switch t := dvalue.(type) {
			case *es.Circuit:
				eye.Show("Understood", eu.Understand(t))
			}
			panic("nil or unknown seen")
		},
		"Seen", "Understood",
	)
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:16,代码来源:understand.go

示例10: Materialize

func (MergeBlend) Materialize() be.Reflex {
	reflex, _ := plumb.NewEyeCognizer(
		func(eye *plumb.Eye, valve string, value interface{}) {
			if valve != "XYZ" {
				return
			}
			xyz := value.(Circuit)
			var w bytes.Buffer
			w.WriteString(flatten(xyz.StringAt("X")))
			w.WriteString(flatten(xyz.StringAt("Y")))
			w.WriteString(flatten(xyz.StringAt("Z")))
			eye.Show("_", w.String())
		},
		"XYZ", "_",
	)
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:17,代码来源:merge.go

示例11: Materialize

func (FormBlend) Materialize() be.Reflex {
	reflex, _ := plumb.NewEyeCognizer(
		func(eye *plumb.Eye, valve string, value interface{}) {
			if valve != "FormData" {
				return
			}
			fd := value.(Circuit)
			t, err := template.New("").Parse(fd.StringAt("Form"))
			if err != nil {
				panic(err)
			}
			var w bytes.Buffer
			if err = t.Execute(&w, fd.At("Data")); err != nil {
				panic(err)
			}
			eye.Show("_", w.String())
		},
		"FormData", "_",
	)
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:21,代码来源:form.go

示例12: Materialize

func (d Dir) Materialize() be.Reflex {
	x := dir(d.dir)
	reflex, _ := plumb.NewEyeCognizer(x.Cognize, "Path", "_")
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:5,代码来源:acid.go

示例13: Materialize

func (Client) Materialize() be.Reflex {
	var c1, a1 sync.Once
	api, consumer, access := make(chan *anaconda.TwitterApi), make(chan Image, 1), make(chan Image, 1)
	go func() { // start connecting monad
		var c, a Image
		for i := 0; i < 2; i++ {
			select {
			case c = <-consumer:
				consumer = nil
			case a = <-access:
				access = nil
			}
		}
		anaconda.SetConsumerKey(c.String("Key")) // dial API server
		anaconda.SetConsumerSecret(c.String("Secret"))
		y := anaconda.NewTwitterApi(a.String("Token"), a.String("Secret"))
		for {
			api <- y // give out api server to all endpoint goroutines
		}
	}()
	// API
	query := make(chan Image, 5)
	reflex, eye := plumb.NewEyeCognizer(
		func(eye *plumb.Eye, valve string, value interface{}) {
			switch valve {
			case "Consumer":
				c1.Do(func() { consumer <- value.(Image) })
			case "Access":
				a1.Do(func() { access <- value.(Image) })
			case "UserTimelineQuery", "HomeTimelineQuery", "RetweetsQuery", "RetweetsOfMeQuery":
				valve = valve[:len(valve)-len("Query")]
				query <- Make().Grow(valve, value)
			default:
				log.Printf("Unknown Twitter query: %s", valve)
			}
		},
		"Consumer", "Access", // set to start connection
		"UserTimelineQuery", "UserTimelineResult", // UserTimeline
		"HomeTimelineQuery", "HomeTimelineResult", // HomeTimeline
		"RetweetsQuery", "RetweetsResult", // Retweets
		"RetweetsOfMeQuery", "RetweetsOfMeResult", // RetweetsOfMe
	)
	for i := 0; i < 3; i++ {
		go func() { // API response loop
			y := <-api
			for {
				g := <-query
				q := g.Letters()[0]
				x := g[q].(Image)
				uv := urlize(x)
				log.Printf("Twitter %s query %v", q, ImagineWithMaps(uv).(Image).PrintLine())
				var tweets []anaconda.Tweet
				var err error
				switch q {
				case "UserTimeline":
					tweets, err = y.GetUserTimeline(uv)
				case "HomeTimeline":
					tweets, err = y.GetHomeTimeline(uv)
				case "Retweets":
					tweets, err = y.GetRetweets(int64(x.Int("Id")), uv)
				case "RetweetsOfMe":
					tweets, err = y.GetRetweetsOfMe(uv)
				}
				if err != nil {
					log.Fatalf("Problem %s query on Twitter (%v)", q, err)
				}
				eye.Show(
					q,
					Pretty(
						Image{
							"Name":     x.Interface("Name"),
							"Sentence": Imagine(tweets),
						},
					),
				)
			}
		}()
	}
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:80,代码来源:twitter.go

示例14: Materialize

func (Remember) Materialize() be.Reflex {
	reflex, _ := plumb.NewEyeCognizer((&remember{}).Cognize, "From", "What", "When", "_")
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:4,代码来源:remember.go

示例15: Materialize

func (Choose) Materialize() be.Reflex {
	reflex, _ := plumb.NewEyeCognizer((&choose{}).Cognize, "When", "From", "_")
	return reflex
}
开发者ID:dasmithii,项目名称:escher,代码行数:4,代码来源:choose.go


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