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

Function writeFileHeader

common/persistence/problems/pack_deer.go:81–129  ·  view source on GitHub ↗
(writer io.Writer, pack ProblemPackage)

Source from the content-addressed store, hash-verified

79}
80
81func writeFileHeader(writer io.Writer, pack ProblemPackage) error {
82 buf16 := make([]byte, 2)
83 buf32 := make([]byte, 4)
84
85 // magic
86 binary.BigEndian.PutUint16(buf16, constants.ProblemPackageMagicCode)
87 if _, err := writer.Write(buf16); err != nil {
88 return errors.Errorf("write problem file error: %s", err.Error())
89 }
90
91 // Version
92 binary.BigEndian.PutUint16(buf16, pack.Version)
93 if _, err := writer.Write(buf16); err != nil {
94 return errors.Errorf("write problem file error: %s", err.Error())
95 }
96
97 // Commit Version
98 binary.BigEndian.PutUint32(buf32, pack.CommitVersion)
99 if _, err := writer.Write(buf32); err != nil {
100 return errors.Errorf("write problem file error: %s", err.Error())
101 }
102
103 // ConfigSize
104 binary.BigEndian.PutUint32(buf32, pack.ConfigSize)
105 if _, err := writer.Write(buf32); err != nil {
106 return errors.Errorf("write problem file error: %s", err.Error())
107 }
108
109 // BodySize
110 binary.BigEndian.PutUint32(buf32, pack.BodySize)
111 if _, err := writer.Write(buf32); err != nil {
112 return errors.Errorf("write problem file error: %s", err.Error())
113 }
114
115 // CertSize
116 binary.BigEndian.PutUint16(buf16, pack.CertSize)
117 if _, err := writer.Write(buf16); err != nil {
118 return errors.Errorf("write problem file error: %s", err.Error())
119 }
120
121 // Certificate
122 if pack.CertSize > 0 {
123 if _, err := writer.Write(pack.Certificate); err != nil {
124 return errors.Errorf("write problem file error: %s", err.Error())
125 }
126 }
127
128 return nil
129}
130
131// PackProblems 执行题目数据表打包操作
132func PackProblems(

Callers 1

PackProblemsFunction · 0.85

Calls 2

ErrorfMethod · 0.80
ErrorMethod · 0.45

Tested by

no test coverage detected