| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package raft
- const (
- StateChangeEventType = "stateChange"
- LeaderChangeEventType = "leaderChange"
- TermChangeEventType = "termChange"
- AddPeerEventType = "addPeer"
- RemovePeerEventType = "removePeer"
- HeartbeatTimeoutEventType = "heartbeatTimeout"
- ElectionTimeoutThresholdEventType = "electionTimeoutThreshold"
- )
- // Event represents an action that occurred within the Raft library.
- // Listeners can subscribe to event types by using the Server.AddEventListener() function.
- type Event interface {
- Type() string
- Source() interface{}
- Value() interface{}
- PrevValue() interface{}
- }
- // event is the concrete implementation of the Event interface.
- type event struct {
- typ string
- source interface{}
- value interface{}
- prevValue interface{}
- }
- // newEvent creates a new event.
- func newEvent(typ string, value interface{}, prevValue interface{}) *event {
- return &event{
- typ: typ,
- value: value,
- prevValue: prevValue,
- }
- }
- // Type returns the type of event that occurred.
- func (e *event) Type() string {
- return e.typ
- }
- // Source returns the object that dispatched the event.
- func (e *event) Source() interface{} {
- return e.source
- }
- // Value returns the current value associated with the event, if applicable.
- func (e *event) Value() interface{} {
- return e.value
- }
- // PrevValue returns the previous value associated with the event, if applicable.
- func (e *event) PrevValue() interface{} {
- return e.prevValue
- }
|