29 #ifndef SERVER_HEADER_GUARD
30 #define SERVER_HEADER_GUARD
54 namespace SecureRecommendations {
62 class Server :
public std::enable_shared_from_this<Server> {
77 void SetClient (
const std::shared_ptr<const Hub> &client);
92 std::vector<std::string> GetSafetyBlockSvmsUnsafeClasses ()
const;
95 std::deque<std::string> GetSafetyBlockModelFiles ()
const;
160 void loadMedicalRelevanceSvmModels (
const std::string &modelsDirectory);
163 void loadSafetySvmModels (
const std::string &modelsDirectory);
183 #endif//SERVER_HEADER_GUARD
PaillierCiphertext Ciphertext
Provide public access to the T_Ciphertext type.
std::vector< Paillier::Ciphertext > EncryptedVector
Define a vector template specialization for vectors of encrypted data.
Processed test data container.
Paillier::Ciphertext encryptedOne
Precompute [1] for optimization purposes.
std::vector< std::unique_ptr< SecureSvm > > safetySvms
Safety Block SVM models.
std::deque< std::string > safetySvmModelFiles
The safety block model files.
Definition of class SecurePermutation.
std::vector< BigInteger > dummyContentItems
Dummy vector of content items.
std::string medicalRelevanceModelsDirectory
Medical relevance models folder.
Definition of class Config.
std::vector< Paillier::Ciphertext > EncryptedClusterVotes
Container for the encrypted cluster votes.
SecureSvm::KernelTypes kernel
The SVM kernel type.
PaillierPublicKey clientPublicKey
The client public key.
unsigned int contentItemCount
The number of content items.
std::vector< std::unique_ptr< SecureSvm > > medicalRelevanceSvms
Medical Relevance Block SVM models.
Definition of class SecureSvm.
unsigned int medicalRelevanceClusterCount
Number of clusters for the Medical Relevance Block.
Definition of class Filesystem.
Paillier cryptoProvider
The crypto provider.
Implementation of the public-key Paillier Cryptosystem.
Definition of struct TestDataRow.
KernelTypes
Types of implemented kernels.
std::vector< Paillier::Ciphertext > EncryptedSvmValues
Vector of encrypted SVM evaluations.
unsigned int blindingFactorSize
The maximum size of the blinding factors.
std::string modelFileExtension
The model files extension.
std::vector< std::pair< size_t, size_t > > PermutationVector
Define the permutation map container.
std::weak_ptr< const Hub > client
Server::EncryptedClusterVotes encryptedClusterVotes
Stores the number of votes received for each cluster after evaluating the SVMs.
std::vector< Paillier::Ciphertext > dummyEncryptedPreferenceScores
Dummy vector of encrypted preference scores.
Definition of class Paillier.
Medical Recommendations Server.
std::string safetyModelsDirectory
The full path to the safety block models directory.
Paillier::Ciphertext encryptedZero
Precompute [0] for optimization purposes.
The public key container structure for the Paillier cryptosystem.