use objc2::__framework_prelude::*;
use objc2_foundation::*;
use crate::*;
#[deprecated = "Use CBManagerAuthorization instead"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CBPeripheralManagerAuthorizationStatus(pub NSInteger);
impl CBPeripheralManagerAuthorizationStatus {
#[deprecated = "Use CBManagerAuthorization instead"]
#[doc(alias = "CBPeripheralManagerAuthorizationStatusNotDetermined")]
pub const NotDetermined: Self = Self(0);
#[deprecated = "Use CBManagerAuthorization instead"]
#[doc(alias = "CBPeripheralManagerAuthorizationStatusRestricted")]
pub const Restricted: Self = Self(1);
#[deprecated = "Use CBManagerAuthorization instead"]
#[doc(alias = "CBPeripheralManagerAuthorizationStatusDenied")]
pub const Denied: Self = Self(2);
#[deprecated = "Use CBManagerAuthorization instead"]
#[doc(alias = "CBPeripheralManagerAuthorizationStatusAuthorized")]
pub const Authorized: Self = Self(3);
}
unsafe impl Encode for CBPeripheralManagerAuthorizationStatus {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for CBPeripheralManagerAuthorizationStatus {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[deprecated = "Use CBManagerState instead"]
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CBPeripheralManagerState(pub NSInteger);
impl CBPeripheralManagerState {
#[cfg(feature = "CBManager")]
#[deprecated = "Use CBManagerState instead"]
#[doc(alias = "CBPeripheralManagerStateUnknown")]
pub const Unknown: Self = Self(CBManagerState::Unknown.0);
#[cfg(feature = "CBManager")]
#[deprecated = "Use CBManagerState instead"]
#[doc(alias = "CBPeripheralManagerStateResetting")]
pub const Resetting: Self = Self(CBManagerState::Resetting.0);
#[cfg(feature = "CBManager")]
#[deprecated = "Use CBManagerState instead"]
#[doc(alias = "CBPeripheralManagerStateUnsupported")]
pub const Unsupported: Self = Self(CBManagerState::Unsupported.0);
#[cfg(feature = "CBManager")]
#[deprecated = "Use CBManagerState instead"]
#[doc(alias = "CBPeripheralManagerStateUnauthorized")]
pub const Unauthorized: Self = Self(CBManagerState::Unauthorized.0);
#[cfg(feature = "CBManager")]
#[deprecated = "Use CBManagerState instead"]
#[doc(alias = "CBPeripheralManagerStatePoweredOff")]
pub const PoweredOff: Self = Self(CBManagerState::PoweredOff.0);
#[cfg(feature = "CBManager")]
#[deprecated = "Use CBManagerState instead"]
#[doc(alias = "CBPeripheralManagerStatePoweredOn")]
pub const PoweredOn: Self = Self(CBManagerState::PoweredOn.0);
}
unsafe impl Encode for CBPeripheralManagerState {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for CBPeripheralManagerState {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
#[repr(transparent)]
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct CBPeripheralManagerConnectionLatency(pub NSInteger);
impl CBPeripheralManagerConnectionLatency {
#[doc(alias = "CBPeripheralManagerConnectionLatencyLow")]
pub const Low: Self = Self(0);
#[doc(alias = "CBPeripheralManagerConnectionLatencyMedium")]
pub const Medium: Self = Self(1);
#[doc(alias = "CBPeripheralManagerConnectionLatencyHigh")]
pub const High: Self = Self(2);
}
unsafe impl Encode for CBPeripheralManagerConnectionLatency {
const ENCODING: Encoding = NSInteger::ENCODING;
}
unsafe impl RefEncode for CBPeripheralManagerConnectionLatency {
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
}
extern_class!(
#[derive(Debug, PartialEq, Eq, Hash)]
#[cfg(feature = "CBManager")]
pub struct CBPeripheralManager;
#[cfg(feature = "CBManager")]
unsafe impl ClassType for CBPeripheralManager {
#[inherits(NSObject)]
type Super = CBManager;
type Mutability = InteriorMutable;
}
);
#[cfg(feature = "CBManager")]
unsafe impl NSObjectProtocol for CBPeripheralManager {}
extern_methods!(
#[cfg(feature = "CBManager")]
unsafe impl CBPeripheralManager {
#[method_id(@__retain_semantics Other delegate)]
pub unsafe fn delegate(
&self,
) -> Option<Retained<ProtocolObject<dyn CBPeripheralManagerDelegate>>>;
#[method(setDelegate:)]
pub unsafe fn setDelegate(
&self,
delegate: Option<&ProtocolObject<dyn CBPeripheralManagerDelegate>>,
);
#[method(isAdvertising)]
pub unsafe fn isAdvertising(&self) -> bool;
#[deprecated = "Use CBManagerAuthorization instead"]
#[method(authorizationStatus)]
pub unsafe fn authorizationStatus() -> CBPeripheralManagerAuthorizationStatus;
#[method_id(@__retain_semantics Init init)]
pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
#[method(startAdvertising:)]
pub unsafe fn startAdvertising(
&self,
advertisement_data: Option<&NSDictionary<NSString, AnyObject>>,
);
#[method(stopAdvertising)]
pub unsafe fn stopAdvertising(&self);
#[cfg(all(feature = "CBCentral", feature = "CBPeer"))]
#[method(setDesiredConnectionLatency:forCentral:)]
pub unsafe fn setDesiredConnectionLatency_forCentral(
&self,
latency: CBPeripheralManagerConnectionLatency,
central: &CBCentral,
);
#[cfg(all(feature = "CBAttribute", feature = "CBService"))]
#[method(addService:)]
pub unsafe fn addService(&self, service: &CBMutableService);
#[cfg(all(feature = "CBAttribute", feature = "CBService"))]
#[method(removeService:)]
pub unsafe fn removeService(&self, service: &CBMutableService);
#[method(removeAllServices)]
pub unsafe fn removeAllServices(&self);
#[cfg(all(feature = "CBATTRequest", feature = "CBError"))]
#[method(respondToRequest:withResult:)]
pub unsafe fn respondToRequest_withResult(
&self,
request: &CBATTRequest,
result: CBATTError,
);
#[cfg(all(
feature = "CBAttribute",
feature = "CBCentral",
feature = "CBCharacteristic",
feature = "CBPeer"
))]
#[method(updateValue:forCharacteristic:onSubscribedCentrals:)]
pub unsafe fn updateValue_forCharacteristic_onSubscribedCentrals(
&self,
value: &NSData,
characteristic: &CBMutableCharacteristic,
centrals: Option<&NSArray<CBCentral>>,
) -> bool;
#[method(publishL2CAPChannelWithEncryption:)]
pub unsafe fn publishL2CAPChannelWithEncryption(&self, encryption_required: bool);
#[cfg(feature = "CBL2CAPChannel")]
#[method(unpublishL2CAPChannel:)]
pub unsafe fn unpublishL2CAPChannel(&self, psm: CBL2CAPPSM);
}
);
extern_methods!(
#[cfg(feature = "CBManager")]
unsafe impl CBPeripheralManager {
#[method_id(@__retain_semantics New new)]
pub unsafe fn new() -> Retained<Self>;
}
);
extern_protocol!(
pub unsafe trait CBPeripheralManagerDelegate: NSObjectProtocol {
#[cfg(feature = "CBManager")]
#[method(peripheralManagerDidUpdateState:)]
unsafe fn peripheralManagerDidUpdateState(&self, peripheral: &CBPeripheralManager);
#[cfg(feature = "CBManager")]
#[optional]
#[method(peripheralManager:willRestoreState:)]
unsafe fn peripheralManager_willRestoreState(
&self,
peripheral: &CBPeripheralManager,
dict: &NSDictionary<NSString, AnyObject>,
);
#[cfg(feature = "CBManager")]
#[optional]
#[method(peripheralManagerDidStartAdvertising:error:)]
unsafe fn peripheralManagerDidStartAdvertising_error(
&self,
peripheral: &CBPeripheralManager,
error: Option<&NSError>,
);
#[cfg(all(feature = "CBAttribute", feature = "CBManager", feature = "CBService"))]
#[optional]
#[method(peripheralManager:didAddService:error:)]
unsafe fn peripheralManager_didAddService_error(
&self,
peripheral: &CBPeripheralManager,
service: &CBService,
error: Option<&NSError>,
);
#[cfg(all(
feature = "CBAttribute",
feature = "CBCentral",
feature = "CBCharacteristic",
feature = "CBManager",
feature = "CBPeer"
))]
#[optional]
#[method(peripheralManager:central:didSubscribeToCharacteristic:)]
unsafe fn peripheralManager_central_didSubscribeToCharacteristic(
&self,
peripheral: &CBPeripheralManager,
central: &CBCentral,
characteristic: &CBCharacteristic,
);
#[cfg(all(
feature = "CBAttribute",
feature = "CBCentral",
feature = "CBCharacteristic",
feature = "CBManager",
feature = "CBPeer"
))]
#[optional]
#[method(peripheralManager:central:didUnsubscribeFromCharacteristic:)]
unsafe fn peripheralManager_central_didUnsubscribeFromCharacteristic(
&self,
peripheral: &CBPeripheralManager,
central: &CBCentral,
characteristic: &CBCharacteristic,
);
#[cfg(all(feature = "CBATTRequest", feature = "CBManager"))]
#[optional]
#[method(peripheralManager:didReceiveReadRequest:)]
unsafe fn peripheralManager_didReceiveReadRequest(
&self,
peripheral: &CBPeripheralManager,
request: &CBATTRequest,
);
#[cfg(all(feature = "CBATTRequest", feature = "CBManager"))]
#[optional]
#[method(peripheralManager:didReceiveWriteRequests:)]
unsafe fn peripheralManager_didReceiveWriteRequests(
&self,
peripheral: &CBPeripheralManager,
requests: &NSArray<CBATTRequest>,
);
#[cfg(feature = "CBManager")]
#[optional]
#[method(peripheralManagerIsReadyToUpdateSubscribers:)]
unsafe fn peripheralManagerIsReadyToUpdateSubscribers(
&self,
peripheral: &CBPeripheralManager,
);
#[cfg(all(feature = "CBL2CAPChannel", feature = "CBManager"))]
#[optional]
#[method(peripheralManager:didPublishL2CAPChannel:error:)]
unsafe fn peripheralManager_didPublishL2CAPChannel_error(
&self,
peripheral: &CBPeripheralManager,
psm: CBL2CAPPSM,
error: Option<&NSError>,
);
#[cfg(all(feature = "CBL2CAPChannel", feature = "CBManager"))]
#[optional]
#[method(peripheralManager:didUnpublishL2CAPChannel:error:)]
unsafe fn peripheralManager_didUnpublishL2CAPChannel_error(
&self,
peripheral: &CBPeripheralManager,
psm: CBL2CAPPSM,
error: Option<&NSError>,
);
#[cfg(all(feature = "CBL2CAPChannel", feature = "CBManager"))]
#[optional]
#[method(peripheralManager:didOpenL2CAPChannel:error:)]
unsafe fn peripheralManager_didOpenL2CAPChannel_error(
&self,
peripheral: &CBPeripheralManager,
channel: Option<&CBL2CAPChannel>,
error: Option<&NSError>,
);
}
unsafe impl ProtocolType for dyn CBPeripheralManagerDelegate {}
);