objc2-browser-engine-kit 0.3.2

Bindings to the BrowserEngineKit framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::ffi::*;
use core::ptr::NonNull;
use objc2::__framework_prelude::*;
#[cfg(feature = "objc2-av-foundation")]
use objc2_av_foundation::*;
use objc2_foundation::*;

use crate::*;

extern_protocol!(
    /// An object that represents a granted capability.
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/browserenginekit/beprocesscapabilitygrant?language=objc)
    pub unsafe trait BEProcessCapabilityGrant: NSObjectProtocol {
        /// Invalidates the grant, removing the capability from the process it was granted to.
        #[unsafe(method(invalidate))]
        #[unsafe(method_family = none)]
        unsafe fn invalidate(&self) -> bool;

        /// `YES` if the process has been granted the capability and the grant is still valid.
        #[unsafe(method(isValid))]
        #[unsafe(method_family = none)]
        unsafe fn isValid(&self) -> bool;
    }
);

extern_class!(
    /// An object that represents a media playback environment
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/browserenginekit/bemediaenvironment?language=objc)
    #[unsafe(super(NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct BEMediaEnvironment;
);

extern_conformance!(
    unsafe impl NSObjectProtocol for BEMediaEnvironment {}
);

impl BEMediaEnvironment {
    extern_methods!(
        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub unsafe fn new() -> Retained<Self>;

        /// Creates a new media playback environment identified by the web page URL
        ///
        /// - Parameters:
        /// - url: The URL identifying the media playback environment
        #[unsafe(method(initWithWebPageURL:))]
        #[unsafe(method_family = init)]
        pub unsafe fn initWithWebPageURL(this: Allocated<Self>, url: &NSURL) -> Retained<Self>;

        /// Activates the media environment.
        #[unsafe(method(activateWithError:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn activateWithError(&self) -> Result<(), Retained<NSError>>;

        /// Suspends the media environment.
        #[unsafe(method(suspendWithError:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn suspendWithError(&self) -> Result<(), Retained<NSError>>;

        #[cfg(feature = "objc2-av-foundation")]
        /// Creates a new capture session in this media environment.
        ///
        /// The media environment must be activated before the capture session can be started.
        #[unsafe(method(makeCaptureSessionWithError:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn makeCaptureSessionWithError(
            &self,
        ) -> Result<Retained<AVCaptureSession>, Retained<NSError>>;
    );
}

extern_class!(
    /// An object representing capabilities that can be granted to a helper extension process.
    ///
    /// See also [Apple's documentation](https://developer.apple.com/documentation/browserenginekit/beprocesscapability?language=objc)
    #[unsafe(super(NSObject))]
    #[derive(Debug, PartialEq, Eq, Hash)]
    pub struct BEProcessCapability;
);

extern_conformance!(
    unsafe impl NSObjectProtocol for BEProcessCapability {}
);

impl BEProcessCapability {
    extern_methods!(
        /// The helper extension process may access AV hardware required for media capture and playback.
        #[unsafe(method(mediaPlaybackAndCaptureWithEnvironment:))]
        #[unsafe(method_family = none)]
        pub unsafe fn mediaPlaybackAndCaptureWithEnvironment(
            environment: &BEMediaEnvironment,
        ) -> Retained<Self>;

        /// The helper extension process may run in the background to finish work.
        #[unsafe(method(background))]
        #[unsafe(method_family = none)]
        pub unsafe fn background() -> Retained<Self>;

        /// The helper extension process may run at foreground priority to work on behalf of the host process while it is foreground.
        #[unsafe(method(foreground))]
        #[unsafe(method_family = none)]
        pub unsafe fn foreground() -> Retained<Self>;

        /// The helper extension process may remain resident in a suspended state (it will not be granted CPU time).
        #[unsafe(method(suspended))]
        #[unsafe(method_family = none)]
        pub unsafe fn suspended() -> Retained<Self>;

        /// Requests the capability to be granted to the current process.
        ///
        /// Returns the granted capability or nil and an error if it can not be granted
        #[unsafe(method(requestWithError:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn requestWithError(
            &self,
        ) -> Result<Retained<ProtocolObject<dyn BEProcessCapabilityGrant>>, Retained<NSError>>;
    );
}

/// Methods declared on superclass `NSObject`.
impl BEProcessCapability {
    extern_methods!(
        #[unsafe(method(init))]
        #[unsafe(method_family = init)]
        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;

        #[unsafe(method(new))]
        #[unsafe(method_family = new)]
        pub unsafe fn new() -> Retained<Self>;
    );
}

/// Capability.
#[cfg(feature = "BEWebContentProcess")]
impl BEWebContentProcess {
    extern_methods!(
        /// Grants the specified capability to the process.
        ///
        /// This method grants the specified capability to the process or returns nil and an error if it can not be granted.
        ///
        /// - Parameters:
        /// - capability: The capability to be granted
        /// - error: The error out param populated if the capability cannot be granted.
        ///
        /// - Returns: an invalidatable grant object that represents the granted capability.
        #[unsafe(method(grantCapability:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn grantCapability_error(
            &self,
            capability: &BEProcessCapability,
        ) -> Result<Retained<ProtocolObject<dyn BEProcessCapabilityGrant>>, Retained<NSError>>;
    );
}

