Skip to content

Commit b05524e

Browse files
committed
node: add op_read handling
1 parent ef271e8 commit b05524e

1 file changed

Lines changed: 22 additions & 0 deletions

File tree

src/network/node.c

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,23 @@ void write_on_node(struct node *n, size_t address, char *data, size_t size) {
3232
}
3333
}
3434

35+
/**
36+
*
37+
* @param n
38+
* @param address
39+
* @param data
40+
* @param size
41+
*/
42+
void read_on_node(struct node *n, size_t address, char *data, size_t size) {
43+
if (address + size <= n->size) {
44+
void *mem_op_ptr = (n->memory + address);
45+
memcpy((void *) data, (void *) mem_op_ptr, size);
46+
}
47+
else {
48+
debug("OP READ FAILED", n->id);
49+
}
50+
}
51+
3552
void node_cycle(struct node *n) {
3653
while (1) {
3754
// cycle of node
@@ -57,6 +74,11 @@ void node_cycle(struct node *n) {
5774
}
5875
break;
5976
case OP_READ:
77+
debug("Read OP", n->id);
78+
char *data = malloc(m->size * sizeof(char));
79+
read_on_node(n, m->address, data, m->size);
80+
MPI_Send(data, m->size * sizeof(char), MPI_BYTE, m->id_s, 4, MPI_COMM_WORLD);
81+
free(data);
6082
break;
6183
default:
6284
break;

0 commit comments

Comments
 (0)