Percy++
A C++ implementation of Private Information Retrieval (PIR) protocols
|
Public Member Functions | |
PercyHybridServer (DataStore *datastore, const HybridServerParams *params, PercyStats *stats=NULL) | |
Public Member Functions inherited from PercyServer | |
virtual | ~PercyServer () |
Destructor. More... | |
void | be_byzantine () |
Tell the server to be Byzantine. More... | |
void | set_strassen_max_depth (nqueries_t depth) |
Set the strassen max level. More... | |
nqueries_t | get_strassen_max_depth () |
Get the strassen max level. More... | |
virtual bool | handle_request (std::istream &is, std::ostream &os, const std::vector< std::iostream * > &workers=std::vector< std::iostream * >()) |
Handle a request from a single client. More... | |
virtual bool | handle_request (const std::vector< std::istream * > &isv, const std::vector< std::ostream * > &osv, const std::vector< std::iostream * > &workers=std::vector< std::iostream * >()) |
Handle a request from a number of clients simultaneously. More... | |
Protected Member Functions | |
virtual bool | handle_request_impl (std::istream &is, std::ostream &os, nqueries_t num_queries) |
virtual std::vector< BufferList > | worker_query_parts (nqueries_t num_queries, unsigned char *query) |
virtual void | combine_results (nqueries_t num_queries, unsigned char *result, std::vector< unsigned char * > worker_results) |
Protected Member Functions inherited from PercyServer | |
virtual bool | handle_request_impl (const std::vector< unsigned char * > &requests, const std::vector< unsigned char * > &responses)=0 |
Implementation of handle_request(). More... | |
virtual bool | handle_request_distributed (const std::vector< unsigned char * > &requests, const std::vector< unsigned char * > &responses, const std::vector< std::iostream * > &workers) |
Implementation of handle_request() used for master servers. More... | |
virtual bool | handle_request_threaded (const std::vector< unsigned char * > &requests, const std::vector< unsigned char * > &responses) |
Implementation of handle_request() to be used when using multithreading. More... | |
virtual void | combine_results (unsigned char *result, const std::vector< unsigned char * > &worker_results)=0 |
Combines the results of threads/workers when partitioning database records (DIST_SPLIT_RECORDS). More... | |
PercyServer (DataStore *datastore, const PercyServerParams *serverparams, PercyStats *stats=NULL) | |
Constructor. More... | |
Protected Attributes | |
const HybridServerParams * | params |
const PercyServerParams & | it_params |
const AGServerParams & | c_params |
DataStore * | it_datastore |
DataStore * | c_datastore |
PercyServer * | it_server |
PercyServer * | c_server |
Protected Attributes inherited from PercyServer | |
bool | byzantine |
Whether or not the server is Byzantine. More... | |
DataStore * | datastore |
The database used by the server. More... | |
const PercyServerParams * | serverparams |
The parameters for the server. More... | |
PercyStats * | stats |
Statistics collection object. More... | |
nqueries_t | strassen_max_depth |
Maximum depth allowed when using Strassen's matrix multiplication. More... | |
nqueries_t | strassen_level_reached |
The strassen level reached in computation. More... | |
std::vector< PercyServer * > | subservers |
When using multithreading, the server objects for the threads. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from PercyServer | |
static PercyServer * | make_server (DataStore *datastore, const PercyServerParams *params, PercyStats *stats=NULL) |
Factory method called to get a server object for the given parameters. More... | |
Static Public Attributes inherited from PercyServer | |
static const nqueries_t | STRASSEN_OPTIMAL = -1 |
Special strassen max level, when set to this value, the optimal strategy is used. More... | |