/// CapabilityInvalidationHandler.
#[cfg(feature = "BEWebContentProcess")]
impl BEWebContentProcess {
    extern_methods!(
        #[cfg(feature = "block2")]
        /// Grants the specified capability to the process with invalidation handler.
        ///
        /// This method grants the specified capability to the process or returns nil and an error if it can not be granted.
        ///
        /// - Parameters:
        /// - capability: The capability to be granted
        /// - error: The error out param populated if the capability cannot be granted.
        /// - invalidationHandler: The invalidation handler
        ///
        /// - Returns: an invalidatable grant object that represents the granted capability.
        #[unsafe(method(grantCapability:error:invalidationHandler:))]
        #[unsafe(method_family = none)]
        pub unsafe fn grantCapability_error_invalidationHandler(
            &self,
            capability: &BEProcessCapability,
            error: Option<&mut Option<Retained<NSError>>>,
            invalidation_handler: &block2::DynBlock<dyn Fn()>,
        ) -> Option<Retained<ProtocolObject<dyn BEProcessCapabilityGrant>>>;
    );
}

/// Capability.
#[cfg(feature = "BERenderingProcess")]
impl BERenderingProcess {
    extern_methods!(
        /// Grants the specified capability to the process.
        ///
        /// This method grants the specified capability to the process or returns nil and an error if it can not be granted.
        ///
        /// - Parameters:
        /// - capability: The capability to be granted
        /// - error: The error out param populated if the capability cannot be granted.
        ///
        /// - Returns: an invalidatable grant object that represents the granted capability.
        #[unsafe(method(grantCapability:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn grantCapability_error(
            &self,
            capability: &BEProcessCapability,
        ) -> Result<Retained<ProtocolObject<dyn BEProcessCapabilityGrant>>, Retained<NSError>>;
    );
}

/// CapabilityInvalidationHandler.
#[cfg(feature = "BERenderingProcess")]
impl BERenderingProcess {
    extern_methods!(
        #[cfg(feature = "block2")]
        /// Grants the specified capability to the process with invalidation handler.
        ///
        /// This method grants the specified capability to the process or returns nil and an error if it can not be granted.
        ///
        /// - Parameters:
        /// - capability: The capability to be granted
        /// - error: The error out param populated if the capability cannot be granted.
        /// - invalidationHandler: The invalidation handler
        ///
        /// - Returns: an invalidatable grant object that represents the granted capability.
        #[unsafe(method(grantCapability:error:invalidationHandler:))]
        #[unsafe(method_family = none)]
        pub unsafe fn grantCapability_error_invalidationHandler(
            &self,
            capability: &BEProcessCapability,
            error: Option<&mut Option<Retained<NSError>>>,
            invalidation_handler: &block2::DynBlock<dyn Fn()>,
        ) -> Option<Retained<ProtocolObject<dyn BEProcessCapabilityGrant>>>;
    );
}

/// Capability.
#[cfg(feature = "BENetworkingProcess")]
impl BENetworkingProcess {
    extern_methods!(
        /// Grants the specified capability to the process.
        ///
        /// This method grants the specified capability to the process or returns nil and an error if it can not be granted.
        ///
        /// - Parameters:
        /// - capability: The capability to be granted
        /// - error: The error out param populated if the capability cannot be granted.
        ///
        /// - Returns: an invalidatable grant object that represents the granted capability.
        #[unsafe(method(grantCapability:error:_))]
        #[unsafe(method_family = none)]
        pub unsafe fn grantCapability_error(
            &self,
            capability: &BEProcessCapability,
        ) -> Result<Retained<ProtocolObject<dyn BEProcessCapabilityGrant>>, Retained<NSError>>;
    );
}

/// CapabilityInvalidationHandler.
#[cfg(feature = "BENetworkingProcess")]
impl BENetworkingProcess {
    extern_methods!(
        #[cfg(feature = "block2")]
        /// Grants the specified capability to the process with invalidation handler.
        ///
        /// This method grants the specified capability to the process or returns nil and an error if it can not be granted.
        ///
        /// - Parameters:
        /// - capability: The capability to be granted
        /// - error: The error out param populated if the capability cannot be granted.
        /// - invalidationHandler: The invalidation handler
        ///
        /// - Returns: an invalidatable grant object that represents the granted capability.
        #[unsafe(method(grantCapability:error:invalidationHandler:))]
        #[unsafe(method_family = none)]
        pub unsafe fn grantCapability_error_invalidationHandler(
            &self,
            capability: &BEProcessCapability,
            error: Option<&mut Option<Retained<NSError>>>,
            invalidation_handler: &block2::DynBlock<dyn Fn()>,
        ) -> Option<Retained<ProtocolObject<dyn BEProcessCapabilityGrant>>>;
    );
}