MCPcopy Create free account
hub / github.com/LanceLRQ/deer-executor / writeFileHeaderAndResult

Function writeFileHeaderAndResult

common/persistence/result/pack.go:78–127  ·  view source on GitHub ↗
(writer io.Writer, pack JudgeResultPackage)

Source from the content-addressed store, hash-verified

76}
77
78func writeFileHeaderAndResult(writer io.Writer, pack JudgeResultPackage) error {
79 buf8 := make([]byte, 1)
80 buf16 := make([]byte, 2)
81 buf32 := make([]byte, 4)
82
83 // magic
84 binary.BigEndian.PutUint16(buf16, constants.JudgeResultMagicCode)
85 if _, err := writer.Write(buf16); err != nil {
86 return errors.Errorf("write result file error: %s", err.Error())
87 }
88
89 // Version
90 buf8[0] = pack.Version
91 if _, err := writer.Write(buf8); err != nil {
92 return errors.Errorf("write result file error: %s", err.Error())
93 }
94
95 // CompressorType
96 buf8[0] = pack.CompressorType
97 if _, err := writer.Write(buf8); err != nil {
98 return errors.Errorf("write result file error: %s", err.Error())
99 }
100
101 // ResultSize
102 binary.BigEndian.PutUint32(buf32, pack.ResultSize)
103 if _, err := writer.Write(buf32); err != nil {
104 return errors.Errorf("write result file error: %s", err.Error())
105 }
106
107 // BodySize
108 binary.BigEndian.PutUint32(buf32, pack.BodySize)
109 if _, err := writer.Write(buf32); err != nil {
110 return errors.Errorf("write result file error: %s", err.Error())
111 }
112
113 // CertSize
114 binary.BigEndian.PutUint16(buf16, pack.CertSize)
115 if _, err := writer.Write(buf16); err != nil {
116 return errors.Errorf("write result file error: %s", err.Error())
117 }
118
119 // Certificate
120 if pack.CertSize > 0 {
121 if _, err := writer.Write(pack.Certificate); err != nil {
122 return errors.Errorf("write result file error: %s", err.Error())
123 }
124 }
125
126 return nil
127}
128
129// PersistentJudgeResult 持久化评测记录
130func PersistentJudgeResult(

Callers 1

PersistentJudgeResultFunction · 0.85

Calls 2

ErrorfMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected