code: func NewSyncHandler(srcName, destName string,
  	src blobserver.Storage, dest blobReceiverEnumerator,
  	pendingQueue sorted.KeyValue) *SyncHandler {
  	sh := newSyncHandler(srcName, destName, src, dest, pendingQueue)
  	go sh.syncLoop()
  	blobserver.GetHub(sh.from).AddReceiveHook(sh.enqueue)
  	return sh
  }
docs: // NewSyncHandler returns a handler that will asynchronously and continuously
  // copy blobs from src to dest, if missing on dest.
  // Blobs waiting to be copied are stored on pendingQueue. srcName and destName are
  // only used for status and debugging messages.
  // N.B: blobs should be added to src with a method that notifies the blob hub,
  // such as blobserver.Receive.