/USignal

Ubpa Signal

Primary LanguageC++MIT LicenseMIT

USignal

Ubpa Signal

Example

#include <USignal/USignal.hpp>

using namespace Ubpa;

class Counter {
public:
  Counter() { m_value = 0; }

  int value() const { return m_value; }

  Signal<int> valueChanged;
  void setValue(int value) {
    if (value != m_value) {
      m_value = value;
      valueChanged.Emit(value);
    }
  }

private:
  int m_value;
};

int main() {
  Counter a, b;
  a.valueChanged.Connect<&Counter::setValue>(&b);
  a.setValue(12); // a.value() == 12, b.value() == 12
  b.setValue(48); // a.value() == 12, b.value() == 48

  return 0;
}