Пример #1
0
func Starter(s stream.Stream) (err error) {
	if err = s.Write(entity.Open(s.Server()).Produce()); err == nil {
		s.Ring(func(b *bytes.Buffer) (done bool) {
			_e, e := entity.ConsumeStatic(b)
			if _e != nil {
				switch e := _e.(type) {
				case *entity.Stream:
					s.Id(e.Id)
					done = true
				default:
					log.Println(reflect.TypeOf(e))
				}
			} else if e == nil {
				err = errors.New(fmt.Sprint("unknown entity ", string(b.Bytes())))
			} else {
				err = e
			}
			return
		}, 0)
	}
	return
}