github.com/anacrolix/torrent@v1.61.0/tracker/udp/transaction.go (about)

     1  package udp
     2  
     3  import "math/rand"
     4  
     5  func RandomTransactionId() TransactionId {
     6  	return TransactionId(rand.Uint32())
     7  }
     8  
     9  type TransactionResponseHandler func(dr DispatchedResponse)
    10  
    11  type Transaction struct {
    12  	id int32
    13  	d  *Dispatcher
    14  	h  TransactionResponseHandler
    15  }
    16  
    17  func (t *Transaction) Id() TransactionId {
    18  	return t.id
    19  }
    20  
    21  func (t *Transaction) End() {
    22  	t.d.forgetTransaction(t.id)
    23  }