1use 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#[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#[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#[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 pub static kCFStreamErrorDomainMach: i32;
64}
65
66extern "C" {
67 pub static kCFStreamErrorDomainNetServices: i32;
69}
70
71#[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#[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#[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#[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#[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
211pub type CFNetServiceClientCallBack =
213 Option<unsafe extern "C-unwind" fn(NonNull<CFNetService>, *mut CFStreamError, *mut c_void)>;
214
215pub 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
227pub 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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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 #[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}