github.com/unirita/cuto@v0.9.8-0.20160830082821-aa6652f877b7/realtime/network/result.go (about) 1 package network 2 3 import "encoding/json" 4 5 type Result struct { 6 Status int `json:"status"` 7 Message string `json:"message"` 8 PID int `json:"pid"` 9 Network networkResult `json:"network"` 10 } 11 12 type networkResult struct { 13 Instance int `json:"instance"` 14 Name string `json:"name"` 15 } 16 17 const encodeErrorResult = `{ 18 "status":2, 19 "message":"Result message encode error.", 20 "pid":0, 21 "network":{"instance":0,"name":""} 22 }` 23 24 const ( 25 status_SUCCESS = iota 26 status_MASTER_ERROR 27 status_REALTIME_ERROR 28 ) 29 30 // SuccessResult generates success result message as JSON. 31 func SuccessResult(pid int, instanceID int, networkName string) string { 32 result := new(Result) 33 result.Status = status_SUCCESS 34 result.Message = "Success." 35 result.PID = pid 36 result.Network.Instance = instanceID 37 result.Network.Name = networkName 38 return result.Encode() 39 } 40 41 // MasterErrorResult generates master error result message as JSON. 42 func MasterErrorResult(msg string, pid int) string { 43 result := new(Result) 44 result.Status = status_MASTER_ERROR 45 result.Message = msg 46 result.PID = pid 47 return result.Encode() 48 } 49 50 // RealtimeErrorResult generates realtime error result message as JSON. 51 func RealtimeErrorResult(msg string) string { 52 result := new(Result) 53 result.Status = status_REALTIME_ERROR 54 result.Message = msg 55 return result.Encode() 56 } 57 58 // Encode generates JSON string from object data. 59 func (r *Result) Encode() string { 60 b, err := json.Marshal(r) 61 if err != nil { 62 return encodeErrorResult 63 } 64 65 return string(b) 66 }