objc2_foundation/generated/
NSProcessInfo.rs1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6
7use crate::*;
8
9#[deprecated = "Not supported"]
11pub const NSWindowsNTOperatingSystem: c_uint = 1;
12#[deprecated = "Not supported"]
14pub const NSWindows95OperatingSystem: c_uint = 2;
15#[deprecated = "Not supported"]
17pub const NSSolarisOperatingSystem: c_uint = 3;
18#[deprecated = "Not supported"]
20pub const NSHPUXOperatingSystem: c_uint = 4;
21#[deprecated = "Not supported"]
23pub const NSMACHOperatingSystem: c_uint = 5;
24#[deprecated = "Not supported"]
26pub const NSSunOSOperatingSystem: c_uint = 6;
27#[deprecated = "Not supported"]
29pub const NSOSF1OperatingSystem: c_uint = 7;
30
31#[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 #[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
70extern_conformance!(
71 unsafe impl NSObjectProtocol for NSProcessInfo {}
72);
73
74impl NSProcessInfo {
75 extern_methods!(
76 #[unsafe(method(processInfo))]
77 #[unsafe(method_family = none)]
78 pub fn processInfo() -> Retained<NSProcessInfo>;
79
80 #[cfg(all(feature = "NSDictionary", feature = "NSString"))]
81 #[unsafe(method(environment))]
82 #[unsafe(method_family = none)]
83 pub fn environment(&self) -> Retained<NSDictionary<NSString, NSString>>;
84
85 #[cfg(all(feature = "NSArray", feature = "NSString"))]
86 #[unsafe(method(arguments))]
87 #[unsafe(method_family = none)]
88 pub fn arguments(&self) -> Retained<NSArray<NSString>>;
89
90 #[cfg(feature = "NSString")]
91 #[unsafe(method(hostName))]
92 #[unsafe(method_family = none)]
93 pub fn hostName(&self) -> Retained<NSString>;
94
95 #[cfg(feature = "NSString")]
96 #[unsafe(method(processName))]
97 #[unsafe(method_family = none)]
98 pub fn processName(&self) -> Retained<NSString>;
99
100 #[cfg(feature = "NSString")]
101 #[unsafe(method(setProcessName:))]
105 #[unsafe(method_family = none)]
106 pub fn setProcessName(&self, process_name: &NSString);
107
108 #[unsafe(method(processIdentifier))]
109 #[unsafe(method_family = none)]
110 pub fn processIdentifier(&self) -> c_int;
111
112 #[cfg(feature = "NSString")]
113 #[unsafe(method(globallyUniqueString))]
114 #[unsafe(method_family = none)]
115 pub fn globallyUniqueString(&self) -> Retained<NSString>;
116
117 #[deprecated = "-operatingSystem always returns NSMACHOperatingSystem, use -operatingSystemVersion or -isOperatingSystemAtLeastVersion: instead"]
118 #[unsafe(method(operatingSystem))]
119 #[unsafe(method_family = none)]
120 pub fn operatingSystem(&self) -> NSUInteger;
121
122 #[cfg(feature = "NSString")]
123 #[deprecated = "-operatingSystemName always returns NSMACHOperatingSystem, use -operatingSystemVersionString instead"]
124 #[unsafe(method(operatingSystemName))]
125 #[unsafe(method_family = none)]
126 pub fn operatingSystemName(&self) -> Retained<NSString>;
127
128 #[cfg(feature = "NSString")]
129 #[unsafe(method(operatingSystemVersionString))]
130 #[unsafe(method_family = none)]
131 pub fn operatingSystemVersionString(&self) -> Retained<NSString>;
132
133 #[unsafe(method(operatingSystemVersion))]
134 #[unsafe(method_family = none)]
135 pub fn operatingSystemVersion(&self) -> NSOperatingSystemVersion;
136
137 #[unsafe(method(processorCount))]
138 #[unsafe(method_family = none)]
139 pub fn processorCount(&self) -> NSUInteger;
140
141 #[unsafe(method(activeProcessorCount))]
142 #[unsafe(method_family = none)]
143 pub fn activeProcessorCount(&self) -> NSUInteger;
144
145 #[unsafe(method(physicalMemory))]
146 #[unsafe(method_family = none)]
147 pub fn physicalMemory(&self) -> c_ulonglong;
148
149 #[unsafe(method(isOperatingSystemAtLeastVersion:))]
150 #[unsafe(method_family = none)]
151 pub fn isOperatingSystemAtLeastVersion(&self, version: NSOperatingSystemVersion) -> bool;
152
153 #[cfg(feature = "NSDate")]
154 #[unsafe(method(systemUptime))]
155 #[unsafe(method_family = none)]
156 pub fn systemUptime(&self) -> NSTimeInterval;
157
158 #[unsafe(method(disableSuddenTermination))]
159 #[unsafe(method_family = none)]
160 pub fn disableSuddenTermination(&self);
161
162 #[unsafe(method(enableSuddenTermination))]
163 #[unsafe(method_family = none)]
164 pub fn enableSuddenTermination(&self);
165
166 #[cfg(feature = "NSString")]
167 #[unsafe(method(disableAutomaticTermination:))]
168 #[unsafe(method_family = none)]
169 pub fn disableAutomaticTermination(&self, reason: &NSString);
170
171 #[cfg(feature = "NSString")]
172 #[unsafe(method(enableAutomaticTermination:))]
173 #[unsafe(method_family = none)]
174 pub fn enableAutomaticTermination(&self, reason: &NSString);
175
176 #[unsafe(method(automaticTerminationSupportEnabled))]
177 #[unsafe(method_family = none)]
178 pub fn automaticTerminationSupportEnabled(&self) -> bool;
179
180 #[unsafe(method(setAutomaticTerminationSupportEnabled:))]
182 #[unsafe(method_family = none)]
183 pub fn setAutomaticTerminationSupportEnabled(
184 &self,
185 automatic_termination_support_enabled: bool,
186 );
187 );
188}
189
190impl NSProcessInfo {
192 extern_methods!(
193 #[unsafe(method(init))]
194 #[unsafe(method_family = init)]
195 pub fn init(this: Allocated<Self>) -> Retained<Self>;
196
197 #[unsafe(method(new))]
198 #[unsafe(method_family = new)]
199 pub fn new() -> Retained<Self>;
200 );
201}
202
203impl DefaultRetained for NSProcessInfo {
204 #[inline]
205 fn default_retained() -> Retained<Self> {
206 Self::new()
207 }
208}
209
210#[repr(transparent)]
213#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
214pub struct NSActivityOptions(pub u64);
215bitflags::bitflags! {
216 impl NSActivityOptions: u64 {
217 #[doc(alias = "NSActivityIdleDisplaySleepDisabled")]
218 const IdleDisplaySleepDisabled = 1<<40;
219 #[doc(alias = "NSActivityIdleSystemSleepDisabled")]
220 const IdleSystemSleepDisabled = 1<<20;
221 #[doc(alias = "NSActivitySuddenTerminationDisabled")]
222 const SuddenTerminationDisabled = 1<<14;
223 #[doc(alias = "NSActivityAutomaticTerminationDisabled")]
224 const AutomaticTerminationDisabled = 1<<15;
225 #[doc(alias = "NSActivityAnimationTrackingEnabled")]
226 const AnimationTrackingEnabled = 1<<45;
227 #[doc(alias = "NSActivityTrackingEnabled")]
228 const TrackingEnabled = 1<<46;
229 #[doc(alias = "NSActivityUserInitiated")]
230 const UserInitiated = 0x00FFFFFF|NSActivityOptions::IdleSystemSleepDisabled.0;
231 #[doc(alias = "NSActivityUserInitiatedAllowingIdleSystemSleep")]
232 const UserInitiatedAllowingIdleSystemSleep = NSActivityOptions::UserInitiated.0&!NSActivityOptions::IdleSystemSleepDisabled.0;
233 #[doc(alias = "NSActivityBackground")]
234 const Background = 0x000000FF;
235 #[doc(alias = "NSActivityLatencyCritical")]
236 const LatencyCritical = 0xFF00000000;
237 #[doc(alias = "NSActivityUserInteractive")]
238 const UserInteractive = NSActivityOptions::UserInitiated.0|NSActivityOptions::LatencyCritical.0;
239 }
240}
241
242unsafe impl Encode for NSActivityOptions {
243 const ENCODING: Encoding = u64::ENCODING;
244}
245
246unsafe impl RefEncode for NSActivityOptions {
247 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
248}
249
250impl NSProcessInfo {
252 extern_methods!(
253 #[cfg(feature = "NSString")]
254 #[unsafe(method(beginActivityWithOptions:reason:))]
255 #[unsafe(method_family = none)]
256 pub fn beginActivityWithOptions_reason(
257 &self,
258 options: NSActivityOptions,
259 reason: &NSString,
260 ) -> Retained<ProtocolObject<dyn NSObjectProtocol>>;
261
262 #[unsafe(method(endActivity:))]
266 #[unsafe(method_family = none)]
267 pub unsafe fn endActivity(&self, activity: &ProtocolObject<dyn NSObjectProtocol>);
268
269 #[cfg(all(feature = "NSString", feature = "block2"))]
270 #[unsafe(method(performActivityWithOptions:reason:usingBlock:))]
271 #[unsafe(method_family = none)]
272 pub fn performActivityWithOptions_reason_usingBlock(
273 &self,
274 options: NSActivityOptions,
275 reason: &NSString,
276 block: &block2::DynBlock<dyn Fn()>,
277 );
278
279 #[cfg(all(feature = "NSString", feature = "block2"))]
280 #[unsafe(method(performExpiringActivityWithReason:usingBlock:))]
284 #[unsafe(method_family = none)]
285 pub unsafe fn performExpiringActivityWithReason_usingBlock(
286 &self,
287 reason: &NSString,
288 block: &block2::DynBlock<dyn Fn(Bool)>,
289 );
290 );
291}
292
293impl NSProcessInfo {
295 extern_methods!(
296 #[cfg(feature = "NSString")]
297 #[unsafe(method(userName))]
298 #[unsafe(method_family = none)]
299 pub fn userName(&self) -> Retained<NSString>;
300
301 #[cfg(feature = "NSString")]
302 #[unsafe(method(fullUserName))]
303 #[unsafe(method_family = none)]
304 pub fn fullUserName(&self) -> Retained<NSString>;
305 );
306}
307
308#[repr(transparent)]
311#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
312pub struct NSProcessInfoThermalState(pub NSInteger);
313impl NSProcessInfoThermalState {
314 #[doc(alias = "NSProcessInfoThermalStateNominal")]
315 pub const Nominal: Self = Self(0);
316 #[doc(alias = "NSProcessInfoThermalStateFair")]
317 pub const Fair: Self = Self(1);
318 #[doc(alias = "NSProcessInfoThermalStateSerious")]
319 pub const Serious: Self = Self(2);
320 #[doc(alias = "NSProcessInfoThermalStateCritical")]
321 pub const Critical: Self = Self(3);
322}
323
324unsafe impl Encode for NSProcessInfoThermalState {
325 const ENCODING: Encoding = NSInteger::ENCODING;
326}
327
328unsafe impl RefEncode for NSProcessInfoThermalState {
329 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
330}
331
332impl NSProcessInfo {
334 extern_methods!(
335 #[unsafe(method(thermalState))]
336 #[unsafe(method_family = none)]
337 pub fn thermalState(&self) -> NSProcessInfoThermalState;
338 );
339}
340
341impl NSProcessInfo {
343 extern_methods!(
344 #[unsafe(method(isLowPowerModeEnabled))]
345 #[unsafe(method_family = none)]
346 pub fn isLowPowerModeEnabled(&self) -> bool;
347 );
348}
349
350extern "C" {
351 #[cfg(all(feature = "NSNotification", feature = "NSString"))]
353 pub static NSProcessInfoThermalStateDidChangeNotification: &'static NSNotificationName;
354}
355
356extern "C" {
357 #[cfg(all(feature = "NSNotification", feature = "NSString"))]
359 pub static NSProcessInfoPowerStateDidChangeNotification: &'static NSNotificationName;
360}
361
362impl NSProcessInfo {
364 extern_methods!(
365 #[unsafe(method(isMacCatalystApp))]
366 #[unsafe(method_family = none)]
367 pub fn isMacCatalystApp(&self) -> bool;
368
369 #[unsafe(method(isiOSAppOnMac))]
370 #[unsafe(method_family = none)]
371 pub fn isiOSAppOnMac(&self) -> bool;
372 );
373}