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
RecursiveParams Class Reference
Inheritance diagram for RecursiveParams:
PercyParams HybridParams RecursiveAGParams

Public Member Functions

 RecursiveParams (dbsize_t num_blocks, dbsize_t block_size, dbsize_t word_size, PercyMode mode, std::vector< const PercyParams * > iterations, nservers_t tau=0)
 
std::vector< dbsize_t > iteration_indices (dbsize_t index) const
 
std::vector< const PercyParams * > get_iterations () const
 
const PercyParamsget_iteration (nqueries_t index) const
 
nqueries_t depth () const
 
dbsize_t request_size (nqueries_t num_queries=1) const
 Get the size of a client to server request. More...
 
dbsize_t response_size (nqueries_t num_queries=1) const
 Get the size of a server to client response. More...
 
virtual void print_mode_specific (std::ostream &os) const
 Print mode-specific parameters. More...
 
virtual std::vector< const
PercyParams * > 
create_worker_params (std::vector< Dimension > worker_dims) const
 Create protocol parameters for threads/workers. More...
 
virtual bool is_recursive () const
 Check if the protocol is recursive. More...
 
- Public Member Functions inherited from PercyParams
 PercyParams (dbsize_t num_blocks, dbsize_t block_size, dbsize_t word_size, PercyMode mode, nservers_t tau=0, dbsize_t virtual_block_size=1)
 Constructor. More...
 
virtual ~PercyParams ()
 Destructor. More...
 
dbsize_t num_blocks () const
 Get the number of blocks in the database. More...
 
dbsize_t block_size () const
 Get the size of each block in the database in bytes. More...
 
virtual dbsize_t server_block_size () const
 Get the size of each block in the database that the datastore will actually use. More...
 
dbsize_t word_size () const
 Get the word size used to split blocks. More...
 
dbsize_t words_per_block () const
 Get the number of words per database block. More...
 
PercyMode get_mode () const
 Get the protocol being used. More...
 
nservers_t tau () const
 Get the level of tau-independence. More...
 
dbsize_t num_virtual_blocks () const
 Get the number of virtual blocks when being used as one iteration of a recursive protocol. More...
 
dbsize_t virtual_block_size () const
 Get the number of actual blocks in a virtual block when being used as one iteration of a recursive protocol. More...
 
void print (std::ostream &os) const
 Prints the parameters in CSV form. More...
 

Protected Member Functions

virtual void write (std::ostream &os) const
 Write the parameters to a stream to check compatibility. More...
 
virtual bool check_compatible (std::istream &is) const
 Read the parameters from a stream (as written by write()) and check that they are compatible with these parameters. More...
 

Protected Attributes

std::vector< const PercyParams * > iterations
 
- Protected Attributes inherited from PercyParams
unsigned char version [3]
 Percy++ version. More...
 
dbsize_t _num_blocks
 Number of database blocks. More...
 
dbsize_t _block_size
 Size of database blocks in bytes. More...
 
dbsize_t _word_size
 Word size used to split blocks. More...
 
dbsize_t _words_per_block
 Number of words per database block. More...
 
PercyMode mode
 Protocol being used. More...
 
nservers_t _tau
 Level of tau-independence. More...
 
dbsize_t _num_virtual_blocks
 Number of virtual blocks when part of a recursive protocol. More...
 
dbsize_t _virtual_block_size
 Number of actual blocks per virtual block when part of a recursive protocol. More...
 

Member Function Documentation

virtual bool check_compatible ( std::istream &  is) const
protectedvirtual

Read the parameters from a stream (as written by write()) and check that they are compatible with these parameters.

Parameters
isStream to read from.
Returns
Return true if the read parameters are compatitble with these parameters; false otherwise.

Reimplemented from PercyParams.

virtual std::vector<const PercyParams*> create_worker_params ( std::vector< Dimension worker_dims) const
virtual

Create protocol parameters for threads/workers.

worker_dims The database dimensions for each thread/worker.

Returns
The protocol parameters for each thread/worker.

Implements PercyParams.

virtual bool is_recursive ( ) const
inlinevirtual

Check if the protocol is recursive.

Reimplemented from PercyParams.

virtual void print_mode_specific ( std::ostream &  os) const
inlinevirtual

Print mode-specific parameters.

Meant to be overloaded by subclasses to print more details about that mode. Is used by print() to print the mode_specific column.

Parameters
osStream to print to.

Reimplemented from PercyParams.

Reimplemented in RecursiveAGParams, and HybridParams.

dbsize_t request_size ( nqueries_t  num_queries = 1) const
virtual

Get the size of a client to server request.

Parameters
num_queriesThe number of queries in the request. (Default: 1)

Implements PercyParams.

dbsize_t response_size ( nqueries_t  num_queries = 1) const
virtual

Get the size of a server to client response.

Parameters
num_queriesThe number of queries in the request. (Default: 1)

Implements PercyParams.

virtual void write ( std::ostream &  os) const
protectedvirtual

Write the parameters to a stream to check compatibility.

Parameters
osStream to write to.

Reimplemented from PercyParams.


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