This app provides monitoring and information features for the common freifunk user and the technical stuff of a freifunk community.
Code base is taken from a TUM Practical Course project and added here to see if Freifunk Altdorf can use it.
https://www.freifunk-altdorf.de
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.6 KiB
59 lines
1.6 KiB
/** |
|
* Copyright (c) 2015-present, Facebook, Inc. |
|
* |
|
* This source code is licensed under the MIT license found in the |
|
* LICENSE file in the root directory of this source tree. |
|
* |
|
* @providesModule EmitterSubscription |
|
* @flow |
|
*/ |
|
'use strict'; |
|
|
|
const EventSubscription = require('EventSubscription'); |
|
|
|
import type EventEmitter from 'EventEmitter'; |
|
import type EventSubscriptionVendor from 'EventSubscriptionVendor'; |
|
|
|
/** |
|
* EmitterSubscription represents a subscription with listener and context data. |
|
*/ |
|
class EmitterSubscription extends EventSubscription { |
|
|
|
emitter: EventEmitter; |
|
listener: Function; |
|
context: ?Object; |
|
|
|
/** |
|
* @param {EventEmitter} emitter - The event emitter that registered this |
|
* subscription |
|
* @param {EventSubscriptionVendor} subscriber - The subscriber that controls |
|
* this subscription |
|
* @param {function} listener - Function to invoke when the specified event is |
|
* emitted |
|
* @param {*} context - Optional context object to use when invoking the |
|
* listener |
|
*/ |
|
constructor( |
|
emitter: EventEmitter, |
|
subscriber: EventSubscriptionVendor, |
|
listener: Function, |
|
context: ?Object |
|
) { |
|
super(subscriber); |
|
this.emitter = emitter; |
|
this.listener = listener; |
|
this.context = context; |
|
} |
|
|
|
/** |
|
* Removes this subscription from the emitter that registered it. |
|
* Note: we're overriding the `remove()` method of EventSubscription here |
|
* but deliberately not calling `super.remove()` as the responsibility |
|
* for removing the subscription lies with the EventEmitter. |
|
*/ |
|
remove() { |
|
this.emitter.removeSubscription(this); |
|
} |
|
} |
|
|
|
module.exports = EmitterSubscription;
|
|
|