Esempio n. 1
0
func EnableStreamFeatures(s stream.ServerStream, name string) {
	for _, fname := range s.DependencyGraph().Get(name) {
		fe := FeatureFactory.Get(fname)

		conf, err := fe.GetConfig(s.Config()[fname])
		if err != nil {
			log.Printf("goxmpp: unable to handle config for feature %s: %s", fname, err)
			continue
		}

		feature := fe.Constructor(conf)

		s.AddNamed(
			func() xtream.Element { return feature.InitHandler() },
			fe.Parent,
			fe.Name,
		)
		s.AddFeature(feature)
	}
}