mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-23 13:00:34 +00:00
53 lines
1.4 KiB
Odin
53 lines
1.4 KiB
Odin
package objc_Foundation
|
|
|
|
Locking :: struct($T: typeid) {using _: Object}
|
|
|
|
Locking_lock :: proc "c" (self: ^Locking($T)) {
|
|
msgSend(nil, self, "lock")
|
|
}
|
|
Locking_unlock :: proc "c" (self: ^Locking($T)) {
|
|
msgSend(nil, self, "unlock")
|
|
}
|
|
|
|
@(objc_class="NSCondition")
|
|
Condition :: struct {using _: Locking(Condition) }
|
|
|
|
|
|
@(objc_type=Condition, objc_name="alloc", objc_is_class_method=true)
|
|
Condition_alloc :: proc "c" () -> ^Condition {
|
|
return msgSend(^Condition, Condition, "alloc")
|
|
}
|
|
|
|
@(objc_type=Condition, objc_name="init")
|
|
Condition_init :: proc "c" (self: ^Condition) -> ^Condition {
|
|
return msgSend(^Condition, self, "init")
|
|
}
|
|
|
|
@(objc_type=Condition, objc_name="wait")
|
|
Condition_wait :: proc "c" (self: ^Condition) {
|
|
msgSend(nil, self, "wait")
|
|
}
|
|
|
|
@(objc_type=Condition, objc_name="waitUntilDate")
|
|
Condition_waitUntilDate :: proc "c" (self: ^Condition, limit: ^Date) -> BOOL {
|
|
return msgSend(BOOL, self, "waitUntilDate:", limit)
|
|
}
|
|
|
|
@(objc_type=Condition, objc_name="signal")
|
|
Condition_signal :: proc "c" (self: ^Condition) {
|
|
msgSend(nil, self, "signal")
|
|
}
|
|
|
|
@(objc_type=Condition, objc_name="broadcast")
|
|
Condition_broadcast :: proc "c" (self: ^Condition) {
|
|
msgSend(nil, self, "broadcast")
|
|
}
|
|
|
|
@(objc_type=Condition, objc_name="lock")
|
|
Condition_lock :: proc "c" (self: ^Condition) {
|
|
msgSend(nil, self, "lock")
|
|
}
|
|
@(objc_type=Condition, objc_name="unlock")
|
|
Condition_unlock :: proc "c" (self: ^Condition) {
|
|
msgSend(nil, self, "unlock")
|
|
} |