-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathPackage.h
executable file
·99 lines (82 loc) · 1.88 KB
/
Package.h
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
/**
@file Package.h
@class Package
@brief Clase que Implementa la estructura de un Paquete
@author Christopher Arredondo Flores
@date 28/9/2014
**/
#ifndef CLASS_PACKAGE
#define CLASS_PACKAGE
#include <iostream>
#include <vector>
using namespace std;
class Package
{
private:
int ID; //!<@brief Identificador del Paquete
double size; //!<@brief Tamaño del Paquete
vector<int> idElements; //!<@brief Vector que posee el un ID de cada elemento
vector<DataType *> elements; //!<@brief vector que posee los elementos del paquete
public:
Package(double nSize, int id){
/**
* @brief Constructor de la Clase Package
* @param nSize Tamaño que tendrá el Paquete
* @param id ID que tendrá el Paquete
*/
//cout <<"PKG creado\n";
size=nSize;
ID=id;
}
Package(){
ID=-1;
size=0;
}
~Package(){}
bool put(DataType* x, int pos){
/**
* @brief Método que agrega Elementos al Paquete
* @param x Elemento DataType que se desea ingresar en el paquete
* @param pos Posición del elemento x en su lista original
* @return devuelve un valor verdadero si el elemento si se agregó correctamente
*/
if((actualSize()+(x->getSize()))<=size){
elements.push_back(x);
idElements.push_back(pos);
return true;
}
else{
//cout << "NO HAY ESPACIO SUFICIENTE\n";
return false;
}
}
vector<DataType *> getElements(){
return elements;
}
int getID(){
/**
* @brief Método que devuelve el ID del Paquete
* @return ID
*/
return ID;
}
vector<int> getIdElements(){
/**
* @brief Método que devuelve el vector con los ID de los elementos del paquete
* @return IdElements
*/
return idElements;
}
double actualSize(){
/**
* @brief Método que devuelve el tamaño actual del Paquete
* @return size
*/
double size=0;
for(int i=0;(unsigned)i<elements.size();i++){
size+=elements[i]->getSize();
}
return size;
}
};
#endif