Skip to content

Commit 0b90807

Browse files
committed
Sink: Providing get() method as alternate for operator overloading.
1 parent fe399af commit 0b90807

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

src/threading/Sink.hpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,10 @@ class SinkBase
3838

3939
virtual ~SinkBase() { }
4040

41-
virtual operator T() = 0;
41+
virtual T get() = 0;
4242
virtual void inject(T const & value) = 0;
43+
44+
inline operator T() { return get(); }
4345
};
4446

4547
template<typename T>
@@ -50,7 +52,7 @@ class SinkNonBlocking : public SinkBase<T>
5052
SinkNonBlocking() { }
5153
virtual ~SinkNonBlocking() { }
5254

53-
virtual operator T() override;
55+
virtual T get() override;
5456
virtual void inject(T const & value) override;
5557

5658

@@ -69,7 +71,7 @@ class SinkBlocking : public SinkBase<T>
6971
SinkBlocking(size_t const size);
7072
virtual ~SinkBlocking() { }
7173

72-
virtual operator T() override;
74+
virtual T get() override;
7375
virtual void inject(T const & value) override;
7476

7577

@@ -87,7 +89,7 @@ class SinkBlocking : public SinkBase<T>
8789
**************************************************************************************/
8890

8991
template<typename T>
90-
SinkNonBlocking<T>::operator T()
92+
T SinkNonBlocking<T>::get()
9193
{
9294
_mutex.lock();
9395
return _data;
@@ -114,7 +116,7 @@ SinkBlocking<T>::SinkBlocking(size_t const size)
114116
{ }
115117

116118
template<typename T>
117-
SinkBlocking<T>::operator T()
119+
T SinkBlocking<T>::get()
118120
{
119121
_mutex.lock();
120122
while (_data.isEmpty())

0 commit comments

Comments
 (0)