Embed mach service
This commit is contained in:
@@ -6,18 +6,35 @@
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import ServiceManagement
|
||||
import XPC
|
||||
|
||||
private let serviceName = "net.buzzert.kordophonecd"
|
||||
|
||||
|
||||
final class XPCClient
|
||||
{
|
||||
private let connection: xpc_connection_t
|
||||
private let signalLock = NSLock()
|
||||
private var signalSinks: [UUID: (Signal) -> Void] = [:]
|
||||
private var didSubscribeSignals: Bool = false
|
||||
|
||||
static let appService: SMAppService = {
|
||||
do {
|
||||
let service = SMAppService.agent(plistName: "net.buzzert.kordophonecd.plist")
|
||||
if service.status != .enabled {
|
||||
try service.register()
|
||||
}
|
||||
|
||||
return service
|
||||
} catch {
|
||||
fatalError("Unable to register agent: \(error)")
|
||||
}
|
||||
}()
|
||||
|
||||
init() {
|
||||
_ = Self.appService
|
||||
|
||||
self.connection = xpc_connection_create_mach_service(serviceName, nil, 0)
|
||||
|
||||
let handler: xpc_handler_t = { [weak self] event in
|
||||
|
||||
Reference in New Issue
Block a user