本文整理汇总了Golang中github.com/sburnett/transformer/store.SliceStore.BeginReading方法的典型用法代码示例。如果您正苦于以下问题:Golang SliceStore.BeginReading方法的具体用法?Golang SliceStore.BeginReading怎么用?Golang SliceStore.BeginReading使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/sburnett/transformer/store.SliceStore
的用法示例。
在下文中一共展示了SliceStore.BeginReading方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: runCalculateTraceKeyRanges
func runCalculateTraceKeyRanges(records []*store.Record) {
traces := store.SliceStore{}
traces.BeginWriting()
for _, record := range records {
traces.WriteRecord(record)
}
traces.EndWriting()
rangesStore := store.SliceStore{}
consolidatedStore := store.SliceStore{}
transformer.RunPipeline(TraceKeyRangesPipeline(&traces, &rangesStore, &consolidatedStore))
rangesStore.BeginReading()
for {
record, err := rangesStore.ReadRecord()
if err != nil {
panic(err)
}
if record == nil {
break
}
fmt.Printf("%s %s\n", formatTraceKey(record.Key), formatTraceKey(record.Value))
}
rangesStore.EndReading()
}
示例2: ExampleJoin_inner
func ExampleJoin_inner() {
left := store.SliceStore{}
left.BeginWriting()
left.WriteRecord(store.NewRecord("1", "news", 0))
left.WriteRecord(store.NewRecord("2", "book", 0))
left.EndWriting()
right := store.SliceStore{}
right.BeginWriting()
right.WriteRecord(store.NewRecord("1", "paper", 0))
right.WriteRecord(store.NewRecord("3", "brush", 0))
right.EndWriting()
output := store.SliceStore{}
joiner := Join(nil, nil)
transformer.RunTransformer(transformer.MakeGroupDoFunc(joiner), store.NewDemuxingReader(&left, &right), &output)
output.BeginReading()
for {
record, err := output.ReadRecord()
if err != nil {
panic(err)
}
if record == nil {
break
}
fmt.Printf("%s: %s\n", record.Key, record.Value)
}
output.EndReading()
// Output:
//
// 1: newspaper
}
示例3: runSessions
func runSessions(records []*store.Record) {
traces := store.SliceStore{}
traces.BeginWriting()
for _, record := range records {
traces.WriteRecord(record)
}
traces.EndWriting()
sessionsStore := store.SliceStore{}
transformer.RunPipeline([]transformer.PipelineStage{
SessionPipelineStage(&traces, &sessionsStore),
})
sessionsStore.BeginReading()
for {
record, err := sessionsStore.ReadRecord()
if err != nil {
panic(err)
}
if record == nil {
break
}
fmt.Printf("%s\n", formatSessionKey(record.Key))
}
sessionsStore.EndReading()
}
示例4: ExampleJoin_multiple
func ExampleJoin_multiple() {
left := store.SliceStore{}
left.BeginWriting()
left.WriteRecord(store.NewRecord("1", "what", 0))
left.WriteRecord(store.NewRecord("2", "news", 0))
left.EndWriting()
middle := store.SliceStore{}
middle.BeginWriting()
middle.WriteRecord(store.NewRecord("1", "so", 0))
middle.WriteRecord(store.NewRecord("3", "the", 0))
middle.EndWriting()
right := store.SliceStore{}
right.BeginWriting()
right.WriteRecord(store.NewRecord("1", "ever", 0))
right.WriteRecord(store.NewRecord("3", "less", 0))
right.EndWriting()
output := store.SliceStore{}
joiner := Join([]byte("never"), []byte("paper"), []byte("man"))
transformer.RunTransformer(transformer.MakeGroupDoFunc(joiner), store.NewDemuxingReader(&left, &middle, &right), &output)
output.BeginReading()
for {
record, err := output.ReadRecord()
if err != nil {
panic(err)
}
if record == nil {
break
}
fmt.Printf("%s: %s\n", record.Key, record.Value)
}
output.EndReading()
// Output:
//
// 1: whatsoever
// 2: newspaperman
// 3: nevertheless
}