Signal

Undocumented in source.

Members

Functions

emit
void emit(Slot!F.Parameters args)

Publish a signal.

empty
bool empty()
Undocumented in source. Be warned that the author may not have intended to support it.
length
size_t length()
Undocumented in source. Be warned that the author may not have intended to support it.
sink
Sink!F sink()

Get a Sink to connect and disconnect listeners from a Signal.

Variables

calls
Slot!F[] calls;
Undocumented in source.

Examples

Signal!(void delegate(int) @safe pure nothrow) signal;
Signal!(void delegate(ref int) @safe pure nothrow) signalRef;

static struct Listener
{
	int i;
	void opCall()(const ref int)
	{
		i++;
	}
}

Listener listener;

signal.sink.connect!(Listener.opCall)(listener);
signalRef.sink.connect!(Listener.opCall)(listener);

int var;

signal.emit(var);
signalRef.emit(var);

assert(listener.i == 2);
Signal!(void delegate(int)) signal;
int var = 35;

signal.sink.connect!((ref i, const int x) {
	assert(&i is &var);
	i += x;
})(var);

signal.emit(3);

assert(var == 38);

Meta