code: func (engine *PullEngine) OnReq(items []string, nonce uint64, context interface{}) {
  	if !engine.incomingNONCES.Exists(nonce) {
  		return
  	}
  	engine.lock.Lock()
  	defer engine.lock.Unlock()
  
  	filter := engine.digFilter(context)
  	var items2Send []string
  	for _, item := range items {
  		if engine.state.Exists(item) && filter(item) {
  			items2Send = append(items2Send, item)
  		}
  	}
  
  	if len(items2Send) == 0 {
  		return
  	}
  
  	go engine.SendRes(items2Send, context, nonce)
  }
docs: // OnReq notifies the engine a request has arrived