41 int main (
int argc,
char *argv[]) {
46 Utils::Config::SetConfigFile(std::string(argv[1]));
49 std::cout << Utils::DateTime::Now() <<
": Starting simulation." << std::endl << std::endl;
52 std::shared_ptr<PrivacyServiceProvider> privacyServiceProvider = std::make_shared<PrivacyServiceProvider>();
53 std::shared_ptr<ServiceProvider> serviceProvider = std::make_shared<ServiceProvider>(privacyServiceProvider->GetPaillierPublicKey(), privacyServiceProvider->GetDgkPublicKey());
55 serviceProvider->SetPrivacyServiceProvider(privacyServiceProvider);
56 privacyServiceProvider->SetServiceProvider(serviceProvider);
58 Client client(serviceProvider, privacyServiceProvider, privacyServiceProvider->GetPaillierPublicKey());
60 std::cout << Utils::DateTime::Now() <<
": Finished initializing servers." << std::endl << std::endl;
62 serviceProvider->GenerateDummyDatabase();
64 std::cout << Utils::DateTime::Now() <<
": Finished encrypting client data." << std::endl << std::endl;
66 serviceProvider->ComputeSimilarityValues();
68 std::cout << Utils::DateTime::Now() <<
": Finished computing the similarity values and Gamma." << std::endl << std::endl;
70 serviceProvider->ComputeUserRecommendations();
72 std::cout << Utils::DateTime::Now() <<
": Finished pre-computing recommendations for all users." << std::endl << std::endl;
77 std::cout << std::endl << Utils::DateTime::Now() <<
": Finished simulation." << std::endl << std::endl;
79 catch (
const std::runtime_error &exception) {
80 std::cout << exception.what() << std::endl;
82 catch (
const std::exception &exception) {
83 std::cout << exception.what() << std::endl;
87 std::cout <<
"Unexpected exception occured." << std::endl;
Private Recommendations main header.
void ComputeRecommendations()
Interact with the server(s) to extract the recommendations for every user.
int main(int argc, char *argv[])