ARTEventEmitter

Objective-C

@interface ARTEventEmitter<EventType : id <ARTEventIdentification>, ItemType>
    : NSObject

Swift

class ARTEventEmitter<EventType, ItemType> : NSObject, @unchecked Sendable where EventType : ARTEventIdentification, ItemType : AnyObject

A generic interface for event registration and delivery used in a number of the types in the Realtime client library. For example, the ARTConnection and ARTRealtimeChannel objects emit events for their state using the ARTEventEmitter pattern.

  • Registers the provided listener for the specified event. If on:callback: is called more than once with the same listener and event, the listener is added multiple times to its listener registry. Therefore, as an example, assuming the same listener is registered twice using on:callback:, and an event is emitted once, the listener would be invoked twice.

    Declaration

    Objective-C

    - (nonnull ARTEventListener *)on:(nonnull EventType)event
                            callback:(nonnull void (^)(ItemType _Nonnull))callback;

    Swift

    func on(_ event: EventType, callback: @escaping (ItemType) -> Void) -> ARTEventListener

    Parameters

    event

    The named event to listen for.

    callback

    A callback invoked upon event with an ItemType object, f.e. ARTConnectionStateChange.

    Return Value

    The event listener.

  • Registers the provided listener all events. If on: is called more than once with the same listener and event, the listener is added multiple times to its listener registry. Therefore, as an example, assuming the same listener is registered twice using on:, and an event is emitted once, the listener would be invoked twice.

    Declaration

    Objective-C

    - (nonnull ARTEventListener *)on:(nonnull void (^)(ItemType _Nonnull))callback;

    Swift

    func on(_ callback: @escaping (ItemType) -> Void) -> ARTEventListener

    Parameters

    callback

    A callback invoked upon any event with an ItemType object, f.e. ARTConnectionStateChange.

    Return Value

    The event listener.

  • Registers the provided listener for the first occurrence of a single named event specified as the event argument. If once:callback: is called more than once with the same listener, the listener is added multiple times to its listener registry. Therefore, as an example, assuming the same listener is registered twice using once:callback:, and an event is emitted once, the listener would be invoked twice. However, all subsequent events emitted would not invoke the listener as once:callback: ensures that each registration is only invoked once.

    Declaration

    Objective-C

    - (nonnull ARTEventListener *)once:(nonnull EventType)event
                              callback:
                                  (nonnull void (^)(ItemType _Nonnull))callback;

    Swift

    func once(_ event: EventType, callback: @escaping (ItemType) -> Void) -> ARTEventListener

    Parameters

    event

    The named event to listen for.

    callback

    A callback invoked upon event with an ItemType object, f.e. ARTConnectionStateChange.

    Return Value

    The event listener.

  • Registers the provided listener for the first event that is emitted. If once: is called more than once with the same listener, the listener is added multiple times to its listener registry. Therefore, as an example, assuming the same listener is registered twice using once:, and an event is emitted once, the listener would be invoked twice. However, all subsequent events emitted would not invoke the listener as once: ensures that each registration is only invoked once.

    Declaration

    Objective-C

    - (nonnull ARTEventListener *)once:
        (nonnull void (^)(ItemType _Nonnull))callback;

    Swift

    func once(_ callback: @escaping (ItemType) -> Void) -> ARTEventListener

    Parameters

    callback

    A callback invoked upon any event with an ItemType object, f.e. ARTConnectionStateChange.

    Return Value

    The event listener.

  • Removes all registrations that match both the specified listener and the specified event.

    Declaration

    Objective-C

    - (void)off:(nonnull EventType)event
        listener:(nonnull ARTEventListener *)listener;

    Swift

    func off(_ event: EventType, listener: ARTEventListener)

    Parameters

    event

    The named event.

    listener

    The event listener.

  • Deregisters the specified listener. Removes all registrations matching the given listener, regardless of whether they are associated with an event or not.

    Declaration

    Objective-C

    - (void)off:(nonnull ARTEventListener *)listener;

    Swift

    func off(_ listener: ARTEventListener)

    Parameters

    listener

    The event listener.

  • Deregisters all registrations, for all events and listeners.

    Declaration

    Objective-C

    - (void)off;

    Swift

    func off()

ARTEventListener

  • Emits an event, calling registered listeners with the given event name and any other given arguments. If an exception is raised in any of the listeners, the exception is caught by the ARTEventEmitter and the exception is logged to the Ably logger. This method is internal and should not be called manually.

    Declaration

    Objective-C

    - (void)emit:(nullable EventType)event with:(nullable ItemType)data;

    Swift

    func emit(_ event: EventType?, with data: ItemType?)

    Parameters

    event

    The named event.

    data

    The event payload.

  • Undocumented

    Declaration

    Objective-C

    @property (nonatomic, readonly) NSNotificationCenter *notificationCenter

    Swift

    var notificationCenter: NotificationCenter { get }
  • Undocumented

    Declaration

    Objective-C

    @property (nonatomic, readonly) dispatch_queue_t queue

    Swift

    var queue: dispatch_queue_t { get }
  • Undocumented

    Declaration

    Objective-C

    @property (nullable, nonatomic, readonly) dispatch_queue_t userQueue

    Swift

    var userQueue: dispatch_queue_t? { get }
  • Undocumented

    Declaration

    Objective-C

    @property (readonly) NSMutableDictionary<NSString *, NSMutableArray<ARTEventListener *> *> *listeners

    Swift

    var listeners: NSMutableDictionary { get }
  • Undocumented

    Declaration

    Objective-C

    @property (readonly) NSMutableArray<ARTEventListener *> *anyListeners

    Swift

    var anyListeners: NSMutableArray { get }