func (w *watchGrpcStream) dispatchEvent(pbresp *pb.WatchResponse) bool {
	events := make([]*Event, len(pbresp.Events))
	for i, ev := range pbresp.Events {
		events[i] = (*Event)(ev)
	}
	// TODO: return watch ID?
	wr := &WatchResponse{
		Header:          *pbresp.Header,
		Events:          events,
		CompactRevision: pbresp.CompactRevision,
		Created:         pbresp.Created,
		Canceled:        pbresp.Canceled,
		cancelReason:    pbresp.CancelReason,
	}

	// watch IDs are zero indexed, so request notify watch responses are assigned a watch ID of -1 to
	// indicate they should be broadcast.
	if wr.IsProgressNotify() && pbresp.WatchId == -1 {
		return w.broadcastResponse(wr)
	}

	return w.unicastResponse(wr, pbresp.WatchId)

}
func (w *watchGrpcStream) dispatchEvent(pbresp *pb.WatchResponse) bool {
	events := make([]*Event, len(pbresp.Events))
	for i, ev := range pbresp.Events {
		events[i] = (*Event)(ev)
	}
	
	wr := &WatchResponse{
		Header:          *pbresp.Header,
		Events:          events,
		CompactRevision: pbresp.CompactRevision,
		Created:         pbresp.Created,
		Canceled:        pbresp.Canceled,
		cancelReason:    pbresp.CancelReason,
	}

	
	
	if wr.IsProgressNotify() && pbresp.WatchId == -1 {
		return w.broadcastResponse(wr)
	}

	return w.unicastResponse(wr, pbresp.WatchId)

}
func ( w * watchGrpcStream ) dispatchEvent ( pbresp * pb . WatchResponse ) bool { events := make ( [ ] * Event , len ( pbresp . Events ) ) for i , ev := range pbresp . Events { events [ i ] = ( * Event ) ( ev ) } // TODO: return watch ID? wr := & WatchResponse { Header : * pbresp . Header , Events : events , CompactRevision : pbresp . CompactRevision , Created : pbresp . Created , Canceled : pbresp . Canceled , cancelReason : pbresp . CancelReason , } // watch IDs are zero indexed, so request notify watch responses are assigned a watch ID of -1 to // indicate they should be broadcast. if wr . IsProgressNotify ( ) && pbresp . WatchId == - 1 { return w . broadcastResponse ( wr ) } return w . unicastResponse ( wr , pbresp . WatchId ) }
// dispatchEvent sends a WatchResponse to the appropriate watcher stream
dispatchEvent sends a WatchResponse to the appropriate watcher stream