-
Notifications
You must be signed in to change notification settings - Fork 0
/
EnlaceLayer.hpp
42 lines (35 loc) · 1014 Bytes
/
EnlaceLayer.hpp
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
37
38
39
40
41
42
#ifndef __ENLACE_LAYER__
#define __ENLACE_LAYER__
#include <bits/stdc++.h>
#include "App.hpp"
#include "Logger.hpp"
#include "Thoroughfare.hpp"
#include "ParityAlgsTests.hpp"
/*
0. Controle de Erros por Paridade Par
1. Controle de Erros por Paridade Ímpar
2. Controle de Erros pelo algoritmo CRC-32
*/
#define ERROR_ROUTINE 2
class EnlaceLayer {
public:
/**
* Envia o frame para a camada de transporte, aplicando
* algoritmos de controle
*/
static void enlaceLayerSender(vector<bool> frame);
/**
* Recebe o frame e envia para a camada de aplicacao
*/
static void enlaceLayerReceiver(vector<bool> frame);
/**
* Altera o frame adicionando bits para controle de erros, assim
* coonseguimos checar a integridade no handleErrorReceiver
*/
static vector<bool> handleError(vector<bool> frame);
/**
* Checa a integridade do frame recebido da camada de transporte
*/
static bool handleErrorReceiver(vector<bool> frame);
};
#endif