Implement class SignalVector

It's a templated wrapper for std::vector with an overloaded `operator=`
which triggers a signal.
This commit is contained in:
Rasmus Karlsson 2017-07-23 14:10:12 +02:00
parent 9ccfff69d9
commit e4fc6c25e6

34
src/signalvector.hpp Normal file
View file

@ -0,0 +1,34 @@
#pragma once
#include <pajlada/signals/signal.hpp>
#include <mutex>
#include <vector>
namespace chatterino {
template <typename TValue>
class SignalVector
{
public:
SignalVector &operator=(std::vector<TValue> &other)
{
this->data = other;
this->updated.invoke();
return *this;
}
operator std::vector<TValue> &()
{
return this->data;
}
pajlada::Signals::NoArgSignal updated;
private:
std::vector<TValue> data;
};
} // namespace chatterino