objc2_cf_network/generated/
CFNetServices.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::cell::UnsafeCell;
4use core::ffi::*;
5use core::marker::{PhantomData, PhantomPinned};
6use core::ptr::NonNull;
7#[cfg(feature = "objc2")]
8use objc2::__framework_prelude::*;
9use objc2_core_foundation::*;
10
11use crate::*;
12
13/// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/cfnetservice?language=objc)
14#[doc(alias = "CFNetServiceRef")]
15#[repr(C)]
16pub struct CFNetService {
17    inner: [u8; 0],
18    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
19}
20
21cf_type!(
22    unsafe impl CFNetService {}
23);
24#[cfg(feature = "objc2")]
25cf_objc2_type!(
26    unsafe impl RefEncode<"__CFNetService"> for CFNetService {}
27);
28
29/// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/cfnetservicemonitor?language=objc)
30#[doc(alias = "CFNetServiceMonitorRef")]
31#[repr(C)]
32pub struct CFNetServiceMonitor {
33    inner: [u8; 0],
34    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
35}
36
37cf_type!(
38    unsafe impl CFNetServiceMonitor {}
39);
40#[cfg(feature = "objc2")]
41cf_objc2_type!(
42    unsafe impl RefEncode<"__CFNetServiceMonitor"> for CFNetServiceMonitor {}
43);
44
45/// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/cfnetservicebrowser?language=objc)
46#[doc(alias = "CFNetServiceBrowserRef")]
47#[repr(C)]
48pub struct CFNetServiceBrowser {
49    inner: [u8; 0],
50    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
51}
52
53cf_type!(
54    unsafe impl CFNetServiceBrowser {}
55);
56#[cfg(feature = "objc2")]
57cf_objc2_type!(
58    unsafe impl RefEncode<"__CFNetServiceBrowser"> for CFNetServiceBrowser {}
59);
60
61extern "C" {
62    /// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/kcfstreamerrordomainmach?language=objc)
63    pub static kCFStreamErrorDomainMach: i32;
64}
65
66extern "C" {
67    /// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/kcfstreamerrordomainnetservices?language=objc)
68    pub static kCFStreamErrorDomainNetServices: i32;
69}
70
71/// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/cfnetserviceserror?language=objc)
72// NS_ENUM
73#[repr(transparent)]
74#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
75pub struct CFNetServicesError(pub c_int);
76impl CFNetServicesError {
77    #[doc(alias = "kCFNetServicesErrorUnknown")]
78    pub const Unknown: Self = Self(-72000);
79    #[doc(alias = "kCFNetServicesErrorCollision")]
80    pub const Collision: Self = Self(-72001);
81    #[doc(alias = "kCFNetServicesErrorNotFound")]
82    pub const NotFound: Self = Self(-72002);
83    #[doc(alias = "kCFNetServicesErrorInProgress")]
84    pub const InProgress: Self = Self(-72003);
85    #[doc(alias = "kCFNetServicesErrorBadArgument")]
86    pub const BadArgument: Self = Self(-72004);
87    #[doc(alias = "kCFNetServicesErrorCancel")]
88    pub const Cancel: Self = Self(-72005);
89    #[doc(alias = "kCFNetServicesErrorInvalid")]
90    pub const Invalid: Self = Self(-72006);
91    #[doc(alias = "kCFNetServicesErrorTimeout")]
92    pub const Timeout: Self = Self(-72007);
93    #[doc(alias = "kCFNetServicesErrorMissingRequiredConfiguration")]
94    pub const MissingRequiredConfiguration: Self = Self(-72008);
95}
96
97#[cfg(feature = "objc2")]
98unsafe impl Encode for CFNetServicesError {
99    const ENCODING: Encoding = c_int::ENCODING;
100}
101
102#[cfg(feature = "objc2")]
103unsafe impl RefEncode for CFNetServicesError {
104    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
105}
106
107/// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/cfnetservicemonitortype?language=objc)
108// NS_ENUM
109#[repr(transparent)]
110#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
111pub struct CFNetServiceMonitorType(pub c_int);
112impl CFNetServiceMonitorType {
113    #[doc(alias = "kCFNetServiceMonitorTXT")]
114    pub const TXT: Self = Self(1);
115}
116
117#[cfg(feature = "objc2")]
118unsafe impl Encode for CFNetServiceMonitorType {
119    const ENCODING: Encoding = c_int::ENCODING;
120}
121
122#[cfg(feature = "objc2")]
123unsafe impl RefEncode for CFNetServiceMonitorType {
124    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
125}
126
127/// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/cfnetserviceregisterflags?language=objc)
128// NS_OPTIONS
129#[repr(transparent)]
130#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
131pub struct CFNetServiceRegisterFlags(pub CFOptionFlags);
132bitflags::bitflags! {
133    impl CFNetServiceRegisterFlags: CFOptionFlags {
134        #[doc(alias = "kCFNetServiceFlagNoAutoRename")]
135        const FlagNoAutoRename = 1;
136    }
137}
138
139#[cfg(feature = "objc2")]
140unsafe impl Encode for CFNetServiceRegisterFlags {
141    const ENCODING: Encoding = CFOptionFlags::ENCODING;
142}
143
144#[cfg(feature = "objc2")]
145unsafe impl RefEncode for CFNetServiceRegisterFlags {
146    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
147}
148
149/// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/cfnetservicebrowserflags?language=objc)
150// NS_OPTIONS
151#[repr(transparent)]
152#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
153pub struct CFNetServiceBrowserFlags(pub CFOptionFlags);
154bitflags::bitflags! {
155    impl CFNetServiceBrowserFlags: CFOptionFlags {
156        #[doc(alias = "kCFNetServiceFlagMoreComing")]
157        const FlagMoreComing = 1;
158        #[doc(alias = "kCFNetServiceFlagIsDomain")]
159        const FlagIsDomain = 2;
160        #[doc(alias = "kCFNetServiceFlagIsDefault")]
161        const FlagIsDefault = 4;
162        #[doc(alias = "kCFNetServiceFlagIsRegistrationDomain")]
163#[deprecated]
164        const FlagIsRegistrationDomain = 4;
165        #[doc(alias = "kCFNetServiceFlagRemove")]
166        const FlagRemove = 8;
167    }
168}
169
170#[cfg(feature = "objc2")]
171unsafe impl Encode for CFNetServiceBrowserFlags {
172    const ENCODING: Encoding = CFOptionFlags::ENCODING;
173}
174
175#[cfg(feature = "objc2")]
176unsafe impl RefEncode for CFNetServiceBrowserFlags {
177    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
178}
179
180/// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/cfnetserviceclientcontext?language=objc)
181#[repr(C, packed(2))]
182#[allow(unpredictable_function_pointer_comparisons)]
183#[derive(Clone, Copy, Debug, PartialEq)]
184pub struct CFNetServiceClientContext {
185    pub version: CFIndex,
186    pub info: *mut c_void,
187    pub retain: CFAllocatorRetainCallBack,
188    pub release: CFAllocatorReleaseCallBack,
189    pub copyDescription: CFAllocatorCopyDescriptionCallBack,
190}
191
192#[cfg(feature = "objc2")]
193unsafe impl Encode for CFNetServiceClientContext {
194    const ENCODING: Encoding = Encoding::Struct(
195        "CFNetServiceClientContext",
196        &[
197            <CFIndex>::ENCODING,
198            <*mut c_void>::ENCODING,
199            <CFAllocatorRetainCallBack>::ENCODING,
200            <CFAllocatorReleaseCallBack>::ENCODING,
201            <CFAllocatorCopyDescriptionCallBack>::ENCODING,
202        ],
203    );
204}
205
206#[cfg(feature = "objc2")]
207unsafe impl RefEncode for CFNetServiceClientContext {
208    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
209}
210
211/// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/cfnetserviceclientcallback?language=objc)
212pub type CFNetServiceClientCallBack =
213    Option<unsafe extern "C-unwind" fn(NonNull<CFNetService>, *mut CFStreamError, *mut c_void)>;
214
215/// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/cfnetservicemonitorclientcallback?language=objc)
216pub type CFNetServiceMonitorClientCallBack = Option<
217    unsafe extern "C-unwind" fn(
218        NonNull<CFNetServiceMonitor>,
219        *mut CFNetService,
220        CFNetServiceMonitorType,
221        *const CFData,
222        *mut CFStreamError,
223        *mut c_void,
224    ),
225>;
226
227/// [Apple's documentation](https://developer.apple.com/documentation/cfnetwork/cfnetservicebrowserclientcallback?language=objc)
228pub type CFNetServiceBrowserClientCallBack = Option<
229    unsafe extern "C-unwind" fn(
230        NonNull<CFNetServiceBrowser>,
231        CFOptionFlags,
232        *const CFType,
233        *mut CFStreamError,
234        *mut c_void,
235    ),
236>;
237
238unsafe impl ConcreteType for CFNetService {
239    #[doc(alias = "CFNetServiceGetTypeID")]
240    #[inline]
241    fn type_id() -> CFTypeID {
242        extern "C-unwind" {
243            fn CFNetServiceGetTypeID() -> CFTypeID;
244        }
245        unsafe { CFNetServiceGetTypeID() }
246    }
247}
248
249unsafe impl ConcreteType for CFNetServiceMonitor {
250    #[doc(alias = "CFNetServiceMonitorGetTypeID")]
251    #[inline]
252    fn type_id() -> CFTypeID {
253        extern "C-unwind" {
254            fn CFNetServiceMonitorGetTypeID() -> CFTypeID;
255        }
256        unsafe { CFNetServiceMonitorGetTypeID() }
257    }
258}
259
260unsafe impl ConcreteType for CFNetServiceBrowser {
261    #[doc(alias = "CFNetServiceBrowserGetTypeID")]
262    #[inline]
263    fn type_id() -> CFTypeID {
264        extern "C-unwind" {
265            fn CFNetServiceBrowserGetTypeID() -> CFTypeID;
266        }
267        unsafe { CFNetServiceBrowserGetTypeID() }
268    }
269}
270
271impl CFNetService {
272    #[doc(alias = "CFNetServiceCreate")]
273    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
274    #[inline]
275    pub unsafe fn new(
276        alloc: Option<&CFAllocator>,
277        domain: &CFString,
278        service_type: &CFString,
279        name: &CFString,
280        port: i32,
281    ) -> CFRetained<CFNetService> {
282        extern "C-unwind" {
283            fn CFNetServiceCreate(
284                alloc: Option<&CFAllocator>,
285                domain: &CFString,
286                service_type: &CFString,
287                name: &CFString,
288                port: i32,
289            ) -> Option<NonNull<CFNetService>>;
290        }
291        let ret = unsafe { CFNetServiceCreate(alloc, domain, service_type, name, port) };
292        let ret =
293            ret.expect("function was marked as returning non-null, but actually returned NULL");
294        unsafe { CFRetained::from_raw(ret) }
295    }
296
297    #[doc(alias = "CFNetServiceCreateCopy")]
298    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
299    #[inline]
300    pub unsafe fn new_copy(
301        alloc: Option<&CFAllocator>,
302        service: &CFNetService,
303    ) -> CFRetained<CFNetService> {
304        extern "C-unwind" {
305            fn CFNetServiceCreateCopy(
306                alloc: Option<&CFAllocator>,
307                service: &CFNetService,
308            ) -> Option<NonNull<CFNetService>>;
309        }
310        let ret = unsafe { CFNetServiceCreateCopy(alloc, service) };
311        let ret =
312            ret.expect("function was marked as returning non-null, but actually returned NULL");
313        unsafe { CFRetained::from_raw(ret) }
314    }
315
316    #[doc(alias = "CFNetServiceGetDomain")]
317    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
318    #[inline]
319    pub unsafe fn domain(&self) -> CFRetained<CFString> {
320        extern "C-unwind" {
321            fn CFNetServiceGetDomain(the_service: &CFNetService) -> Option<NonNull<CFString>>;
322        }
323        let ret = unsafe { CFNetServiceGetDomain(self) };
324        let ret =
325            ret.expect("function was marked as returning non-null, but actually returned NULL");
326        unsafe { CFRetained::retain(ret) }
327    }
328
329    #[doc(alias = "CFNetServiceGetType")]
330    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
331    #[inline]
332    pub unsafe fn r#type(&self) -> CFRetained<CFString> {
333        extern "C-unwind" {
334            fn CFNetServiceGetType(the_service: &CFNetService) -> Option<NonNull<CFString>>;
335        }
336        let ret = unsafe { CFNetServiceGetType(self) };
337        let ret =
338            ret.expect("function was marked as returning non-null, but actually returned NULL");
339        unsafe { CFRetained::retain(ret) }
340    }
341
342    #[doc(alias = "CFNetServiceGetName")]
343    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
344    #[inline]
345    pub unsafe fn name(&self) -> CFRetained<CFString> {
346        extern "C-unwind" {
347            fn CFNetServiceGetName(the_service: &CFNetService) -> Option<NonNull<CFString>>;
348        }
349        let ret = unsafe { CFNetServiceGetName(self) };
350        let ret =
351            ret.expect("function was marked as returning non-null, but actually returned NULL");
352        unsafe { CFRetained::retain(ret) }
353    }
354
355    /// # Safety
356    ///
357    /// `error` must be a valid pointer or null.
358    #[doc(alias = "CFNetServiceRegisterWithOptions")]
359    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
360    #[inline]
361    pub unsafe fn register_with_options(
362        &self,
363        options: CFOptionFlags,
364        error: *mut CFStreamError,
365    ) -> bool {
366        extern "C-unwind" {
367            fn CFNetServiceRegisterWithOptions(
368                the_service: &CFNetService,
369                options: CFOptionFlags,
370                error: *mut CFStreamError,
371            ) -> Boolean;
372        }
373        let ret = unsafe { CFNetServiceRegisterWithOptions(self, options, error) };
374        ret != 0
375    }
376
377    /// # Safety
378    ///
379    /// `error` must be a valid pointer or null.
380    #[doc(alias = "CFNetServiceResolveWithTimeout")]
381    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
382    #[inline]
383    pub unsafe fn resolve_with_timeout(
384        &self,
385        timeout: CFTimeInterval,
386        error: *mut CFStreamError,
387    ) -> bool {
388        extern "C-unwind" {
389            fn CFNetServiceResolveWithTimeout(
390                the_service: &CFNetService,
391                timeout: CFTimeInterval,
392                error: *mut CFStreamError,
393            ) -> Boolean;
394        }
395        let ret = unsafe { CFNetServiceResolveWithTimeout(self, timeout, error) };
396        ret != 0
397    }
398
399    #[doc(alias = "CFNetServiceCancel")]
400    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
401    #[inline]
402    pub unsafe fn cancel(&self) {
403        extern "C-unwind" {
404            fn CFNetServiceCancel(the_service: &CFNetService);
405        }
406        unsafe { CFNetServiceCancel(self) }
407    }
408
409    #[doc(alias = "CFNetServiceGetTargetHost")]
410    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
411    #[inline]
412    pub unsafe fn target_host(&self) -> Option<CFRetained<CFString>> {
413        extern "C-unwind" {
414            fn CFNetServiceGetTargetHost(the_service: &CFNetService) -> Option<NonNull<CFString>>;
415        }
416        let ret = unsafe { CFNetServiceGetTargetHost(self) };
417        ret.map(|ret| unsafe { CFRetained::retain(ret) })
418    }
419
420    #[doc(alias = "CFNetServiceGetPortNumber")]
421    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
422    #[inline]
423    pub unsafe fn port_number(&self) -> i32 {
424        extern "C-unwind" {
425            fn CFNetServiceGetPortNumber(the_service: &CFNetService) -> i32;
426        }
427        unsafe { CFNetServiceGetPortNumber(self) }
428    }
429
430    #[doc(alias = "CFNetServiceGetAddressing")]
431    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
432    #[inline]
433    pub unsafe fn addressing(&self) -> Option<CFRetained<CFArray>> {
434        extern "C-unwind" {
435            fn CFNetServiceGetAddressing(the_service: &CFNetService) -> Option<NonNull<CFArray>>;
436        }
437        let ret = unsafe { CFNetServiceGetAddressing(self) };
438        ret.map(|ret| unsafe { CFRetained::retain(ret) })
439    }
440
441    #[doc(alias = "CFNetServiceGetTXTData")]
442    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
443    #[inline]
444    pub unsafe fn txt_data(&self) -> Option<CFRetained<CFData>> {
445        extern "C-unwind" {
446            fn CFNetServiceGetTXTData(the_service: &CFNetService) -> Option<NonNull<CFData>>;
447        }
448        let ret = unsafe { CFNetServiceGetTXTData(self) };
449        ret.map(|ret| unsafe { CFRetained::retain(ret) })
450    }
451
452    #[doc(alias = "CFNetServiceSetTXTData")]
453    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
454    #[inline]
455    pub unsafe fn set_txt_data(&self, txt_record: &CFData) -> bool {
456        extern "C-unwind" {
457            fn CFNetServiceSetTXTData(the_service: &CFNetService, txt_record: &CFData) -> Boolean;
458        }
459        let ret = unsafe { CFNetServiceSetTXTData(self, txt_record) };
460        ret != 0
461    }
462
463    #[doc(alias = "CFNetServiceCreateDictionaryWithTXTData")]
464    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
465    #[inline]
466    pub unsafe fn new_dictionary_with_txt_data(
467        alloc: Option<&CFAllocator>,
468        txt_record: &CFData,
469    ) -> Option<CFRetained<CFDictionary>> {
470        extern "C-unwind" {
471            fn CFNetServiceCreateDictionaryWithTXTData(
472                alloc: Option<&CFAllocator>,
473                txt_record: &CFData,
474            ) -> Option<NonNull<CFDictionary>>;
475        }
476        let ret = unsafe { CFNetServiceCreateDictionaryWithTXTData(alloc, txt_record) };
477        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
478    }
479
480    /// # Safety
481    ///
482    /// `key_value_pairs` generics must be of the correct type.
483    #[doc(alias = "CFNetServiceCreateTXTDataWithDictionary")]
484    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
485    #[inline]
486    pub unsafe fn new_txt_data_with_dictionary(
487        alloc: Option<&CFAllocator>,
488        key_value_pairs: &CFDictionary,
489    ) -> Option<CFRetained<CFData>> {
490        extern "C-unwind" {
491            fn CFNetServiceCreateTXTDataWithDictionary(
492                alloc: Option<&CFAllocator>,
493                key_value_pairs: &CFDictionary,
494            ) -> Option<NonNull<CFData>>;
495        }
496        let ret = unsafe { CFNetServiceCreateTXTDataWithDictionary(alloc, key_value_pairs) };
497        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
498    }
499
500    /// # Safety
501    ///
502    /// - `client_cb` must be implemented correctly.
503    /// - `client_context` must be a valid pointer or null.
504    #[doc(alias = "CFNetServiceSetClient")]
505    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
506    #[inline]
507    pub unsafe fn set_client(
508        &self,
509        client_cb: CFNetServiceClientCallBack,
510        client_context: *mut CFNetServiceClientContext,
511    ) -> bool {
512        extern "C-unwind" {
513            fn CFNetServiceSetClient(
514                the_service: &CFNetService,
515                client_cb: CFNetServiceClientCallBack,
516                client_context: *mut CFNetServiceClientContext,
517            ) -> Boolean;
518        }
519        let ret = unsafe { CFNetServiceSetClient(self, client_cb, client_context) };
520        ret != 0
521    }
522
523    /// # Safety
524    ///
525    /// `run_loop` possibly has additional threading requirements.
526    #[doc(alias = "CFNetServiceScheduleWithRunLoop")]
527    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
528    #[inline]
529    pub unsafe fn schedule_with_run_loop(&self, run_loop: &CFRunLoop, run_loop_mode: &CFString) {
530        extern "C-unwind" {
531            fn CFNetServiceScheduleWithRunLoop(
532                the_service: &CFNetService,
533                run_loop: &CFRunLoop,
534                run_loop_mode: &CFString,
535            );
536        }
537        unsafe { CFNetServiceScheduleWithRunLoop(self, run_loop, run_loop_mode) }
538    }
539
540    /// # Safety
541    ///
542    /// `run_loop` possibly has additional threading requirements.
543    #[doc(alias = "CFNetServiceUnscheduleFromRunLoop")]
544    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
545    #[inline]
546    pub unsafe fn unschedule_from_run_loop(&self, run_loop: &CFRunLoop, run_loop_mode: &CFString) {
547        extern "C-unwind" {
548            fn CFNetServiceUnscheduleFromRunLoop(
549                the_service: &CFNetService,
550                run_loop: &CFRunLoop,
551                run_loop_mode: &CFString,
552            );
553        }
554        unsafe { CFNetServiceUnscheduleFromRunLoop(self, run_loop, run_loop_mode) }
555    }
556}
557
558impl CFNetServiceMonitor {
559    /// # Safety
560    ///
561    /// - `client_cb` must be implemented correctly.
562    /// - `client_context` must be a valid pointer.
563    #[doc(alias = "CFNetServiceMonitorCreate")]
564    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
565    #[inline]
566    pub unsafe fn new(
567        alloc: Option<&CFAllocator>,
568        the_service: &CFNetService,
569        client_cb: CFNetServiceMonitorClientCallBack,
570        client_context: NonNull<CFNetServiceClientContext>,
571    ) -> CFRetained<CFNetServiceMonitor> {
572        extern "C-unwind" {
573            fn CFNetServiceMonitorCreate(
574                alloc: Option<&CFAllocator>,
575                the_service: &CFNetService,
576                client_cb: CFNetServiceMonitorClientCallBack,
577                client_context: NonNull<CFNetServiceClientContext>,
578            ) -> Option<NonNull<CFNetServiceMonitor>>;
579        }
580        let ret =
581            unsafe { CFNetServiceMonitorCreate(alloc, the_service, client_cb, client_context) };
582        let ret =
583            ret.expect("function was marked as returning non-null, but actually returned NULL");
584        unsafe { CFRetained::from_raw(ret) }
585    }
586
587    #[doc(alias = "CFNetServiceMonitorInvalidate")]
588    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
589    #[inline]
590    pub unsafe fn invalidate(&self) {
591        extern "C-unwind" {
592            fn CFNetServiceMonitorInvalidate(monitor: &CFNetServiceMonitor);
593        }
594        unsafe { CFNetServiceMonitorInvalidate(self) }
595    }
596
597    /// # Safety
598    ///
599    /// `error` must be a valid pointer or null.
600    #[doc(alias = "CFNetServiceMonitorStart")]
601    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
602    #[inline]
603    pub unsafe fn start(
604        &self,
605        record_type: CFNetServiceMonitorType,
606        error: *mut CFStreamError,
607    ) -> bool {
608        extern "C-unwind" {
609            fn CFNetServiceMonitorStart(
610                monitor: &CFNetServiceMonitor,
611                record_type: CFNetServiceMonitorType,
612                error: *mut CFStreamError,
613            ) -> Boolean;
614        }
615        let ret = unsafe { CFNetServiceMonitorStart(self, record_type, error) };
616        ret != 0
617    }
618
619    /// # Safety
620    ///
621    /// `error` must be a valid pointer or null.
622    #[doc(alias = "CFNetServiceMonitorStop")]
623    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
624    #[inline]
625    pub unsafe fn stop(&self, error: *mut CFStreamError) {
626        extern "C-unwind" {
627            fn CFNetServiceMonitorStop(monitor: &CFNetServiceMonitor, error: *mut CFStreamError);
628        }
629        unsafe { CFNetServiceMonitorStop(self, error) }
630    }
631
632    /// # Safety
633    ///
634    /// `run_loop` possibly has additional threading requirements.
635    #[doc(alias = "CFNetServiceMonitorScheduleWithRunLoop")]
636    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
637    #[inline]
638    pub unsafe fn schedule_with_run_loop(&self, run_loop: &CFRunLoop, run_loop_mode: &CFString) {
639        extern "C-unwind" {
640            fn CFNetServiceMonitorScheduleWithRunLoop(
641                monitor: &CFNetServiceMonitor,
642                run_loop: &CFRunLoop,
643                run_loop_mode: &CFString,
644            );
645        }
646        unsafe { CFNetServiceMonitorScheduleWithRunLoop(self, run_loop, run_loop_mode) }
647    }
648
649    /// # Safety
650    ///
651    /// `run_loop` possibly has additional threading requirements.
652    #[doc(alias = "CFNetServiceMonitorUnscheduleFromRunLoop")]
653    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
654    #[inline]
655    pub unsafe fn unschedule_from_run_loop(&self, run_loop: &CFRunLoop, run_loop_mode: &CFString) {
656        extern "C-unwind" {
657            fn CFNetServiceMonitorUnscheduleFromRunLoop(
658                monitor: &CFNetServiceMonitor,
659                run_loop: &CFRunLoop,
660                run_loop_mode: &CFString,
661            );
662        }
663        unsafe { CFNetServiceMonitorUnscheduleFromRunLoop(self, run_loop, run_loop_mode) }
664    }
665}
666
667impl CFNetServiceBrowser {
668    /// # Safety
669    ///
670    /// - `client_cb` must be implemented correctly.
671    /// - `client_context` must be a valid pointer.
672    #[doc(alias = "CFNetServiceBrowserCreate")]
673    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
674    #[inline]
675    pub unsafe fn new(
676        alloc: Option<&CFAllocator>,
677        client_cb: CFNetServiceBrowserClientCallBack,
678        client_context: NonNull<CFNetServiceClientContext>,
679    ) -> CFRetained<CFNetServiceBrowser> {
680        extern "C-unwind" {
681            fn CFNetServiceBrowserCreate(
682                alloc: Option<&CFAllocator>,
683                client_cb: CFNetServiceBrowserClientCallBack,
684                client_context: NonNull<CFNetServiceClientContext>,
685            ) -> Option<NonNull<CFNetServiceBrowser>>;
686        }
687        let ret = unsafe { CFNetServiceBrowserCreate(alloc, client_cb, client_context) };
688        let ret =
689            ret.expect("function was marked as returning non-null, but actually returned NULL");
690        unsafe { CFRetained::from_raw(ret) }
691    }
692
693    #[doc(alias = "CFNetServiceBrowserInvalidate")]
694    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
695    #[inline]
696    pub unsafe fn invalidate(&self) {
697        extern "C-unwind" {
698            fn CFNetServiceBrowserInvalidate(browser: &CFNetServiceBrowser);
699        }
700        unsafe { CFNetServiceBrowserInvalidate(self) }
701    }
702
703    /// # Safety
704    ///
705    /// `error` must be a valid pointer or null.
706    #[doc(alias = "CFNetServiceBrowserSearchForDomains")]
707    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
708    #[inline]
709    pub unsafe fn search_for_domains(
710        &self,
711        registration_domains: bool,
712        error: *mut CFStreamError,
713    ) -> bool {
714        extern "C-unwind" {
715            fn CFNetServiceBrowserSearchForDomains(
716                browser: &CFNetServiceBrowser,
717                registration_domains: Boolean,
718                error: *mut CFStreamError,
719            ) -> Boolean;
720        }
721        let ret =
722            unsafe { CFNetServiceBrowserSearchForDomains(self, registration_domains as _, error) };
723        ret != 0
724    }
725
726    /// # Safety
727    ///
728    /// `error` must be a valid pointer or null.
729    #[doc(alias = "CFNetServiceBrowserSearchForServices")]
730    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
731    #[inline]
732    pub unsafe fn search_for_services(
733        &self,
734        domain: &CFString,
735        service_type: &CFString,
736        error: *mut CFStreamError,
737    ) -> bool {
738        extern "C-unwind" {
739            fn CFNetServiceBrowserSearchForServices(
740                browser: &CFNetServiceBrowser,
741                domain: &CFString,
742                service_type: &CFString,
743                error: *mut CFStreamError,
744            ) -> Boolean;
745        }
746        let ret =
747            unsafe { CFNetServiceBrowserSearchForServices(self, domain, service_type, error) };
748        ret != 0
749    }
750
751    /// # Safety
752    ///
753    /// `error` must be a valid pointer or null.
754    #[doc(alias = "CFNetServiceBrowserStopSearch")]
755    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
756    #[inline]
757    pub unsafe fn stop_search(&self, error: *mut CFStreamError) {
758        extern "C-unwind" {
759            fn CFNetServiceBrowserStopSearch(
760                browser: &CFNetServiceBrowser,
761                error: *mut CFStreamError,
762            );
763        }
764        unsafe { CFNetServiceBrowserStopSearch(self, error) }
765    }
766
767    /// # Safety
768    ///
769    /// `run_loop` possibly has additional threading requirements.
770    #[doc(alias = "CFNetServiceBrowserScheduleWithRunLoop")]
771    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
772    #[inline]
773    pub unsafe fn schedule_with_run_loop(&self, run_loop: &CFRunLoop, run_loop_mode: &CFString) {
774        extern "C-unwind" {
775            fn CFNetServiceBrowserScheduleWithRunLoop(
776                browser: &CFNetServiceBrowser,
777                run_loop: &CFRunLoop,
778                run_loop_mode: &CFString,
779            );
780        }
781        unsafe { CFNetServiceBrowserScheduleWithRunLoop(self, run_loop, run_loop_mode) }
782    }
783
784    /// # Safety
785    ///
786    /// `run_loop` possibly has additional threading requirements.
787    #[doc(alias = "CFNetServiceBrowserUnscheduleFromRunLoop")]
788    #[deprecated = "Use nw_browser_t or nw_listener_t in Network framework instead"]
789    #[inline]
790    pub unsafe fn unschedule_from_run_loop(&self, run_loop: &CFRunLoop, run_loop_mode: &CFString) {
791        extern "C-unwind" {
792            fn CFNetServiceBrowserUnscheduleFromRunLoop(
793                browser: &CFNetServiceBrowser,
794                run_loop: &CFRunLoop,
795                run_loop_mode: &CFString,
796            );
797        }
798        unsafe { CFNetServiceBrowserUnscheduleFromRunLoop(self, run_loop, run_loop_mode) }
799    }
800}
801
802impl CFNetService {
803    /// # Safety
804    ///
805    /// `error` must be a valid pointer or null.
806    #[doc(alias = "CFNetServiceRegister")]
807    #[deprecated]
808    #[inline]
809    pub unsafe fn register(&self, error: *mut CFStreamError) -> bool {
810        extern "C-unwind" {
811            fn CFNetServiceRegister(
812                the_service: &CFNetService,
813                error: *mut CFStreamError,
814            ) -> Boolean;
815        }
816        let ret = unsafe { CFNetServiceRegister(self, error) };
817        ret != 0
818    }
819
820    /// # Safety
821    ///
822    /// `error` must be a valid pointer or null.
823    #[doc(alias = "CFNetServiceResolve")]
824    #[deprecated]
825    #[inline]
826    pub unsafe fn resolve(&self, error: *mut CFStreamError) -> bool {
827        extern "C-unwind" {
828            fn CFNetServiceResolve(
829                the_service: &CFNetService,
830                error: *mut CFStreamError,
831            ) -> Boolean;
832        }
833        let ret = unsafe { CFNetServiceResolve(self, error) };
834        ret != 0
835    }
836}
837
838#[deprecated = "renamed to `CFNetService::new`"]
839#[inline]
840pub unsafe extern "C-unwind" fn CFNetServiceCreate(
841    alloc: Option<&CFAllocator>,
842    domain: &CFString,
843    service_type: &CFString,
844    name: &CFString,
845    port: i32,
846) -> CFRetained<CFNetService> {
847    extern "C-unwind" {
848        fn CFNetServiceCreate(
849            alloc: Option<&CFAllocator>,
850            domain: &CFString,
851            service_type: &CFString,
852            name: &CFString,
853            port: i32,
854        ) -> Option<NonNull<CFNetService>>;
855    }
856    let ret = unsafe { CFNetServiceCreate(alloc, domain, service_type, name, port) };
857    let ret = ret.expect("function was marked as returning non-null, but actually returned NULL");
858    unsafe { CFRetained::from_raw(ret) }
859}
860
861#[deprecated = "renamed to `CFNetService::new_copy`"]
862#[inline]
863pub unsafe extern "C-unwind" fn CFNetServiceCreateCopy(
864    alloc: Option<&CFAllocator>,
865    service: &CFNetService,
866) -> CFRetained<CFNetService> {
867    extern "C-unwind" {
868        fn CFNetServiceCreateCopy(
869            alloc: Option<&CFAllocator>,
870            service: &CFNetService,
871        ) -> Option<NonNull<CFNetService>>;
872    }
873    let ret = unsafe { CFNetServiceCreateCopy(alloc, service) };
874    let ret = ret.expect("function was marked as returning non-null, but actually returned NULL");
875    unsafe { CFRetained::from_raw(ret) }
876}
877
878#[deprecated = "renamed to `CFNetService::domain`"]
879#[inline]
880pub unsafe extern "C-unwind" fn CFNetServiceGetDomain(
881    the_service: &CFNetService,
882) -> CFRetained<CFString> {
883    extern "C-unwind" {
884        fn CFNetServiceGetDomain(the_service: &CFNetService) -> Option<NonNull<CFString>>;
885    }
886    let ret = unsafe { CFNetServiceGetDomain(the_service) };
887    let ret = ret.expect("function was marked as returning non-null, but actually returned NULL");
888    unsafe { CFRetained::retain(ret) }
889}
890
891#[deprecated = "renamed to `CFNetService::type`"]
892#[inline]
893pub unsafe extern "C-unwind" fn CFNetServiceGetType(
894    the_service: &CFNetService,
895) -> CFRetained<CFString> {
896    extern "C-unwind" {
897        fn CFNetServiceGetType(the_service: &CFNetService) -> Option<NonNull<CFString>>;
898    }
899    let ret = unsafe { CFNetServiceGetType(the_service) };
900    let ret = ret.expect("function was marked as returning non-null, but actually returned NULL");
901    unsafe { CFRetained::retain(ret) }
902}
903
904#[deprecated = "renamed to `CFNetService::name`"]
905#[inline]
906pub unsafe extern "C-unwind" fn CFNetServiceGetName(
907    the_service: &CFNetService,
908) -> CFRetained<CFString> {
909    extern "C-unwind" {
910        fn CFNetServiceGetName(the_service: &CFNetService) -> Option<NonNull<CFString>>;
911    }
912    let ret = unsafe { CFNetServiceGetName(the_service) };
913    let ret = ret.expect("function was marked as returning non-null, but actually returned NULL");
914    unsafe { CFRetained::retain(ret) }
915}
916
917#[deprecated = "renamed to `CFNetService::register_with_options`"]
918#[inline]
919pub unsafe extern "C-unwind" fn CFNetServiceRegisterWithOptions(
920    the_service: &CFNetService,
921    options: CFOptionFlags,
922    error: *mut CFStreamError,
923) -> bool {
924    extern "C-unwind" {
925        fn CFNetServiceRegisterWithOptions(
926            the_service: &CFNetService,
927            options: CFOptionFlags,
928            error: *mut CFStreamError,
929        ) -> Boolean;
930    }
931    let ret = unsafe { CFNetServiceRegisterWithOptions(the_service, options, error) };
932    ret != 0
933}
934
935#[deprecated = "renamed to `CFNetService::resolve_with_timeout`"]
936#[inline]
937pub unsafe extern "C-unwind" fn CFNetServiceResolveWithTimeout(
938    the_service: &CFNetService,
939    timeout: CFTimeInterval,
940    error: *mut CFStreamError,
941) -> bool {
942    extern "C-unwind" {
943        fn CFNetServiceResolveWithTimeout(
944            the_service: &CFNetService,
945            timeout: CFTimeInterval,
946            error: *mut CFStreamError,
947        ) -> Boolean;
948    }
949    let ret = unsafe { CFNetServiceResolveWithTimeout(the_service, timeout, error) };
950    ret != 0
951}
952
953extern "C-unwind" {
954    #[deprecated = "renamed to `CFNetService::cancel`"]
955    pub fn CFNetServiceCancel(the_service: &CFNetService);
956}
957
958#[deprecated = "renamed to `CFNetService::target_host`"]
959#[inline]
960pub unsafe extern "C-unwind" fn CFNetServiceGetTargetHost(
961    the_service: &CFNetService,
962) -> Option<CFRetained<CFString>> {
963    extern "C-unwind" {
964        fn CFNetServiceGetTargetHost(the_service: &CFNetService) -> Option<NonNull<CFString>>;
965    }
966    let ret = unsafe { CFNetServiceGetTargetHost(the_service) };
967    ret.map(|ret| unsafe { CFRetained::retain(ret) })
968}
969
970extern "C-unwind" {
971    #[deprecated = "renamed to `CFNetService::port_number`"]
972    pub fn CFNetServiceGetPortNumber(the_service: &CFNetService) -> i32;
973}
974
975#[deprecated = "renamed to `CFNetService::addressing`"]
976#[inline]
977pub unsafe extern "C-unwind" fn CFNetServiceGetAddressing(
978    the_service: &CFNetService,
979) -> Option<CFRetained<CFArray>> {
980    extern "C-unwind" {
981        fn CFNetServiceGetAddressing(the_service: &CFNetService) -> Option<NonNull<CFArray>>;
982    }
983    let ret = unsafe { CFNetServiceGetAddressing(the_service) };
984    ret.map(|ret| unsafe { CFRetained::retain(ret) })
985}
986
987#[deprecated = "renamed to `CFNetService::txt_data`"]
988#[inline]
989pub unsafe extern "C-unwind" fn CFNetServiceGetTXTData(
990    the_service: &CFNetService,
991) -> Option<CFRetained<CFData>> {
992    extern "C-unwind" {
993        fn CFNetServiceGetTXTData(the_service: &CFNetService) -> Option<NonNull<CFData>>;
994    }
995    let ret = unsafe { CFNetServiceGetTXTData(the_service) };
996    ret.map(|ret| unsafe { CFRetained::retain(ret) })
997}
998
999#[deprecated = "renamed to `CFNetService::set_txt_data`"]
1000#[inline]
1001pub unsafe extern "C-unwind" fn CFNetServiceSetTXTData(
1002    the_service: &CFNetService,
1003    txt_record: &CFData,
1004) -> bool {
1005    extern "C-unwind" {
1006        fn CFNetServiceSetTXTData(the_service: &CFNetService, txt_record: &CFData) -> Boolean;
1007    }
1008    let ret = unsafe { CFNetServiceSetTXTData(the_service, txt_record) };
1009    ret != 0
1010}
1011
1012#[deprecated = "renamed to `CFNetService::new_dictionary_with_txt_data`"]
1013#[inline]
1014pub unsafe extern "C-unwind" fn CFNetServiceCreateDictionaryWithTXTData(
1015    alloc: Option<&CFAllocator>,
1016    txt_record: &CFData,
1017) -> Option<CFRetained<CFDictionary>> {
1018    extern "C-unwind" {
1019        fn CFNetServiceCreateDictionaryWithTXTData(
1020            alloc: Option<&CFAllocator>,
1021            txt_record: &CFData,
1022        ) -> Option<NonNull<CFDictionary>>;
1023    }
1024    let ret = unsafe { CFNetServiceCreateDictionaryWithTXTData(alloc, txt_record) };
1025    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
1026}
1027
1028#[deprecated = "renamed to `CFNetService::new_txt_data_with_dictionary`"]
1029#[inline]
1030pub unsafe extern "C-unwind" fn CFNetServiceCreateTXTDataWithDictionary(
1031    alloc: Option<&CFAllocator>,
1032    key_value_pairs: &CFDictionary,
1033) -> Option<CFRetained<CFData>> {
1034    extern "C-unwind" {
1035        fn CFNetServiceCreateTXTDataWithDictionary(
1036            alloc: Option<&CFAllocator>,
1037            key_value_pairs: &CFDictionary,
1038        ) -> Option<NonNull<CFData>>;
1039    }
1040    let ret = unsafe { CFNetServiceCreateTXTDataWithDictionary(alloc, key_value_pairs) };
1041    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
1042}
1043
1044#[deprecated = "renamed to `CFNetService::set_client`"]
1045#[inline]
1046pub unsafe extern "C-unwind" fn CFNetServiceSetClient(
1047    the_service: &CFNetService,
1048    client_cb: CFNetServiceClientCallBack,
1049    client_context: *mut CFNetServiceClientContext,
1050) -> bool {
1051    extern "C-unwind" {
1052        fn CFNetServiceSetClient(
1053            the_service: &CFNetService,
1054            client_cb: CFNetServiceClientCallBack,
1055            client_context: *mut CFNetServiceClientContext,
1056        ) -> Boolean;
1057    }
1058    let ret = unsafe { CFNetServiceSetClient(the_service, client_cb, client_context) };
1059    ret != 0
1060}
1061
1062extern "C-unwind" {
1063    #[deprecated = "renamed to `CFNetService::schedule_with_run_loop`"]
1064    pub fn CFNetServiceScheduleWithRunLoop(
1065        the_service: &CFNetService,
1066        run_loop: &CFRunLoop,
1067        run_loop_mode: &CFString,
1068    );
1069}
1070
1071extern "C-unwind" {
1072    #[deprecated = "renamed to `CFNetService::unschedule_from_run_loop`"]
1073    pub fn CFNetServiceUnscheduleFromRunLoop(
1074        the_service: &CFNetService,
1075        run_loop: &CFRunLoop,
1076        run_loop_mode: &CFString,
1077    );
1078}
1079
1080#[deprecated = "renamed to `CFNetServiceMonitor::new`"]
1081#[inline]
1082pub unsafe extern "C-unwind" fn CFNetServiceMonitorCreate(
1083    alloc: Option<&CFAllocator>,
1084    the_service: &CFNetService,
1085    client_cb: CFNetServiceMonitorClientCallBack,
1086    client_context: NonNull<CFNetServiceClientContext>,
1087) -> CFRetained<CFNetServiceMonitor> {
1088    extern "C-unwind" {
1089        fn CFNetServiceMonitorCreate(
1090            alloc: Option<&CFAllocator>,
1091            the_service: &CFNetService,
1092            client_cb: CFNetServiceMonitorClientCallBack,
1093            client_context: NonNull<CFNetServiceClientContext>,
1094        ) -> Option<NonNull<CFNetServiceMonitor>>;
1095    }
1096    let ret = unsafe { CFNetServiceMonitorCreate(alloc, the_service, client_cb, client_context) };
1097    let ret = ret.expect("function was marked as returning non-null, but actually returned NULL");
1098    unsafe { CFRetained::from_raw(ret) }
1099}
1100
1101extern "C-unwind" {
1102    #[deprecated = "renamed to `CFNetServiceMonitor::invalidate`"]
1103    pub fn CFNetServiceMonitorInvalidate(monitor: &CFNetServiceMonitor);
1104}
1105
1106#[deprecated = "renamed to `CFNetServiceMonitor::start`"]
1107#[inline]
1108pub unsafe extern "C-unwind" fn CFNetServiceMonitorStart(
1109    monitor: &CFNetServiceMonitor,
1110    record_type: CFNetServiceMonitorType,
1111    error: *mut CFStreamError,
1112) -> bool {
1113    extern "C-unwind" {
1114        fn CFNetServiceMonitorStart(
1115            monitor: &CFNetServiceMonitor,
1116            record_type: CFNetServiceMonitorType,
1117            error: *mut CFStreamError,
1118        ) -> Boolean;
1119    }
1120    let ret = unsafe { CFNetServiceMonitorStart(monitor, record_type, error) };
1121    ret != 0
1122}
1123
1124extern "C-unwind" {
1125    #[deprecated = "renamed to `CFNetServiceMonitor::stop`"]
1126    pub fn CFNetServiceMonitorStop(monitor: &CFNetServiceMonitor, error: *mut CFStreamError);
1127}
1128
1129extern "C-unwind" {
1130    #[deprecated = "renamed to `CFNetServiceMonitor::schedule_with_run_loop`"]
1131    pub fn CFNetServiceMonitorScheduleWithRunLoop(
1132        monitor: &CFNetServiceMonitor,
1133        run_loop: &CFRunLoop,
1134        run_loop_mode: &CFString,
1135    );
1136}
1137
1138extern "C-unwind" {
1139    #[deprecated = "renamed to `CFNetServiceMonitor::unschedule_from_run_loop`"]
1140    pub fn CFNetServiceMonitorUnscheduleFromRunLoop(
1141        monitor: &CFNetServiceMonitor,
1142        run_loop: &CFRunLoop,
1143        run_loop_mode: &CFString,
1144    );
1145}
1146
1147#[deprecated = "renamed to `CFNetServiceBrowser::new`"]
1148#[inline]
1149pub unsafe extern "C-unwind" fn CFNetServiceBrowserCreate(
1150    alloc: Option<&CFAllocator>,
1151    client_cb: CFNetServiceBrowserClientCallBack,
1152    client_context: NonNull<CFNetServiceClientContext>,
1153) -> CFRetained<CFNetServiceBrowser> {
1154    extern "C-unwind" {
1155        fn CFNetServiceBrowserCreate(
1156            alloc: Option<&CFAllocator>,
1157            client_cb: CFNetServiceBrowserClientCallBack,
1158            client_context: NonNull<CFNetServiceClientContext>,
1159        ) -> Option<NonNull<CFNetServiceBrowser>>;
1160    }
1161    let ret = unsafe { CFNetServiceBrowserCreate(alloc, client_cb, client_context) };
1162    let ret = ret.expect("function was marked as returning non-null, but actually returned NULL");
1163    unsafe { CFRetained::from_raw(ret) }
1164}
1165
1166extern "C-unwind" {
1167    #[deprecated = "renamed to `CFNetServiceBrowser::invalidate`"]
1168    pub fn CFNetServiceBrowserInvalidate(browser: &CFNetServiceBrowser);
1169}
1170
1171#[deprecated = "renamed to `CFNetServiceBrowser::search_for_domains`"]
1172#[inline]
1173pub unsafe extern "C-unwind" fn CFNetServiceBrowserSearchForDomains(
1174    browser: &CFNetServiceBrowser,
1175    registration_domains: bool,
1176    error: *mut CFStreamError,
1177) -> bool {
1178    extern "C-unwind" {
1179        fn CFNetServiceBrowserSearchForDomains(
1180            browser: &CFNetServiceBrowser,
1181            registration_domains: Boolean,
1182            error: *mut CFStreamError,
1183        ) -> Boolean;
1184    }
1185    let ret =
1186        unsafe { CFNetServiceBrowserSearchForDomains(browser, registration_domains as _, error) };
1187    ret != 0
1188}
1189
1190#[deprecated = "renamed to `CFNetServiceBrowser::search_for_services`"]
1191#[inline]
1192pub unsafe extern "C-unwind" fn CFNetServiceBrowserSearchForServices(
1193    browser: &CFNetServiceBrowser,
1194    domain: &CFString,
1195    service_type: &CFString,
1196    error: *mut CFStreamError,
1197) -> bool {
1198    extern "C-unwind" {
1199        fn CFNetServiceBrowserSearchForServices(
1200            browser: &CFNetServiceBrowser,
1201            domain: &CFString,
1202            service_type: &CFString,
1203            error: *mut CFStreamError,
1204        ) -> Boolean;
1205    }
1206    let ret = unsafe { CFNetServiceBrowserSearchForServices(browser, domain, service_type, error) };
1207    ret != 0
1208}
1209
1210extern "C-unwind" {
1211    #[deprecated = "renamed to `CFNetServiceBrowser::stop_search`"]
1212    pub fn CFNetServiceBrowserStopSearch(browser: &CFNetServiceBrowser, error: *mut CFStreamError);
1213}
1214
1215extern "C-unwind" {
1216    #[deprecated = "renamed to `CFNetServiceBrowser::schedule_with_run_loop`"]
1217    pub fn CFNetServiceBrowserScheduleWithRunLoop(
1218        browser: &CFNetServiceBrowser,
1219        run_loop: &CFRunLoop,
1220        run_loop_mode: &CFString,
1221    );
1222}
1223
1224extern "C-unwind" {
1225    #[deprecated = "renamed to `CFNetServiceBrowser::unschedule_from_run_loop`"]
1226    pub fn CFNetServiceBrowserUnscheduleFromRunLoop(
1227        browser: &CFNetServiceBrowser,
1228        run_loop: &CFRunLoop,
1229        run_loop_mode: &CFString,
1230    );
1231}
1232
1233#[deprecated = "renamed to `CFNetService::register`"]
1234#[inline]
1235pub unsafe extern "C-unwind" fn CFNetServiceRegister(
1236    the_service: &CFNetService,
1237    error: *mut CFStreamError,
1238) -> bool {
1239    extern "C-unwind" {
1240        fn CFNetServiceRegister(the_service: &CFNetService, error: *mut CFStreamError) -> Boolean;
1241    }
1242    let ret = unsafe { CFNetServiceRegister(the_service, error) };
1243    ret != 0
1244}
1245
1246#[deprecated = "renamed to `CFNetService::resolve`"]
1247#[inline]
1248pub unsafe extern "C-unwind" fn CFNetServiceResolve(
1249    the_service: &CFNetService,
1250    error: *mut CFStreamError,
1251) -> bool {
1252    extern "C-unwind" {
1253        fn CFNetServiceResolve(the_service: &CFNetService, error: *mut CFStreamError) -> Boolean;
1254    }
1255    let ret = unsafe { CFNetServiceResolve(the_service, error) };
1256    ret != 0
1257}