github.com/unirita/cuto@v0.9.8-0.20160830082821-aa6652f877b7/message/jobcheck.go (about)

     1  package message
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  )
     7  
     8  // ジョブ正常終了確認メッセージ。
     9  type JobCheck struct {
    10  	Type    string `json:"type"`
    11  	Version string `json:"version"`
    12  	NID     int    `json:"nid"`
    13  	JID     string `json:"jid"`
    14  }
    15  
    16  const jobCheckMessageType = "jobcheck"
    17  
    18  // ジョブ正常終了確認JSONメッセージをパースし、JobCheckオブジェクトのメンバをセットする。
    19  //
    20  // param : message 受信メッセージ文字列
    21  func (j *JobCheck) ParseJSON(message string) error {
    22  	byteMessage := []byte(message)
    23  	err := json.Unmarshal(byteMessage, j)
    24  	if err != nil {
    25  		return err
    26  	}
    27  	if j.Type != jobCheckMessageType {
    28  		return fmt.Errorf("Invalid message type.")
    29  	}
    30  	return nil
    31  }
    32  
    33  // JobCheckオブジェクトの値を元に、ジョブ正常終了確認JSONメッセージを生成する
    34  //
    35  // return : JSONメッセージフォーマットの文字列。
    36  func (j JobCheck) GenerateJSON() (string, error) {
    37  	j.Type = jobCheckMessageType
    38  	j.Version = MasterVersion
    39  	byteMessage, err := json.Marshal(j)
    40  	if err != nil {
    41  		return ``, err
    42  	}
    43  	return string(byteMessage), nil
    44  }