Percy++
A C++ implementation of Private Information Retrieval (PIR) protocols
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | List of all members
RecursiveServer Class Reference

A PIR server for recursive PIR protocols. More...

#include <recursiveserver.h>

Inheritance diagram for RecursiveServer:
PercyServer

Public Member Functions

 RecursiveServer (DataStore *datastore, const RecursiveServerParams *serverparams, PercyStats *stats=NULL)
 Constructor. More...
 
virtual ~RecursiveServer ()
 Destructor. 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...
 
- 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 (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...
 

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...
 
- Protected Member Functions inherited from PercyServer
 PercyServer (DataStore *datastore, const PercyServerParams *serverparams, PercyStats *stats=NULL)
 Constructor. More...
 
- 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...
 

Detailed Description

A PIR server for recursive PIR protocols.

Constructor & Destructor Documentation

RecursiveServer ( DataStore datastore,
const RecursiveServerParams serverparams,
PercyStats stats = NULL 
)

Constructor.

Parameters
datastoreDatabase the server will use.
paramsParameters for the server.
statsStatistics collection object. No statistics will be collected if NULL.
virtual ~RecursiveServer ( )
virtual

Destructor.

Member Function Documentation

virtual bool handle_request ( std::istream &  is,
std::ostream &  os,
const std::vector< std::iostream * > &  workers = std::vector< std::iostream * >() 
)
virtual

Handle a request from a single client.

Parameters
isInput stream from the client.
osOutput stream to the client.
workersWhen the server is a master server, a list of input/output streams to/from the workers.
Returns
Returns false if there is an error, true otherwise.

Reimplemented from PercyServer.


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