Percy++
A C++ implementation of Private Information Retrieval (PIR) protocols
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PercyHybridServer Class Reference
Inheritance diagram for PercyHybridServer:
PercyServer

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 PercyServerParamsit_params
 
const AGServerParams & c_params
 
DataStoreit_datastore
 
DataStorec_datastore
 
PercyServerit_server
 
PercyServerc_server
 
- Protected Attributes inherited from PercyServer
bool byzantine
 Whether or not the server is Byzantine. More...
 
DataStoredatastore
 The database used by the server. More...
 
const PercyServerParamsserverparams
 The parameters for the server. More...
 
PercyStatsstats
 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 PercyServermake_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...
 

The documentation for this class was generated from the following file: