objc2_foundation/generated/
NSTask.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/nstaskterminationreason?language=objc)
10// NS_ENUM
11#[repr(transparent)]
12#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
13pub struct NSTaskTerminationReason(pub NSInteger);
14impl NSTaskTerminationReason {
15    #[doc(alias = "NSTaskTerminationReasonExit")]
16    pub const Exit: Self = Self(1);
17    #[doc(alias = "NSTaskTerminationReasonUncaughtSignal")]
18    pub const UncaughtSignal: Self = Self(2);
19}
20
21unsafe impl Encode for NSTaskTerminationReason {
22    const ENCODING: Encoding = NSInteger::ENCODING;
23}
24
25unsafe impl RefEncode for NSTaskTerminationReason {
26    const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
27}
28
29extern_class!(
30    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nstask?language=objc)
31    #[unsafe(super(NSObject))]
32    #[derive(Debug, PartialEq, Eq, Hash)]
33    pub struct NSTask;
34);
35
36unsafe impl Send for NSTask {}
37
38unsafe impl Sync for NSTask {}
39
40extern_conformance!(
41    unsafe impl NSObjectProtocol for NSTask {}
42);
43
44impl NSTask {
45    extern_methods!(
46        #[unsafe(method(init))]
47        #[unsafe(method_family = init)]
48        pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
49
50        #[cfg(feature = "NSURL")]
51        #[unsafe(method(executableURL))]
52        #[unsafe(method_family = none)]
53        pub unsafe fn executableURL(&self) -> Option<Retained<NSURL>>;
54
55        #[cfg(feature = "NSURL")]
56        /// Setter for [`executableURL`][Self::executableURL].
57        #[unsafe(method(setExecutableURL:))]
58        #[unsafe(method_family = none)]
59        pub unsafe fn setExecutableURL(&self, executable_url: Option<&NSURL>);
60
61        #[cfg(all(feature = "NSArray", feature = "NSString"))]
62        #[unsafe(method(arguments))]
63        #[unsafe(method_family = none)]
64        pub unsafe fn arguments(&self) -> Option<Retained<NSArray<NSString>>>;
65
66        #[cfg(all(feature = "NSArray", feature = "NSString"))]
67        /// Setter for [`arguments`][Self::arguments].
68        #[unsafe(method(setArguments:))]
69        #[unsafe(method_family = none)]
70        pub unsafe fn setArguments(&self, arguments: Option<&NSArray<NSString>>);
71
72        #[cfg(all(feature = "NSDictionary", feature = "NSString"))]
73        #[unsafe(method(environment))]
74        #[unsafe(method_family = none)]
75        pub unsafe fn environment(&self) -> Option<Retained<NSDictionary<NSString, NSString>>>;
76
77        #[cfg(all(feature = "NSDictionary", feature = "NSString"))]
78        /// Setter for [`environment`][Self::environment].
79        #[unsafe(method(setEnvironment:))]
80        #[unsafe(method_family = none)]
81        pub unsafe fn setEnvironment(&self, environment: Option<&NSDictionary<NSString, NSString>>);
82
83        #[cfg(feature = "NSURL")]
84        #[unsafe(method(currentDirectoryURL))]
85        #[unsafe(method_family = none)]
86        pub unsafe fn currentDirectoryURL(&self) -> Option<Retained<NSURL>>;
87
88        #[cfg(feature = "NSURL")]
89        /// Setter for [`currentDirectoryURL`][Self::currentDirectoryURL].
90        #[unsafe(method(setCurrentDirectoryURL:))]
91        #[unsafe(method_family = none)]
92        pub unsafe fn setCurrentDirectoryURL(&self, current_directory_url: Option<&NSURL>);
93
94        #[cfg(feature = "NSData")]
95        #[unsafe(method(launchRequirementData))]
96        #[unsafe(method_family = none)]
97        pub unsafe fn launchRequirementData(&self) -> Option<Retained<NSData>>;
98
99        #[cfg(feature = "NSData")]
100        /// Setter for [`launchRequirementData`][Self::launchRequirementData].
101        #[unsafe(method(setLaunchRequirementData:))]
102        #[unsafe(method_family = none)]
103        pub unsafe fn setLaunchRequirementData(&self, launch_requirement_data: Option<&NSData>);
104
105        #[unsafe(method(standardInput))]
106        #[unsafe(method_family = none)]
107        pub unsafe fn standardInput(&self) -> Option<Retained<AnyObject>>;
108
109        /// Setter for [`standardInput`][Self::standardInput].
110        #[unsafe(method(setStandardInput:))]
111        #[unsafe(method_family = none)]
112        pub unsafe fn setStandardInput(&self, standard_input: Option<&AnyObject>);
113
114        #[unsafe(method(standardOutput))]
115        #[unsafe(method_family = none)]
116        pub unsafe fn standardOutput(&self) -> Option<Retained<AnyObject>>;
117
118        /// Setter for [`standardOutput`][Self::standardOutput].
119        #[unsafe(method(setStandardOutput:))]
120        #[unsafe(method_family = none)]
121        pub unsafe fn setStandardOutput(&self, standard_output: Option<&AnyObject>);
122
123        #[unsafe(method(standardError))]
124        #[unsafe(method_family = none)]
125        pub unsafe fn standardError(&self) -> Option<Retained<AnyObject>>;
126
127        /// Setter for [`standardError`][Self::standardError].
128        #[unsafe(method(setStandardError:))]
129        #[unsafe(method_family = none)]
130        pub unsafe fn setStandardError(&self, standard_error: Option<&AnyObject>);
131
132        #[cfg(feature = "NSError")]
133        #[unsafe(method(launchAndReturnError:_))]
134        #[unsafe(method_family = none)]
135        pub unsafe fn launchAndReturnError(&self) -> Result<(), Retained<NSError>>;
136
137        #[unsafe(method(interrupt))]
138        #[unsafe(method_family = none)]
139        pub unsafe fn interrupt(&self);
140
141        #[unsafe(method(terminate))]
142        #[unsafe(method_family = none)]
143        pub unsafe fn terminate(&self);
144
145        #[unsafe(method(suspend))]
146        #[unsafe(method_family = none)]
147        pub unsafe fn suspend(&self) -> bool;
148
149        #[unsafe(method(resume))]
150        #[unsafe(method_family = none)]
151        pub unsafe fn resume(&self) -> bool;
152
153        #[unsafe(method(processIdentifier))]
154        #[unsafe(method_family = none)]
155        pub unsafe fn processIdentifier(&self) -> c_int;
156
157        #[unsafe(method(isRunning))]
158        #[unsafe(method_family = none)]
159        pub unsafe fn isRunning(&self) -> bool;
160
161        #[unsafe(method(terminationStatus))]
162        #[unsafe(method_family = none)]
163        pub unsafe fn terminationStatus(&self) -> c_int;
164
165        #[unsafe(method(terminationReason))]
166        #[unsafe(method_family = none)]
167        pub unsafe fn terminationReason(&self) -> NSTaskTerminationReason;
168
169        #[cfg(feature = "block2")]
170        #[unsafe(method(terminationHandler))]
171        #[unsafe(method_family = none)]
172        pub unsafe fn terminationHandler(&self) -> *mut block2::DynBlock<dyn Fn(NonNull<NSTask>)>;
173
174        #[cfg(feature = "block2")]
175        /// Setter for [`terminationHandler`][Self::terminationHandler].
176        #[unsafe(method(setTerminationHandler:))]
177        #[unsafe(method_family = none)]
178        pub unsafe fn setTerminationHandler(
179            &self,
180            termination_handler: Option<&block2::DynBlock<dyn Fn(NonNull<NSTask>)>>,
181        );
182
183        #[cfg(feature = "NSObjCRuntime")]
184        #[unsafe(method(qualityOfService))]
185        #[unsafe(method_family = none)]
186        pub unsafe fn qualityOfService(&self) -> NSQualityOfService;
187
188        #[cfg(feature = "NSObjCRuntime")]
189        /// Setter for [`qualityOfService`][Self::qualityOfService].
190        #[unsafe(method(setQualityOfService:))]
191        #[unsafe(method_family = none)]
192        pub unsafe fn setQualityOfService(&self, quality_of_service: NSQualityOfService);
193    );
194}
195
196/// Methods declared on superclass `NSObject`.
197impl NSTask {
198    extern_methods!(
199        #[unsafe(method(new))]
200        #[unsafe(method_family = new)]
201        pub unsafe fn new() -> Retained<Self>;
202    );
203}
204
205/// NSTaskConveniences.
206impl NSTask {
207    extern_methods!(
208        #[cfg(all(
209            feature = "NSArray",
210            feature = "NSError",
211            feature = "NSString",
212            feature = "NSURL",
213            feature = "block2"
214        ))]
215        #[unsafe(method(launchedTaskWithExecutableURL:arguments:error:terminationHandler:))]
216        #[unsafe(method_family = none)]
217        pub unsafe fn launchedTaskWithExecutableURL_arguments_error_terminationHandler(
218            url: &NSURL,
219            arguments: &NSArray<NSString>,
220            error: Option<&mut Option<Retained<NSError>>>,
221            termination_handler: Option<&block2::DynBlock<dyn Fn(NonNull<NSTask>)>>,
222        ) -> Option<Retained<NSTask>>;
223
224        #[unsafe(method(waitUntilExit))]
225        #[unsafe(method_family = none)]
226        pub unsafe fn waitUntilExit(&self);
227    );
228}
229
230/// NSDeprecated.
231impl NSTask {
232    extern_methods!(
233        #[cfg(feature = "NSString")]
234        #[deprecated]
235        #[unsafe(method(launchPath))]
236        #[unsafe(method_family = none)]
237        pub unsafe fn launchPath(&self) -> Option<Retained<NSString>>;
238
239        #[cfg(feature = "NSString")]
240        /// Setter for [`launchPath`][Self::launchPath].
241        #[deprecated]
242        #[unsafe(method(setLaunchPath:))]
243        #[unsafe(method_family = none)]
244        pub unsafe fn setLaunchPath(&self, launch_path: Option<&NSString>);
245
246        #[cfg(feature = "NSString")]
247        #[deprecated]
248        #[unsafe(method(currentDirectoryPath))]
249        #[unsafe(method_family = none)]
250        pub unsafe fn currentDirectoryPath(&self) -> Retained<NSString>;
251
252        #[cfg(feature = "NSString")]
253        /// Setter for [`currentDirectoryPath`][Self::currentDirectoryPath].
254        #[deprecated]
255        #[unsafe(method(setCurrentDirectoryPath:))]
256        #[unsafe(method_family = none)]
257        pub unsafe fn setCurrentDirectoryPath(&self, current_directory_path: &NSString);
258
259        #[deprecated]
260        #[unsafe(method(launch))]
261        #[unsafe(method_family = none)]
262        pub unsafe fn launch(&self);
263
264        #[cfg(all(feature = "NSArray", feature = "NSString"))]
265        #[deprecated]
266        #[unsafe(method(launchedTaskWithLaunchPath:arguments:))]
267        #[unsafe(method_family = none)]
268        pub unsafe fn launchedTaskWithLaunchPath_arguments(
269            path: &NSString,
270            arguments: &NSArray<NSString>,
271        ) -> Retained<NSTask>;
272    );
273}
274
275extern "C" {
276    /// [Apple's documentation](https://developer.apple.com/documentation/foundation/nstaskdidterminatenotification?language=objc)
277    #[cfg(all(feature = "NSNotification", feature = "NSString"))]
278    pub static NSTaskDidTerminateNotification: &'static NSNotificationName;
279}