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