use switch.(type)

pull/820/head
Fabrizio (Misto) Milo 2013-08-06 21:37:50 -07:00
parent 54bd5ebbe3
commit 559a01e6dc
1 changed files with 11 additions and 9 deletions

View File

@ -734,16 +734,18 @@ func (s *Server) snapshotLoop() {
if e.target == &stopValue { if e.target == &stopValue {
s.setState(Stopped) s.setState(Stopped)
} else if _, ok := e.target.(Command); ok { } else {
switch req := e.target.(type) {
case Command:
err = NotLeaderError err = NotLeaderError
} else if req, ok := e.target.(*AppendEntriesRequest); ok { case *AppendEntriesRequest:
e.returnValue, _ = s.processAppendEntriesRequest(req) e.returnValue, _ = s.processAppendEntriesRequest(req)
} else if req, ok := e.target.(*RequestVoteRequest); ok { case *RequestVoteRequest:
e.returnValue, _ = s.processRequestVoteRequest(req) e.returnValue, _ = s.processRequestVoteRequest(req)
} else if req, ok := e.target.(*SnapshotRecoveryRequest); ok { case *SnapshotRecoveryRequest:
e.returnValue = s.processSnapshotRecoveryRequest(req) e.returnValue = s.processSnapshotRecoveryRequest(req)
} }
}
// Callback to event. // Callback to event.
e.c <- err e.c <- err