-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathserverGroup.cpp
123 lines (111 loc) · 2.72 KB
/
serverGroup.cpp
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
// Definiciones de funciones miembros de la clase ServerGroup
// Constructor (parte a)
template <class DataType>
ServerGroup<DataType>::ServerGroup(int s)
{
size = s;
for (int i = 0; i < size; i++)
servers[i] = 0;
spServer = 0;
}
// Función miembro (parte b)
template <class DataType>
bool ServerGroup<DataType>::spServerFree()
{
if (spServer == 0)
return true;
else
return false;
}
// Función miembro (parte c)
template <class DataType>
bool ServerGroup<DataType>::serverFree()
{
for (int i = 0; i < size; i++)
{
if (servers[i] == 0)
{
freeServer = i;
return true;
}
}
return false;
}
// Función miembro (parte d)
template <class DataType>
void ServerGroup<DataType>::useServer(int avTransTime)
{
servers[freeServer] = avTransTime;
}
// Función miembro (parte e)
template <class DataType>
void ServerGroup<DataType>::usespServer(int avTransTime)
{
spServer = avTransTime;
}
// Función miembro (parte f)
template <class DataType>
void ServerGroup<DataType>::decServers()
{
if (spServer != 0)
spServer--;
for (int i = 0; i < size; i++)
{
if (servers[i] != 0)
{
servers[i]--;
}
}
}
// Destructor (a4)
template <class DataType>
ServerGroup<DataType>::~ServerGroup()
{
delete[] servers;
}
// Copy constructor (a4)
template <class DataType>
ServerGroup<DataType>::ServerGroup(const ServerGroup &ap)
{
deepCopy(ap);
}
// Overloaded assignment operator (a4)
template <class DataType>
ServerGroup<DataType> &ServerGroup<DataType>::operator=(const ServerGroup &right)
{
if (this == &right)
return *this;
delete[] servers;
deepCopy(right);
return *this;
}
// deepCopy (a4)
template <class DataType>
inline void ServerGroup<DataType>::deepCopy(const ServerGroup<DataType> &og)
{
size = og.size;
servers = new DataType[size];
for (int i = 0; i < og.size; i++)
servers[i] = og.servers[i];
}
// Función para probar destructor, copy constructor y overloaded assignment operator (a4)
template <class DataType>
void ServerGroup<DataType>::testServer(ServerGroup<DataType> obj)
{
cout << "Funcion para probar si cambio arreglo fue ejecutado\n";
cout << "Datos de los servidores originales son: \n";
for (int i = 0; i < size; i++)
cout << "server " << i << ": " << servers[i] << endl;
cout << "Datos de los servidores nuevos son: \n";
for (int i = 0; i < size; i++)
cout << "server " << i << ": " << obj.servers[i] << endl;
}
// Función para cambiar valores del servidor
template <class DataType>
void ServerGroup<DataType>::changeValues()
{
servers[0] = 1;
servers[1] = 2;
servers[2] = 3;
servers[3] = 4;
}