Discman
Loading...
Searching...
No Matches
consumer.h
Go to the documentation of this file.
1
6
#ifndef CONSUMER_H
7
#define CONSUMER_H
8
9
#include "
producer.h
"
10
14
template
<
typename
T>
15
class
Consumer
{
16
public
:
18
Consumer
();
19
21
virtual
~Consumer
() {};
22
25
virtual
void
producer
(
Producer<T>
*
const
producer
);
26
27
protected
:
30
T
consume
()
const
;
31
32
private
:
34
Producer<T>
*
_producer
;
35
};
36
37
template
<
typename
T>
38
Consumer<T>::Consumer
()
39
:
_producer
(nullptr) { }
40
41
template
<
typename
T>
42
void
Consumer<T>::producer
(
Producer<T>
*
const
producer
) {
43
_producer
=
producer
;
44
_producer
->register_consumer(
this
);
45
}
46
47
template
<
typename
T>
48
T
Consumer<T>::consume
()
const
{
49
if
(
_producer
==
nullptr
)
50
throw
"no producer set"
;
51
52
return
_producer
->next();
53
}
54
55
#endif
// CONSUMER_H
Consumer::producer
virtual void producer(Producer< T > *const producer)
Sets the producer from which to retrieve data.
Definition
consumer.h:42
Consumer::~Consumer
virtual ~Consumer()
Consumer destructor.
Definition
consumer.h:21
Consumer::Consumer
Consumer()
Consumer constructor.
Definition
consumer.h:38
Consumer::consume
T consume() const
Returns one datum from the producer.
Definition
consumer.h:48
Consumer::_producer
Producer< T > * _producer
The Producer from which to retrieve data.
Definition
consumer.h:34
Producer
The Producer interface.
Definition
producer.h:16
producer.h
src
producer_consumer
consumer.h
Generated by
1.13.2