-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathResourceMPI.h
More file actions
57 lines (48 loc) · 1.08 KB
/
Copy pathResourceMPI.h
File metadata and controls
57 lines (48 loc) · 1.08 KB
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
#pragma once
#include "DataTuples.h"
#include "mpi.h"
#include <iostream>
#include <stddef.h>
#include <vector>
struct DataTupleMPI
{
int tupleID;
int classID;
int subjectID;
int roomID;
int teacherID;
static const int numItems = 5;
};
class DataTuplesMPI : public std::vector<DataTupleMPI>
{
public:
void pack(const DataTuples& tuples);
int getTotalIntElements();
void getIdVector(std::vector<int>& ids) const;
const DataTupleMPI* get(int id) const;
};
inline int
DataTuplesMPI::getTotalIntElements()
{
return DataTupleMPI::numItems * size();
}
inline void
DataTuplesMPI::getIdVector(std::vector<int>& ids) const
{
std::vector<DataTupleMPI>::const_iterator it;
for (it = begin(); it != end(); ++it) {
const DataTupleMPI& tuple = *it;
ids.push_back(tuple.tupleID);
}
}
inline const DataTupleMPI*
DataTuplesMPI::get(int id) const
{
const_iterator it;
for (it = begin(); it != end(); ++it) {
const DataTupleMPI* res = &(*it);
if (res->tupleID == id)
return res;
}
return nullptr;
}