github.com/pdaian/flashboys2@v0.0.0-20190718175736-b101c35361f0/go-ethereum/eth/CircularBufferQueue/CircularBufferQueue.go (about) 1 package CircularBufferQueue 2 3 type EthereumRawTransaction struct { 4 MyIP string 5 FromString string 6 RecipString string 7 PeerString string 8 PeerNameString string 9 IpStringSplit string 10 IpPort string 11 TimeString string 12 TxNonce uint64 13 Gprice string 14 Glimit uint64 15 TxAmount string 16 TxPayload string 17 TxVString string 18 TxRString string 19 TxSString string 20 TxHash string 21 } 22 23 24 25 type FIFOTransactionQueue struct { 26 Queue [1000]EthereumRawTransaction 27 Tail int 28 } 29 30 func (f * FIFOTransactionQueue) New() { 31 f.Tail = 0 32 for counter := 0; counter < 1000; counter ++ { 33 f.Queue[counter] = EthereumRawTransaction{ 34 "", 35 "", 36 "", 37 "", 38 "", 39 "", 40 "", 41 "", 42 0, 43 "", 44 0, 45 "", 46 "", 47 "", 48 "", 49 "", 50 "", 51 } 52 } 53 } 54 55 func (f * FIFOTransactionQueue) Insert(transaction EthereumRawTransaction) { 56 f.Tail = f.Tail + 1 57 if f.Tail > 999 { 58 f.Tail = 0 59 } 60 f.Queue[f.Tail] = transaction 61 }