MCPcopy Create free account
hub / github.com/aptly-dev/aptly / UpdateInTransaction

Method UpdateInTransaction

deb/package_collection.go:220–283  ·  view source on GitHub ↗

UpdateInTransaction updates/creates package info in the context of the outer transaction

(p *Package, transaction database.Transaction)

Source from the content-addressed store, hash-verified

218
219// UpdateInTransaction updates/creates package info in the context of the outer transaction
220func (collection *PackageCollection) UpdateInTransaction(p *Package, transaction database.Transaction) error {
221 var encodeBuffer bytes.Buffer
222
223 encoder := codec.NewEncoder(&encodeBuffer, collection.codecHandle)
224
225 encodeBuffer.Reset()
226 encodeBuffer.WriteByte(0xc1)
227 encodeBuffer.WriteByte(0x1)
228 if err := encoder.Encode(p); err != nil {
229 return err
230 }
231
232 err := transaction.Put(p.Key(""), encodeBuffer.Bytes())
233 if err != nil {
234 return err
235 }
236
237 // Encode offloaded fields one by one
238 if p.files != nil {
239 encodeBuffer.Reset()
240 err = encoder.Encode(*p.files)
241 if err != nil {
242 return err
243 }
244
245 err = transaction.Put(p.Key("xF"), encodeBuffer.Bytes())
246 if err != nil {
247 return err
248 }
249 }
250
251 if p.deps != nil {
252 encodeBuffer.Reset()
253 err = encoder.Encode(*p.deps)
254 if err != nil {
255 return err
256 }
257
258 err = transaction.Put(p.Key("xD"), encodeBuffer.Bytes())
259 if err != nil {
260 return err
261 }
262
263 p.deps = nil
264 }
265
266 if p.extra != nil {
267 encodeBuffer.Reset()
268 err = encoder.Encode(*p.extra)
269 if err != nil {
270 return err
271 }
272
273 err = transaction.Put(p.Key("xE"), encodeBuffer.Bytes())
274 if err != nil {
275 return err
276 }
277

Callers 3

UpdateMethod · 0.95
FinalizeDownloadMethod · 0.80

Calls 3

PutMethod · 0.65
EncodeMethod · 0.45
KeyMethod · 0.45

Tested by 1