Sim-LIT  2.0
 All Classes Namespaces Files Functions Variables Typedefs
NormalPacketizer.h
Go to the documentation of this file.
1 
10 #ifndef CLASS_NORMALPACKETIZER
11 #define CLASS_NORMALPACKETIZER
12 
13 #include <vector>
14 #include <iostream>
15 #include "DataType.h"
16 #include "Packetizer.h"
17 
18 using namespace std;
19 
21 
22  int amount_elements;
23 
24 public:
25 
26  ~NormalPacketizer(){}
27 
32  }
33 
34  vector<Package> imgToPackageList(vector<DataType *> list, int size, bool show_data){
40  vector<Package> pkgs;
41  if(show_data)
42  cout << "N-DATATYPE-SENDED: " << list.size() << "\n";
43  int id=0;
44  Package* aux = new Package(size,id);
45  id++;
46  amount_elements = list.size();
47  for(int i=0;i<amount_elements;i++){
48  if(!aux->put((DataType*)list[i],i)){
49  pkgs.push_back(*aux);
50  aux = new Package(size,id);
51  id++;
52  aux->put((DataType*)list[i],i);
53  }
54  }
55  pkgs.push_back(*aux);
56  //cout <<"Nº PACKAGES " << pkgs.size()<<"\n";
57  return pkgs;
58  }
59 
60  vector<DataType *> packageListToImg(vector<Package> list, bool show_data){
65  vector<DataType *> data(amount_elements,NULL);
66  vector<DataType *> elements;
67  vector<int> idElements;
68  int pos=0;
69  for(int i=0;i<list.size();i++){
70  Package aux = list[i];
71  elements = aux.getElements();
72  idElements = aux.getIdElements();
73  for (int j = 0; j < elements.size(); j++)
74  {
75  pos = idElements[j];
76  data[pos]=elements[j];
77  }
78  }
79  int good=0;
80  for(int i=0;i<data.size();i++){
81  if(data[i]!=NULL){
82  good+=1;
83  }
84  }
85  amount_elements = good;
86  if(show_data)
87  cout << "N-DATATYPE-RECEIVED: " << good << "\n";
88  return data;
89  }
90 
91  int getSizeElements(){
92  return amount_elements;
93  }
94 
95 };
96 
97 #endif
Clase que Implementa la estructura de un Paquete.
Definition: Package.h:17
vector< int > getIdElements()
Definition: Package.h:72
Clase que representa un tipo de dato que será paquetizado.
Definition: DataType.h:18
bool put(DataType *x, int pos)
Definition: Package.h:41
vector< DataType * > packageListToImg(vector< Package > list, bool show_data)
Clase que define la estructuras que debe tener el paquetizador.
Definition: Packetizer.h:16
vector< Package > imgToPackageList(vector< DataType * > list, int size, bool show_data)
Clase que define un Paquetizador básico.