diff options
Diffstat (limited to 'core/test/scheduler-event.go')
-rw-r--r-- | core/test/scheduler-event.go | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/core/test/scheduler-event.go b/core/test/scheduler-event.go deleted file mode 100644 index 180ed07..0000000 --- a/core/test/scheduler-event.go +++ /dev/null @@ -1,79 +0,0 @@ -// Copyright 2018 The dexon-consensus Authors -// This file is part of the dexon-consensus library. -// -// The dexon-consensus library is free software: you can redistribute it -// and/or modify it under the terms of the GNU Lesser General Public License as -// published by the Free Software Foundation, either version 3 of the License, -// or (at your option) any later version. -// -// The dexon-consensus library is distributed in the hope that it will be -// useful, but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser -// General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with the dexon-consensus library. If not, see -// <http://www.gnu.org/licenses/>. - -package test - -import ( - "time" - - "github.com/dexon-foundation/dexon-consensus/core/types" -) - -// Event defines a scheduler event. -type Event struct { - // HistoryIndex is the index of this event in history. - HistoryIndex int - // NodeID is the ID of handler that this event deginated to. - NodeID types.NodeID - // Time is the expected execution time of this event. - Time time.Time - // ExecError record the error when handling this event. - ExecError error - // Payload is application specific data carried by this event. - Payload interface{} - // ParentHistoryIndex is the index of parent event in history. - ParentHistoryIndex int - // ExecInterval is the latency to execute this event - ExecInterval time.Duration -} - -// eventQueue implements heap.Interface. -type eventQueue []*Event - -func (eq eventQueue) Len() int { return len(eq) } - -func (eq eventQueue) Less(i, j int) bool { - return eq[i].Time.Before(eq[j].Time) -} - -func (eq eventQueue) Swap(i, j int) { - eq[i], eq[j] = eq[j], eq[i] -} - -func (eq *eventQueue) Push(x interface{}) { - *eq = append(*eq, x.(*Event)) -} - -func (eq *eventQueue) Pop() interface{} { - pos := len(*eq) - 1 - item := (*eq)[pos] - *eq = (*eq)[0:pos] - return item -} - -// NewEvent is the constructor for Event. -func NewEvent( - nID types.NodeID, when time.Time, payload interface{}) *Event { - - return &Event{ - HistoryIndex: -1, - ParentHistoryIndex: -1, - NodeID: nID, - Time: when, - Payload: payload, - } -} |