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

Public Member Functions

 HybridParams (dbsize_t num_blocks, dbsize_t block_size, PercyMode it_mode, nqueries_t depth=0, nservers_t tau=0, dbsize_t it_num_blocks=0, dbsize_t ag_N=50, dbsize_t c_word_size=20)
 
 HybridParams (dbsize_t num_blocks, dbsize_t block_size, dbsize_t it_word_size, ZZ it_modulus, nqueries_t depth=0, nservers_t tau=0, dbsize_t it_num_blocks=0, dbsize_t ag_N=50, dbsize_t c_word_size=20)
 
virtual dbsize_t server_block_size () const
 Get the size of each block in the database that the datastore will actually use. More...
 
virtual void print_mode_specific (std::ostream &os) const
 Print mode-specific parameters. More...
 
- Public Member Functions inherited from RecursiveParams
 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 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...
 
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 Attributes

PercyMode it_mode
 
- Protected Attributes inherited from RecursiveParams
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...
 

Additional Inherited Members

- Protected Member Functions inherited from RecursiveParams
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...
 

Member Function Documentation

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

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

virtual dbsize_t server_block_size ( ) const
inlinevirtual

Get the size of each block in the database that the datastore will actually use.

This may be different than block_size() when tau-independence is used.

Reimplemented from PercyParams.


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