NSAutoreleasePool.odin 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. package objc_Foundation
  2. @(objc_class="NSAutoreleasePool")
  3. AutoreleasePool :: struct {using _: Object}
  4. @(objc_type=AutoreleasePool, objc_name="alloc", objc_is_class_method=true)
  5. AutoreleasePool_alloc :: proc "c" () -> ^AutoreleasePool {
  6. return msgSend(^AutoreleasePool, AutoreleasePool, "alloc")
  7. }
  8. @(objc_type=AutoreleasePool, objc_name="init")
  9. AutoreleasePool_init :: proc "c" (self: ^AutoreleasePool) -> ^AutoreleasePool {
  10. return msgSend(^AutoreleasePool, self, "init")
  11. }
  12. @(objc_type=AutoreleasePool, objc_name="drain")
  13. AutoreleasePool_drain :: proc "c" (self: ^AutoreleasePool) {
  14. msgSend(nil, self, "drain")
  15. }
  16. @(objc_type=AutoreleasePool, objc_name="addObject")
  17. AutoreleasePool_addObject :: proc "c" (self: ^AutoreleasePool, obj: ^Object) {
  18. msgSend(nil, self, "addObject:", obj)
  19. }
  20. @(objc_type=AutoreleasePool, objc_name="showPools")
  21. AutoreleasePool_showPools :: proc "c" (self: ^AutoreleasePool, obj: ^Object) {
  22. msgSend(nil, self, "showPools")
  23. }
  24. @(deferred_out=AutoreleasePool_drain)
  25. scoped_autoreleasepool :: proc "c" () -> ^AutoreleasePool {
  26. return AutoreleasePool.alloc()->init()
  27. }