10 type ResponseState int
14 RESP_INVALID = ResponseState(iota)
15 RESP_PENDING // internal state, not wire.
19 RESP_FAILED_UNKNOWN_SCORE
20 RESP_FAILED_HOST_ERROR
24 func (rs ResponseState) String() (strout string) {
32 case RESP_FAILED_UNKNOWN_SCORE:
34 case RESP_FAILED_HOST_ERROR:
36 case RESP_FAILED_UNKNOWN:
37 return "UNKNOWN_FAILURE"
42 func (rs ResponseState) MarshalJSON() (out []byte, err os.Error) {
45 return json.Marshal(strout)
47 return nil, InvalidValueError
50 func (rs *ResponseState) UnmarshalJSON(in []byte) (err os.Error) {
52 err = json.Unmarshal(in, &statestr)
64 *rs = RESP_FAILED_UNKNOWN_SCORE
66 *rs = RESP_FAILED_HOST_ERROR
67 case "UNKNOWN_FAILURE":
68 *rs = RESP_FAILED_UNKNOWN
70 return InvalidValueError
75 func (rs ResponseState) Finished() bool {
81 case RESP_FAILED_UNKNOWN_SCORE:
83 case RESP_FAILED_HOST_ERROR:
85 case RESP_FAILED_UNKNOWN:
91 // true if the response says the task failed. false otherwise.
92 func (rs ResponseState) Failed() bool {
102 // true if the task can be tried.
103 // precond: DidFail is true, job is a ONE_OF job.
104 // must return false otherwise.
105 func (rs ResponseState) CanRetry() bool {
107 case RESP_FAILED_UNKNOWN_SCORE:
109 case RESP_FAILED_HOST_ERROR: