objc2_foundation/generated/
NSProcessInfo.rs

1//! This file has been automatically generated by `objc2`'s `header-translator`.
2//! DO NOT EDIT
3use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6
7use crate::*;
8
9/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nswindowsntoperatingsystem?language=objc)
10#[deprecated = "Not supported"]
11pub const NSWindowsNTOperatingSystem: c_uint = 1;
12/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nswindows95operatingsystem?language=objc)
13#[deprecated = "Not supported"]
14pub const NSWindows95OperatingSystem: c_uint = 2;
15/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nssolarisoperatingsystem?language=objc)
16#[deprecated = "Not supported"]
17pub const NSSolarisOperatingSystem: c_uint = 3;
18/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nshpuxoperatingsystem?language=objc)
19#[deprecated = "Not supported"]
20pub const NSHPUXOperatingSystem: c_uint = 4;
21/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsmachoperatingsystem?language=objc)
22#[deprecated = "Not supported"]
23pub const NSMACHOperatingSystem: c_uint = 5;
24/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nssunosoperatingsystem?language=objc)
25#[deprecated = "Not supported"]
26pub const NSSunOSOperatingSystem: c_uint = 6;
27/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsosf1operatingsystem?language=objc)
28#[deprecated = "Not supported"]
29pub const NSOSF1OperatingSystem: c_uint = 7;
30
31/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsoperatingsystemversion?language=objc)
32#[repr(C)]
33#[derive(Clone, Copy, Debug, PartialEq)]
34pub struct NSOperatingSystemVersion {
35    pub majorVersion: NSInteger,
36    pub minorVersion: NSInteger,
37    pub patchVersion: NSInteger,
38}
39
40unsafe impl Encode for NSOperatingSystemVersion {
41    const ENCODING: Encoding = Encoding::Struct(
42        "?",
43        &[
44            <NSInteger>::ENCODING,
45            <NSInteger>::ENCODING,
46            <NSInteger>::ENCODING,
47        ],
48    );
49}
50
51unsafe impl RefEncode for NSOperatingSystemVersion {
52    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
53}
54
55unsafe impl Send for NSOperatingSystemVersion {}
56
57unsafe impl Sync for NSOperatingSystemVersion {}
58
59extern_class!(
60    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsprocessinfo?language=objc)
61    #[unsafe(super(NSObject))]
62    #[derive(PartialEq, Eq, Hash)]
63    pub struct NSProcessInfo;
64);
65
66unsafe impl Send for NSProcessInfo {}
67
68unsafe impl Sync for NSProcessInfo {}
69
70unsafe impl NSObjectProtocol for NSProcessInfo {}
71
72impl NSProcessInfo {
73    extern_methods!(
74        #[unsafe(method(processInfo))]
75        #[unsafe(method_family = none)]
76        pub fn processInfo() -> Retained<NSProcessInfo>;
77
78        #[cfg(all(feature = "NSDictionary", feature = "NSString"))]
79        #[unsafe(method(environment))]
80        #[unsafe(method_family = none)]
81        pub unsafe fn environment(&self) -> Retained<NSDictionary<NSString, NSString>>;
82
83        #[cfg(all(feature = "NSArray", feature = "NSString"))]
84        #[unsafe(method(arguments))]
85        #[unsafe(method_family = none)]
86        pub unsafe fn arguments(&self) -> Retained<NSArray<NSString>>;
87
88        #[cfg(feature = "NSString")]
89        #[unsafe(method(hostName))]
90        #[unsafe(method_family = none)]
91        pub unsafe fn hostName(&self) -> Retained<NSString>;
92
93        #[cfg(feature = "NSString")]
94        #[unsafe(method(processName))]
95        #[unsafe(method_family = none)]
96        pub fn processName(&self) -> Retained<NSString>;
97
98        #[cfg(feature = "NSString")]
99        /// Setter for [`processName`][Self::processName].
100        #[unsafe(method(setProcessName:))]
101        #[unsafe(method_family = none)]
102        pub unsafe fn setProcessName(&self, process_name: &NSString);
103
104        #[unsafe(method(processIdentifier))]
105        #[unsafe(method_family = none)]
106        pub unsafe fn processIdentifier(&self) -> c_int;
107
108        #[cfg(feature = "NSString")]
109        #[unsafe(method(globallyUniqueString))]
110        #[unsafe(method_family = none)]
111        pub unsafe fn globallyUniqueString(&self) -> Retained<NSString>;
112
113        #[deprecated = "-operatingSystem always returns NSMACHOperatingSystem, use -operatingSystemVersion or -isOperatingSystemAtLeastVersion: instead"]
114        #[unsafe(method(operatingSystem))]
115        #[unsafe(method_family = none)]
116        pub unsafe fn operatingSystem(&self) -> NSUInteger;
117
118        #[cfg(feature = "NSString")]
119        #[deprecated = "-operatingSystemName always returns NSMACHOperatingSystem, use -operatingSystemVersionString instead"]
120        #[unsafe(method(operatingSystemName))]
121        #[unsafe(method_family = none)]
122        pub unsafe fn operatingSystemName(&self) -> Retained<NSString>;
123
124        #[cfg(feature = "NSString")]
125        #[unsafe(method(operatingSystemVersionString))]
126        #[unsafe(method_family = none)]
127        pub unsafe fn operatingSystemVersionString(&self) -> Retained<NSString>;
128
129        #[unsafe(method(operatingSystemVersion))]
130        #[unsafe(method_family = none)]
131        pub fn operatingSystemVersion(&self) -> NSOperatingSystemVersion;
132
133        #[unsafe(method(processorCount))]
134        #[unsafe(method_family = none)]
135        pub unsafe fn processorCount(&self) -> NSUInteger;
136
137        #[unsafe(method(activeProcessorCount))]
138        #[unsafe(method_family = none)]
139        pub unsafe fn activeProcessorCount(&self) -> NSUInteger;
140
141        #[unsafe(method(physicalMemory))]
142        #[unsafe(method_family = none)]
143        pub unsafe fn physicalMemory(&self) -> c_ulonglong;
144
145        #[unsafe(method(isOperatingSystemAtLeastVersion:))]
146        #[unsafe(method_family = none)]
147        pub unsafe fn isOperatingSystemAtLeastVersion(
148            &self,
149            version: NSOperatingSystemVersion,
150        ) -> bool;
151
152        #[cfg(feature = "NSDate")]
153        #[unsafe(method(systemUptime))]
154        #[unsafe(method_family = none)]
155        pub unsafe fn systemUptime(&self) -> NSTimeInterval;
156
157        #[unsafe(method(disableSuddenTermination))]
158        #[unsafe(method_family = none)]
159        pub unsafe fn disableSuddenTermination(&self);
160
161        #[unsafe(method(enableSuddenTermination))]
162        #[unsafe(method_family = none)]
163        pub unsafe fn enableSuddenTermination(&self);
164
165        #[cfg(feature = "NSString")]
166        #[unsafe(method(disableAutomaticTermination:))]
167        #[unsafe(method_family = none)]
168        pub unsafe fn disableAutomaticTermination(&self, reason: &NSString);
169
170        #[cfg(feature = "NSString")]
171        #[unsafe(method(enableAutomaticTermination:))]
172        #[unsafe(method_family = none)]
173        pub unsafe fn enableAutomaticTermination(&self, reason: &NSString);
174
175        #[unsafe(method(automaticTerminationSupportEnabled))]
176        #[unsafe(method_family = none)]
177        pub unsafe fn automaticTerminationSupportEnabled(&self) -> bool;
178
179        /// Setter for [`automaticTerminationSupportEnabled`][Self::automaticTerminationSupportEnabled].
180        #[unsafe(method(setAutomaticTerminationSupportEnabled:))]
181        #[unsafe(method_family = none)]
182        pub unsafe fn setAutomaticTerminationSupportEnabled(
183            &self,
184            automatic_termination_support_enabled: bool,
185        );
186    );
187}
188
189/// Methods declared on superclass `NSObject`.
190impl NSProcessInfo {
191    extern_methods!(
192        #[unsafe(method(init))]
193        #[unsafe(method_family = init)]
194        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
195
196        #[unsafe(method(new))]
197        #[unsafe(method_family = new)]
198        pub unsafe fn new() -> Retained<Self>;
199    );
200}
201
202/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsactivityoptions?language=objc)
203// NS_OPTIONS
204#[repr(transparent)]
205#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
206pub struct NSActivityOptions(pub u64);
207bitflags::bitflags! {
208    impl NSActivityOptions: u64 {
209        #[doc(alias = "NSActivityIdleDisplaySleepDisabled")]
210        const IdleDisplaySleepDisabled = 1<<40;
211        #[doc(alias = "NSActivityIdleSystemSleepDisabled")]
212        const IdleSystemSleepDisabled = 1<<20;
213        #[doc(alias = "NSActivitySuddenTerminationDisabled")]
214        const SuddenTerminationDisabled = 1<<14;
215        #[doc(alias = "NSActivityAutomaticTerminationDisabled")]
216        const AutomaticTerminationDisabled = 1<<15;
217        #[doc(alias = "NSActivityAnimationTrackingEnabled")]
218        const AnimationTrackingEnabled = 1<<45;
219        #[doc(alias = "NSActivityTrackingEnabled")]
220        const TrackingEnabled = 1<<46;
221        #[doc(alias = "NSActivityUserInitiated")]
222        const UserInitiated = 0x00FFFFFF|NSActivityOptions::IdleSystemSleepDisabled.0;
223        #[doc(alias = "NSActivityUserInitiatedAllowingIdleSystemSleep")]
224        const UserInitiatedAllowingIdleSystemSleep = NSActivityOptions::UserInitiated.0&!NSActivityOptions::IdleSystemSleepDisabled.0;
225        #[doc(alias = "NSActivityBackground")]
226        const Background = 0x000000FF;
227        #[doc(alias = "NSActivityLatencyCritical")]
228        const LatencyCritical = 0xFF00000000;
229        #[doc(alias = "NSActivityUserInteractive")]
230        const UserInteractive = NSActivityOptions::UserInitiated.0|NSActivityOptions::LatencyCritical.0;
231    }
232}
233
234unsafe impl Encode for NSActivityOptions {
235    const ENCODING: Encoding = u64::ENCODING;
236}
237
238unsafe impl RefEncode for NSActivityOptions {
239    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
240}
241
242/// NSProcessInfoActivity.
243impl NSProcessInfo {
244    extern_methods!(
245        #[cfg(feature = "NSString")]
246        #[unsafe(method(beginActivityWithOptions:reason:))]
247        #[unsafe(method_family = none)]
248        pub unsafe fn beginActivityWithOptions_reason(
249            &self,
250            options: NSActivityOptions,
251            reason: &NSString,
252        ) -> Retained<ProtocolObject<dyn NSObjectProtocol>>;
253
254        #[unsafe(method(endActivity:))]
255        #[unsafe(method_family = none)]
256        pub unsafe fn endActivity(&self, activity: &ProtocolObject<dyn NSObjectProtocol>);
257
258        #[cfg(all(feature = "NSString", feature = "block2"))]
259        #[unsafe(method(performActivityWithOptions:reason:usingBlock:))]
260        #[unsafe(method_family = none)]
261        pub unsafe fn performActivityWithOptions_reason_usingBlock(
262            &self,
263            options: NSActivityOptions,
264            reason: &NSString,
265            block: &block2::Block<dyn Fn()>,
266        );
267
268        #[cfg(all(feature = "NSString", feature = "block2"))]
269        #[unsafe(method(performExpiringActivityWithReason:usingBlock:))]
270        #[unsafe(method_family = none)]
271        pub unsafe fn performExpiringActivityWithReason_usingBlock(
272            &self,
273            reason: &NSString,
274            block: &block2::Block<dyn Fn(Bool)>,
275        );
276    );
277}
278
279/// NSUserInformation.
280impl NSProcessInfo {
281    extern_methods!(
282        #[cfg(feature = "NSString")]
283        #[unsafe(method(userName))]
284        #[unsafe(method_family = none)]
285        pub unsafe fn userName(&self) -> Retained<NSString>;
286
287        #[cfg(feature = "NSString")]
288        #[unsafe(method(fullUserName))]
289        #[unsafe(method_family = none)]
290        pub unsafe fn fullUserName(&self) -> Retained<NSString>;
291    );
292}
293
294/// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsprocessinfothermalstate?language=objc)
295// NS_ENUM
296#[repr(transparent)]
297#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
298pub struct NSProcessInfoThermalState(pub NSInteger);
299impl NSProcessInfoThermalState {
300    #[doc(alias = "NSProcessInfoThermalStateNominal")]
301    pub const Nominal: Self = Self(0);
302    #[doc(alias = "NSProcessInfoThermalStateFair")]
303    pub const Fair: Self = Self(1);
304    #[doc(alias = "NSProcessInfoThermalStateSerious")]
305    pub const Serious: Self = Self(2);
306    #[doc(alias = "NSProcessInfoThermalStateCritical")]
307    pub const Critical: Self = Self(3);
308}
309
310unsafe impl Encode for NSProcessInfoThermalState {
311    const ENCODING: Encoding = NSInteger::ENCODING;
312}
313
314unsafe impl RefEncode for NSProcessInfoThermalState {
315    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
316}
317
318/// NSProcessInfoThermalState.
319impl NSProcessInfo {
320    extern_methods!(
321        #[unsafe(method(thermalState))]
322        #[unsafe(method_family = none)]
323        pub unsafe fn thermalState(&self) -> NSProcessInfoThermalState;
324    );
325}
326
327/// NSProcessInfoPowerState.
328impl NSProcessInfo {
329    extern_methods!(
330        #[unsafe(method(isLowPowerModeEnabled))]
331        #[unsafe(method_family = none)]
332        pub unsafe fn isLowPowerModeEnabled(&self) -> bool;
333    );
334}
335
336extern "C" {
337    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsprocessinfothermalstatedidchangenotification?language=objc)
338    #[cfg(all(feature = "NSNotification", feature = "NSString"))]
339    pub static NSProcessInfoThermalStateDidChangeNotification: &'static NSNotificationName;
340}
341
342extern "C" {
343    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nsprocessinfopowerstatedidchangenotification?language=objc)
344    #[cfg(all(feature = "NSNotification", feature = "NSString"))]
345    pub static NSProcessInfoPowerStateDidChangeNotification: &'static NSNotificationName;
346}
347
348/// NSProcessInfoPlatform.
349impl NSProcessInfo {
350    extern_methods!(
351        #[unsafe(method(isMacCatalystApp))]
352        #[unsafe(method_family = none)]
353        pub unsafe fn isMacCatalystApp(&self) -> bool;
354
355        #[unsafe(method(isiOSAppOnMac))]
356        #[unsafe(method_family = none)]
357        pub unsafe fn isiOSAppOnMac(&self) -> bool;
358    );
359}