ObjFW
Instance Methods | Class Methods | Properties | List of all members
OFApplication Class Reference

A class which represents the application as an object. More...

#import <ObjFW/OFApplication.h>

Inheritance diagram for OFApplication:
Inheritance graph
[legend]
Collaboration diagram for OFApplication:
Collaboration graph
[legend]

Instance Methods

(void) - getArgumentCount:andArgumentValues:
 Gets argc and argv. More...
 
(void) - terminate
 Terminates the application.
 
(void) - terminateWithStatus:
 Terminates the application with the specified status. More...
 
(void) - activateSandbox:
 Activates the specified sandbox for the application. More...
 
(void) - activateSandboxForChildProcesses:
 Activates the specified sandbox for child processes of the application. More...
 
- Instance Methods inherited from OFObject
(instancetype) - init
 Initializes an already allocated object. More...
 
(nullable OFMethodSignature *) - methodSignatureForSelector:
 Returns the method signature for the specified selector. More...
 
(void) - dealloc
 Deallocates the object. More...
 
(void) - performSelector:afterDelay:
 Performs the specified selector after the specified delay. More...
 
(void) - performSelector:withObject:afterDelay:
 Performs the specified selector with the specified object after the specified delay. More...
 
(void) - performSelector:withObject:withObject:afterDelay:
 Performs the specified selector with the specified objects after the specified delay. More...
 
(void) - performSelector:withObject:withObject:withObject:afterDelay:
 Performs the specified selector with the specified objects after the specified delay. More...
 
(void) - performSelector:withObject:withObject:withObject:withObject:afterDelay:
 Performs the specified selector with the specified objects after the specified delay. More...
 
(void) - performSelector:onThread:waitUntilDone:
 Performs the specified selector on the specified thread. More...
 
(void) - performSelector:onThread:withObject:waitUntilDone:
 Performs the specified selector on the specified thread with the specified object. More...
 
(void) - performSelector:onThread:withObject:withObject:waitUntilDone:
 Performs the specified selector on the specified thread with the specified objects. More...
 
(void) - performSelector:onThread:withObject:withObject:withObject:waitUntilDone:
 Performs the specified selector on the specified thread with the specified objects. More...
 
(void) - performSelector:onThread:withObject:withObject:withObject:withObject:waitUntilDone:
 Performs the specified selector on the specified thread with the specified objects. More...
 
(void) - performSelectorOnMainThread:waitUntilDone:
 Performs the specified selector on the main thread. More...
 
(void) - performSelectorOnMainThread:withObject:waitUntilDone:
 Performs the specified selector on the main thread with the specified object. More...
 
(void) - performSelectorOnMainThread:withObject:withObject:waitUntilDone:
 Performs the specified selector on the main thread with the specified objects. More...
 
(void) - performSelectorOnMainThread:withObject:withObject:withObject:waitUntilDone:
 Performs the specified selector on the main thread with the specified objects. More...
 
(void) - performSelectorOnMainThread:withObject:withObject:withObject:withObject:waitUntilDone:
 Performs the specified selector on the main thread with the specified objects. More...
 
(void) - performSelector:onThread:afterDelay:
 Performs the specified selector on the specified thread after the specified delay. More...
 
(void) - performSelector:onThread:withObject:afterDelay:
 Performs the specified selector on the specified thread with the specified object after the specified delay. More...
 
(void) - performSelector:onThread:withObject:withObject:afterDelay:
 Performs the specified selector on the specified thread with the specified objects after the specified delay. More...
 
(void) - performSelector:onThread:withObject:withObject:withObject:afterDelay:
 Performs the specified selector on the specified thread with the specified objects after the specified delay. More...
 
(void) - performSelector:onThread:withObject:withObject:withObject:withObject:afterDelay:
 Performs the specified selector on the specified thread with the specified objects after the specified delay. More...
 
(nullable id- forwardingTargetForSelector:
 This method is called when resolveClassMethod: or resolveInstanceMethod: returned false. It should return a target to which the message should be forwarded. More...
 
(void) - doesNotRecognizeSelector:
 Handles messages which are not understood by the receiver. More...
 
- Instance Methods inherited from <OFObject>
(unsigned long) - hash
 Returns a 32 bit hash for the object. More...
 
(unsigned int) - retainCount
 Returns the retain count. More...
 
(bool) - isProxy
 Returns whether the object is a proxy object. More...
 
(bool) - allowsWeakReference
 Returns whether the object allows weak references. More...
 
(bool) - isKindOfClass:
 Returns a boolean whether the object of the specified kind. More...
 
(bool) - isMemberOfClass:
 Returns a boolean whether the object is a member of the specified class. More...
 
(bool) - respondsToSelector:
 Returns a boolean whether the object responds to the specified selector. More...
 
(nullable IMP- methodForSelector:
 Returns the implementation for the specified selector. More...
 
(nullable id- performSelector:
 Performs the specified selector. More...
 
(nullable id- performSelector:withObject:
 Performs the specified selector with the specified object. More...
 
(nullable id- performSelector:withObject:withObject:
 Performs the specified selector with the specified objects. More...
 
(nullable id- performSelector:withObject:withObject:withObject:
 Performs the specified selector with the specified objects. More...
 
(nullable id- performSelector:withObject:withObject:withObject:withObject:
 Performs the specified selector with the specified objects. More...
 
(bool) - isEqual:
 Checks two objects for equality. More...
 
(instancetype) - retain
 Increases the retain count. More...
 
(void) - release
 Decreases the retain count. More...
 
(instancetype) - autorelease
 Adds the object to the topmost autorelease pool of the thread's autorelease pool stack. More...
 
(instancetype) - self
 Returns the receiver. More...
 
(bool) - retainWeakReference
 Retain a weak reference to this object. More...
 

Class Methods

(nullable OFApplication *) + sharedApplication
 Returns the only OFApplication instance in the application. More...
 
(nullable OFString *) + programName
 Returns the name of the program (argv[0]). More...
 
(nullable OFArray *) + arguments
 Returns the arguments passed to the application. More...
 
(nullable OFDictionary *) + environment
 Returns the environment of the application. More...
 
(void) + terminate
 Terminates the application with the EXIT_SUCCESS status.
 
(void) + terminateWithStatus:
 Terminates the application with the specified status. More...
 
(void) + activateSandbox:
 Activates the specified sandbox for the application. More...
 
(void) + activateSandboxForChildProcesses:
 Activates the specified sandbox for child processes of the application. More...
 
- Class Methods inherited from OFObject
(void) + load
 A method which is called once when the class is loaded into the runtime. More...
 
(void) + unload
 A method which is called when the class is unloaded from the runtime. More...
 
(void) + initialize
 A method which is called the moment before the first call to the class is being made. More...
 
(instancetype) + alloc
 Allocates memory for an instance of the class and sets up the memory pool for the object. More...
 
(instancetype) + new
 Calls alloc on self and then init on the returned object. More...
 
(Class+ class
 Returns the class. More...
 
(OFString *) + className
 Returns the name of the class as a string. More...
 
(bool) + isSubclassOfClass:
 Returns a boolean whether the class is a subclass of the specified class. More...
 
(nullable Class+ superclass
 Returns the superclass of the class. More...
 
(bool) + instancesRespondToSelector:
 Checks whether instances of the class respond to a given selector. More...
 
(bool) + conformsToProtocol:
 Checks whether the class conforms to a given protocol. More...
 
(nullable IMP+ instanceMethodForSelector:
 Returns the implementation of the instance method for the specified selector. More...
 
(nullable OFMethodSignature *) + instanceMethodSignatureForSelector:
 Returns the method signature of the instance method for the specified selector. More...
 
(OFString *) + description
 Returns a description for the class, which is usually the class name. More...
 
(nullable IMP+ replaceClassMethod:withMethodFromClass:
 Replaces a class method with a class method from another class. More...
 
(nullable IMP+ replaceInstanceMethod:withMethodFromClass:
 Replaces an instance method with an instance method from another class. More...
 
(void) + inheritMethodsFromClass:
 Adds all methods from the specified class to the class that is the receiver. More...
 
(bool) + resolveClassMethod:
 Try to resolve the specified class method. More...
 
(bool) + resolveInstanceMethod:
 Try to resolve the specified instance method. More...
 
(id+ copy
 Returns the class. More...
 

Properties

OFStringprogramName
 The name of the program (argv[0]).
 
OFArrayarguments
 The arguments passed to the application.
 
OFDictionaryenvironment
 The environment of the application.
 
id< OFApplicationDelegatedelegate
 The delegate of the application.
 
OFSandboxactiveSandbox
 The sandbox currently active for this application.
 
OFSandboxactiveSandboxForChildProcesses
 The sandbox currently active for child processes of this application.
 
- Properties inherited from OFObject
OFStringclassName
 The name of the object's class.
 
OFStringdescription
 A description for the object. More...
 
OFStringstringBySerializing
 The object serialized as a string.
 

Detailed Description

A class which represents the application as an object.

In order to create a new OFApplication, you should create a class conforming to the optional OFApplicationDelegate protocol and put OF_APPLICATION_DELEGATE(NameOfYourClass) in the .m file of that class.

Method Documentation

◆ activateSandbox: [1/2]

+ (void) activateSandbox: (OFSandbox *)  sandbox

Activates the specified sandbox for the application.

This is only available if OF_HAVE_SANDBOX is defined.

Warning
If you allow exec(), but do not call activateSandboxForChildProcesses:, an exec()'d process does not have its permissions restricted!
Note
Once a sandbox has been activated, you cannot activate a different sandbox. You can however change the active sandbox and reactivate it.
Parameters
sandboxThe sandbox to activate

◆ activateSandbox: [2/2]

- (void) activateSandbox: (OFSandbox *)  sandbox

Activates the specified sandbox for the application.

This is only available if OF_HAVE_SANDBOX is defined.

Warning
If you allow exec(), but do not call activateSandboxForChildProcesses:, an exec()'d process does not have its permissions restricted!
Note
Once a sandbox has been activated, you cannot activate a different sandbox. You can however change the active sandbox and reactivate it.
Parameters
sandboxThe sandbox to activate

◆ activateSandboxForChildProcesses: [1/2]

+ (void) activateSandboxForChildProcesses: (OFSandbox *)  sandbox

Activates the specified sandbox for child processes of the application.

This is only available if OF_HAVE_SANDBOX is defined.

unveiledPaths on the sandbox must not be empty, otherwise an OFInvalidArgumentException is raised.

Note
Once a sandbox has been activated, you cannot activate a different sandbox. You can however change the active sandbox and reactivate it.
Parameters
sandboxThe sandbox to activate

◆ activateSandboxForChildProcesses: [2/2]

- (void) activateSandboxForChildProcesses: (OFSandbox *)  sandbox

Activates the specified sandbox for child processes of the application.

This is only available if OF_HAVE_SANDBOX is defined.

unveiledPaths on the sandbox must not be empty, otherwise an OFInvalidArgumentException is raised.

Note
Once a sandbox has been activated, you cannot activate a different sandbox. You can however change the active sandbox and reactivate it.
Parameters
sandboxThe sandbox to activate

◆ arguments

+ (nullable OFArray *) arguments

Returns the arguments passed to the application.

Returns
The arguments passed to the application

◆ environment

+ (nullable OFDictionary *) environment

Returns the environment of the application.

Returns
The environment of the application

◆ getArgumentCount:andArgumentValues:

- (void) getArgumentCount: (int *_Nonnull *_Nonnull)  argc
andArgumentValues: (char *_Nullable *_Nonnull *_Nonnull)  argv[_Nonnull] 

Gets argc and argv.

Parameters
argcA pointer where a pointer to argc should be stored
argvA pointer where a pointer to argv should be stored

◆ programName

+ (nullable OFString *) programName

Returns the name of the program (argv[0]).

Returns
The name of the program (argv[0])

◆ sharedApplication

+ (OFApplication *) sharedApplication

Returns the only OFApplication instance in the application.

Returns
The only OFApplication instance in the application

◆ terminateWithStatus: [1/2]

+ (void) terminateWithStatus: (int)  status

Terminates the application with the specified status.

Parameters
statusThe status with which the application will terminate

◆ terminateWithStatus: [2/2]

- (void) terminateWithStatus: (int)  status

Terminates the application with the specified status.

Parameters
statusThe status with which the application will terminate

The documentation for this class was generated from the following files: