OALSuspendHandler Class Reference

Inherits from NSObject
Declared in OALSuspendHandler.h

Overview

Provides two controls (interrupted and manuallySuspended) for suspending a slave object, and also propagates such control messages to interested listeners.

“interrupted” is meant to be set by the system when an interrupt occurs.

“manuallySuspended” is a user-settable control for suspending an object.
“manuallySuspended” also has an extra step in its processing: When set, the handler makes a note of what its listeners' “manuallySuspended” values are. When cleared, it will only clear a listener’s “manuallySuspended” value if it was not set at suspend time. This allows for ad-hoc setting/clearing of “manuallySuspended” in the middle of a handler/listener graph rather than only from the top level.

When either control is set, the slave object will be suspended. When both are cleared, the slave object will be unsuspended.

+ handlerWithTarget:selector:

Create a new handler with the specified slave target and selector.

+ (OALSuspendHandler *)handlerWithTarget:(id)target selector:(SEL)selector

Parameters

target

The slave object that will receive suspend/unsuspend events.

selector

The selector for a “set suspended” method, taking a single boolean parameter.

Discussion

The selector provided must take a single boolean value like so:
- (void) setSuspended:(bool) value

Declared In

OALSuspendHandler.h

– initWithTarget:selector:

Initialize a handler with the specified slave target and selector.

- (id)initWithTarget:(id)target selector:(SEL)selector

Parameters

target

The slave object that will receive suspend/unsuspend events.

selector

The selector for a “set suspended” method, taking a single boolean parameter.

Discussion

The selector provided must take a single boolean value like so:
- (void) setSuspended:(bool) value

Declared In

OALSuspendHandler.h

  manuallySuspended

If YES, the manual suspend control is set.

@property (nonatomic, readwrite, assign) bool manuallySuspended

Declared In

OALSuspendHandler.h

  interrupted

If YES, the interrupt control is set.

@property (nonatomic, readwrite, assign) bool interrupted

Declared In

OALSuspendHandler.h

  suspended

If YES, the slave object is suspended.

@property (nonatomic, readonly, assign) bool suspended

Declared In

OALSuspendHandler.h

– addSuspendListener:

Add a listener that will receive manual suspend and interrupt events.

- (void)addSuspendListener:(id<OALSuspendListener>)listener

Parameters

listener

The listener to register with this handler.

Declared In

OALSuspendHandler.h

– removeSuspendListener:

Remove a registered listener.

- (void)removeSuspendListener:(id<OALSuspendListener>)listener

Parameters

listener

The listener to unregister from this handler.

Declared In

OALSuspendHandler.h