-
Notifications
You must be signed in to change notification settings - Fork 0
/
Accesos.hpp
161 lines (146 loc) · 4.53 KB
/
Accesos.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/**
* @file Accesos.hpp
* @brief Implementacion de la clase Accesos
* @authors
* Paulina Cardoso Fuentes - A01701490,
* María Fernanda Hernández Montes - A01704918,
* Paola Adriana Millares Forno - A01705674
* @date 28/01/2021
*/
#ifndef ACCESOS_HPP
#define ACCESOS_HPP
#include <iostream>
#include "ListaSimple.hpp"
using namespace std;
/**
* @class Accesos
* @brief Clase para representar cada Acceso dentro del arbol binario
*/
class Accesos {
private:
int accesos;
ListaSimple<string> listaIP;
public:
// Constructor y destructor
Accesos();
Accesos(int numAccesos, string ip);
~Accesos();
// Getters y setters
string getIP() { return listaIP.getHead()->getValor(); }
int getAccesos() { return this->accesos; }
void addIP(string ip);
string imprimir();
string imprimirLista();
bool operator< (Accesos comparacion);
bool operator> (Accesos comparacion);
bool operator== (Accesos comparacion);
friend ostream & operator << (ostream &os, Accesos &a);
};
//=====================================================================
//
// Método: Accesos
// Descripcíón: Inicializador del objeto
//
//=====================================================================
Accesos :: Accesos() {
accesos = 0;
}
//=====================================================================
//
// Método: Accesos
// Descripcíón: Inicializador del objeto
//
//=====================================================================
Accesos :: Accesos(int numAccesos, string ip) {
accesos = numAccesos;
addIP(ip);
}
//=====================================================================
//
// Método: ~Accesos
// Descripcíón: Destructor del objeto
//
//=====================================================================
Accesos :: ~Accesos() {
}
//=====================================================================
//
// Método: addIP
// Descripcíón: Agrega un elemento a la lista que contiene ip's
// Complejidad: O(1)
//
//=====================================================================
void Accesos :: addIP(string ip) {
listaIP.agregarFinal(ip);
}
//=====================================================================
//
// Método: imprimir
// Descripcíón: Imprime los elementos de la listaIP
// Complejidad: O(n)
//
//=====================================================================
string Accesos :: imprimir() {
stringstream aux;
aux << "Accesos: " << accesos << endl;
aux << listaIP.imprimirLista();
return aux.str();
}
//=====================================================================
//
// Método: imprimirLista
// Descripcíón: Imprime la lista en la cual se encuentran los datos de
// las direcciones Ip
// Complejidad: O(n)
//
//=====================================================================
string Accesos :: imprimirLista() {
stringstream aux;
aux << listaIP.imprimirLista();
return aux.str();
}
//=====================================================================
//
// Método: Operator<
// Descripcíón: regrsa un dato true o false, si es que accesos es menor
// a la comparación de accesos
// Complejidad: O(1)
//
//=====================================================================
bool Accesos :: operator< (Accesos comparacion) {
return accesos < comparacion.accesos;
}
//=====================================================================
//
// Método: Operator>
// Descripcíón: regrsa un dato true o false, si es que accesos es mayor
// a la comparación de accesos
// Complejidad: O(1)
//
//=====================================================================
bool Accesos :: operator> (Accesos comparacion) {
return accesos > comparacion.accesos;
}
//=====================================================================
//
// Método: Operator==
// Descripcíón: regrsa un dato true o false, si es que accesos es igual
// a la comparación de accesos
// Complejidad: O(1)
//
//=====================================================================
bool Accesos :: operator== (Accesos comparacion) {
return comparacion.accesos == accesos;
}
//===================================================================
//
// Operador: <<
// Descripción: Sobrecarga de operador
// Complejidad: O(1)
//
//===================================================================
ostream & operator << (ostream &os, Accesos &a) {
os << a.getAccesos();
return os;
}
#endif