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 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...
 
- 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...
 
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...
 

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: