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  }