-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathShadowVotingMachine.cpp
More file actions
144 lines (88 loc) · 3.6 KB
/
ShadowVotingMachine.cpp
File metadata and controls
144 lines (88 loc) · 3.6 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
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#include "ShadowVotingMachine.h"
// JSOn RPC part
#include <stdlib.h>
#include "client.h"
#include <jsonrpccpp/client/connectors/httpclient.h>
using namespace jsonrpc;
using namespace std;
ShadowVotingMachine::ShadowVotingMachine(std::string arg_host_url, std::string arg_vsID, std::string arg_class_id, std::string arg_object_id)
: VotingMachine(arg_host_url, arg_vsID, arg_class_id, arg_object_id)
{
std::cout << "Shadow Voting Machine created" << std::endl;
}
/*
void ShadowVotingOffice::setAuthMessage(string msg){
HttpClient httpclient((this->host_url).c_str());
client myClient(httpclient, JSONRPC_CLIENT_V2);
Json::Value myv;
try{
std::cout << "calling setAuthMessage" << std::endl;
myv = myClient.setAuthMessage("setAuthMessage", "This is a Voting Office JSON string!", (this->class_id).c_str(),
(this->host_url).c_str(), (this->object_id).c_str(), (this->owner_vsID).c_str());
cout << myv.toStyledString() << endl;
} catch (JsonRpcException &e) {
cerr << e.what() << endl;
}
//return (myv["msg"]).asString();
}*/
//implementing sendVoterInfo
vector<std::string> ShadowVotingMachine::sendVoterInfo(std::string voterInfo){
vector<std::string> result;
HttpClient httpclient((this->host_url).c_str());
client myClient(httpclient, JSONRPC_CLIENT_V2);
Json::Value myv;
try{
std::cout << "calling sendVoterInfo" << std::endl;
myv = myClient.SendVoterInfo("sendVoterInfo", (this->class_id).c_str(),
(this->host_url).c_str(), (this->object_id).c_str(),
(this->owner_vsID).c_str(), voterInfo);
cout << myv.toStyledString() << endl;
} catch (JsonRpcException &e) {
cerr << e.what() << endl;
}
result.push_back((myv["message"]).asString());
result.push_back((myv["machineID"].asString()));
result.push_back((myv["voterInfo"].asString()));
return result;
}
//implementing getBallot
vector<std::string> ShadowVotingMachine::getBallot(std::string message, std::string voterInfo){
vector<std::string> result;
HttpClient httpclient((this->host_url).c_str());
client myClient(httpclient, JSONRPC_CLIENT_V2);
Json::Value myv;
try{
std::cout << "calling getBallot" << std::endl;
myv = myClient.GetBallot("GetBallot", (this->class_id).c_str(),
(this->host_url).c_str(), message,
(this->object_id).c_str(),
(this->owner_vsID).c_str(), voterInfo);
cout << myv.toStyledString() << endl;
} catch (JsonRpcException &e) {
cerr << e.what() << endl;
}
result.push_back((myv["candidate1"]).asString());
return result;
}
//implementing getBallot
vector<std::string> ShadowVotingMachine::sendVote(std::string vote, std::string voterInfo){
vector<std::string> result;
HttpClient httpclient((this->host_url).c_str());
client myClient(httpclient, JSONRPC_CLIENT_V2);
Json::Value myv;
try{
std::cout << "calling sendVote" << std::endl;
myv = myClient.SendVote("SendVote", (this->class_id).c_str(),
(this->host_url).c_str(),
(this->object_id).c_str(),
(this->owner_vsID).c_str(),
vote, voterInfo);
cout << myv.toStyledString() << endl;
} catch (JsonRpcException &e) {
cerr << e.what() << endl;
}
result.push_back((myv["message"]).asString());
result.push_back((myv["machineID"]).asString());
result.push_back((myv["voterInfo"]).asString());
return result;
}