// BuildbotEventType registers a subtopic and returns a subtopic name for the // given buildbot event type. func BuildbotEventType(eventType string) string { subTopic := fmt.Sprintf("%s-%s", GLOBAL_BUILDBOT, eventType) eventbus.RegisterSubTopic(GLOBAL_BUILDBOT, subTopic, func(eventData interface{}) bool { e, ok := eventData.(*BuildbotEventData) if !ok { glog.Errorf("Received data that was not an instance of BuildbotEventData.") return false } return e.Event == eventType }) return subTopic }
func StorageEvent(bucket, prefix string) string { // Generate a unique topic name. This is also necessary because bucket and prefix values // can contain many more different characters than event names. subTopic := fmt.Sprintf("%s-%x", GLOBAL_GOOGLE_STORAGE, md5.Sum([]byte(bucket+"/"+prefix))) eventbus.RegisterSubTopic(GLOBAL_GOOGLE_STORAGE, subTopic, func(eventData interface{}) bool { gsEvent, ok := eventData.(*GoogleStorageEventData) if !ok { glog.Errorf("Received data that was not an instance of GoogleStorageEventData.") return false } return (gsEvent.Bucket == bucket) && strings.HasPrefix(gsEvent.Name, prefix) }) return subTopic }