-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBuffer.h
More file actions
36 lines (28 loc) · 864 Bytes
/
Copy pathBuffer.h
File metadata and controls
36 lines (28 loc) · 864 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef BUFFER_H
#define BUFFER_H
#include <mutex>
#include <condition_variable>
#include <iostream>
using std::mutex;
using std::condition_variable;
class Buffer {
//Classe que representa um buffer de itens.
private:
int* itens;
int tamanho;
int proximaPosicao;
int proximoItem;
int inteirosConsumidosPorSegundo;
//Aqui crio um mutex e duas variáveis de condição. O mutex é usado para garantir que apenas uma thread por vez acesse o
//buffer e as variáveis de condição são usadas para sinalizar quando o buffer está cheio ou vazio.
mutex mutex;
condition_variable bufferCheio;
condition_variable bufferVazio;
public:
Buffer(int tamanho);
void produzir(int item);
int consumir();
int getInteirosConsumidosPorSegundo();
int getTamanho();
};
#endif // BUFFER_H