trans.go 958 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // db.go - Functions for database handling.
  2. //
  3. // Copyright (c) 2013 The go-alpm Authors
  4. //
  5. // MIT Licensed. See LICENSE for details.
  6. package alpm
  7. /*
  8. #include <alpm.h>
  9. */
  10. import "C"
  11. import (
  12. "unsafe"
  13. )
  14. func (h *Handle) TransInit(flags TransFlag) error {
  15. ret := C.alpm_trans_init(h.ptr, C.int(flags))
  16. if ret != 0 {
  17. return h.LastError()
  18. }
  19. return nil
  20. }
  21. func (h *Handle) TransRelease() error {
  22. ret := C.alpm_trans_release(h.ptr)
  23. if ret != 0 {
  24. return h.LastError()
  25. }
  26. return nil
  27. }
  28. func (h *Handle) TransGetAdd() PackageList {
  29. pkgs := C.alpm_trans_get_add(h.ptr)
  30. return PackageList{(*list)(unsafe.Pointer(pkgs)), *h}
  31. }
  32. func (h *Handle) TransGetRemove() PackageList {
  33. pkgs := C.alpm_trans_get_remove(h.ptr)
  34. return PackageList{(*list)(unsafe.Pointer(pkgs)), *h}
  35. }
  36. func (h *Handle) TransGetFalgs() (TransFlag, error) {
  37. flags := C.alpm_trans_get_flags(h.ptr)
  38. if flags == -1 {
  39. return -1, h.LastError()
  40. }
  41. return TransFlag(flags), nil
  42. }