Skip to content

Commit 0679ae8

Browse files
authored
Merge pull request #34 from bcmi-labs/overload-operators-for-sink-source
Overload operators for Sink/Source
2 parents aabef8d + e0b3f9f commit 0679ae8

File tree

6 files changed

+12
-13
lines changed

6 files changed

+12
-13
lines changed

examples/Threading/Demo_Source_Sink_Counter/Consumer.inot

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@ void setup()
77

88
void loop()
99
{
10-
Serial.println(counter.read());
10+
Serial.println(counter);
1111
}

examples/Threading/Demo_Source_Sink_Counter/Producer.inot

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ void setup()
88
void loop()
99
{
1010
static int i = 0;
11-
counter.write(i);
11+
counter = i;
1212
i++;
1313
}

examples/Threading/Demo_Source_Sink_LED/Sink_Thread.inot

+1-2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,5 @@ void loop()
1616
* this call will surely block until something comes from the connected SOURCE. In this case
1717
* the pace is dictated by the SOURCE that sends data every 100 ms.
1818
*/
19-
bool led_on = led.read();
20-
digitalWrite(LED_BUILTIN, led_on);
19+
digitalWrite(LED_BUILTIN, led);
2120
}

examples/Threading/Demo_Source_Sink_LED/Source_Thread.inot

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ void setup()
88

99
void loop()
1010
{
11-
led.write(true);
11+
led = true;
1212
delay(100);
13-
led.write(false);
13+
led = false;
1414
delay(100);
1515
}

src/threading/Sink.hpp

+5-5
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class SinkBase
3636

3737
virtual ~SinkBase() { }
3838

39-
virtual T read() = 0;
39+
virtual operator T() = 0;
4040
virtual void inject(T const & value) = 0;
4141
};
4242

@@ -48,7 +48,7 @@ class SinkNonBlocking : public SinkBase<T>
4848
SinkNonBlocking() { }
4949
virtual ~SinkNonBlocking() { }
5050

51-
virtual T read() override;
51+
virtual operator T() override;
5252
virtual void inject(T const & value) override;
5353

5454

@@ -67,7 +67,7 @@ class SinkBlocking : public SinkBase<T>
6767
SinkBlocking();
6868
virtual ~SinkBlocking() { }
6969

70-
virtual T read() override;
70+
virtual operator T() override;
7171
virtual void inject(T const & value) override;
7272

7373

@@ -86,7 +86,7 @@ class SinkBlocking : public SinkBase<T>
8686
**************************************************************************************/
8787

8888
template<typename T>
89-
T SinkNonBlocking<T>::read()
89+
SinkNonBlocking<T>::operator T()
9090
{
9191
_mutex.lock();
9292
return _data;
@@ -113,7 +113,7 @@ SinkBlocking<T>::SinkBlocking()
113113
{ }
114114

115115
template<typename T>
116-
T SinkBlocking<T>::read()
116+
SinkBlocking<T>::operator T()
117117
{
118118
_mutex.lock();
119119
while (!_is_data_available)

src/threading/Source.hpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class Source
4343
public:
4444

4545
void connectTo(SinkBase<T> & sink);
46-
void write(T const & value);
46+
void operator = (T const & other);
4747

4848
private:
4949
std::list<SinkBase<T> *> _sink_list;
@@ -60,7 +60,7 @@ void Source<T>::connectTo(SinkBase<T> & sink)
6060
}
6161

6262
template<typename T>
63-
void Source<T>::write(T const & value)
63+
void Source<T>::operator = (T const & value)
6464
{
6565
std::for_each(std::begin(_sink_list),
6666
std::end (_sink_list),

0 commit comments

Comments
 (0)