This commit is contained in:
Masato Imai
2022-09-17 12:31:37 +09:00
parent 9a002b2f96
commit f233c8fd84
8 changed files with 89 additions and 4 deletions

38
add_poll.gpsl Normal file
View File

@ -0,0 +1,38 @@
fn add_poll() {
let user = read_value("./data/user.gvalue");
let poll = read_value("./data/poll.gvalue");
write("./data/user.gvalue", "");
write("./data/poll.gvalue", "");
let users = read_value("./data/users.gvalue");
let polls = read_value("./data/polls.gvalue");
if (users[0] == "") {
users[0] = user;
let tmp_e: Vec<eep> = vec(encrypt(0));
tmp_e[0] = encrypt(poll[0]);
for (let i = 1; i < length(poll); i += 1) {
tmp_e = push(tmp_e, encrypt(poll[i]));
}
polls[0] = tmp_e;
} else {
users = push(users, user);
let tmp_e: Vec<eep> = vec(encrypt(0));
tmp_e[0] = encrypt(poll[0]);
for (let i = 1; i < length(poll); i += 1) {
tmp_e = push(tmp_e, encrypt(poll[i]));
}
polls = push(polls, tmp_e);
}
write_value("./data/users.gvalue", users);
write_value("./data/polls.gvalue", polls);
}
fn main() {
add_poll();
}

View File

@ -1 +0,0 @@
{"Vec":{"value":[{"Number":{"value":0}},{"Number":{"value":1}},{"Number":{"value":0}},{"Number":{"value":0}}],"gpsl_type":{"type_str":"Vec","child":[{"type_str":"num","child":[]}]}}}

File diff suppressed because one or more lines are too long

1
data/result Normal file
View File

@ -0,0 +1 @@
0 1 0 0 1 0 1 0 1 1 0 0 0 0 1

View File

@ -1 +0,0 @@
{"Text":{"value":"3d4"}}

View File

@ -1 +1 @@
{"Vec":{"value":[{"Text":{"value":""}}],"gpsl_type":{"type_str":"Vec","child":[{"type_str":"String","child":[]}]}}}
{"Vec":{"value":[{"Text":{"value":"3d4"}}],"gpsl_type":{"type_str":"Vec","child":[{"type_str":"String","child":[]}]}}}

18
init.gpsl Normal file
View File

@ -0,0 +1,18 @@
fn init_gvalue() {
let users: Vec<String> = vec("");
let tmp: Vec<eep> = vec(encrypt(0));
let polls: Vec<Vec<eep>> = vec(tmp);
write_value("./data/users.gvalue", users);
write_value("./data/polls.gvalue", polls);
let user = "3d4";
let poll: Vec<num> = vec(0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1);
write_value("./data/user.gvalue", user);
write_value("./data/poll.gvalue", poll);
}
fn main() {
init_gvalue();
}

30
sum.gpsl Normal file
View File

@ -0,0 +1,30 @@
#[server(ip = "172.25.5.189:8080")]
fn sum_polls(users: Vec<String>, polls: Vec<Vec<eep>>) {
let n = length(users);
let result: Vec<eep> = polls[0];
for(let i = 1; i < n; i += 1) {
println(polls[i]);
let c = length(polls[i]);
for (let j = 0; j < c; j += 1) {
let p = polls[i];
result[j] = result[j] + p[j];
}
}
return result;
}
fn main() {
let polls = read_value("./data/polls.gvalue");
let users = read_value("./data/users.gvalue");
let result = sum_polls(users, polls);
let n = length(result);
let r = "";
for (let i = 0; i < n; i += 1) {
r = r + decrypt(result[i]) + " ";
}
println(r);
write("./data/result", r);
}