MOTION  0.01
Framework for mixed-protocol multi-party computation
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
encrypto::motion::SpProvider Class Referenceabstract

#include <sp_provider.h>

Inheritance diagram for encrypto::motion::SpProvider:
Inheritance graph
[legend]
Collaboration diagram for encrypto::motion::SpProvider:
Collaboration graph
[legend]

Public Member Functions

virtual ~SpProvider ()=default
 
bool NeedSps () const noexcept
 
template<typename T >
std::size_t GetNumberOfSps () const noexcept
 
template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
std::size_t RequestSps (const std::size_t number_of_sps) noexcept
 
template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
SpVector< T > GetSps (const std::size_t offset, const std::size_t n=1)
 
template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
const SpVector< T > & GetSpsAll () noexcept
 
virtual void PreSetup ()=0
 
virtual void Setup ()=0
 
void WaitFinished ()
 

Protected Member Functions

 SpProvider (const std::size_t my_id)
 
 SpProvider ()=delete
 

Protected Attributes

std::size_t number_of_sps_8_ {0}
 
std::size_t number_of_sps_16_ {0}
 
std::size_t number_of_sps_32_ {0}
 
std::size_t number_of_sps_64_ {0}
 
std::size_t number_of_sps_128_ {0}
 
SpVector< std::uint8_t > sps_8_
 
SpVector< std::uint16_t > sps_16_
 
SpVector< std::uint32_t > sps_32_
 
SpVector< std::uint64_t > sps_64_
 
SpVector< __uint128_t > sps_128_
 
const std::size_t my_id_
 
bool finished_ = false
 
std::shared_ptr< FiberConditionfinished_condition_
 

Constructor & Destructor Documentation

◆ ~SpProvider()

virtual encrypto::motion::SpProvider::~SpProvider ( )
virtualdefault

◆ SpProvider() [1/2]

encrypto::motion::SpProvider::SpProvider ( const std::size_t  my_id)
protected

◆ SpProvider() [2/2]

encrypto::motion::SpProvider::SpProvider ( )
protecteddelete

Member Function Documentation

◆ GetNumberOfSps()

template<typename T >
std::size_t encrypto::motion::SpProvider::GetNumberOfSps ( ) const
inlinenoexcept

◆ GetSps()

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
SpVector<T> encrypto::motion::SpProvider::GetSps ( const std::size_t  offset,
const std::size_t  n = 1 
)
inline
Here is the call graph for this function:

◆ GetSpsAll()

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
const SpVector<T>& encrypto::motion::SpProvider::GetSpsAll ( )
inlinenoexcept
Here is the call graph for this function:

◆ NeedSps()

bool encrypto::motion::SpProvider::NeedSps ( ) const
noexcept
Here is the caller graph for this function:

◆ PreSetup()

virtual void encrypto::motion::SpProvider::PreSetup ( )
pure virtual

◆ RequestSps()

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
std::size_t encrypto::motion::SpProvider::RequestSps ( const std::size_t  number_of_sps)
inlinenoexcept

◆ Setup()

virtual void encrypto::motion::SpProvider::Setup ( )
pure virtual

◆ WaitFinished()

void encrypto::motion::SpProvider::WaitFinished ( )
inline
Here is the caller graph for this function:

Member Data Documentation

◆ finished_

bool encrypto::motion::SpProvider::finished_ = false
protected

◆ finished_condition_

std::shared_ptr<FiberCondition> encrypto::motion::SpProvider::finished_condition_
protected

◆ my_id_

const std::size_t encrypto::motion::SpProvider::my_id_
protected

◆ number_of_sps_128_

std::size_t encrypto::motion::SpProvider::number_of_sps_128_ {0}
protected

◆ number_of_sps_16_

std::size_t encrypto::motion::SpProvider::number_of_sps_16_ {0}
protected

◆ number_of_sps_32_

std::size_t encrypto::motion::SpProvider::number_of_sps_32_ {0}
protected

◆ number_of_sps_64_

std::size_t encrypto::motion::SpProvider::number_of_sps_64_ {0}
protected

◆ number_of_sps_8_

std::size_t encrypto::motion::SpProvider::number_of_sps_8_ {0}
protected

◆ sps_128_

SpVector<__uint128_t> encrypto::motion::SpProvider::sps_128_
protected

◆ sps_16_

SpVector<std::uint16_t> encrypto::motion::SpProvider::sps_16_
protected

◆ sps_32_

SpVector<std::uint32_t> encrypto::motion::SpProvider::sps_32_
protected

◆ sps_64_

SpVector<std::uint64_t> encrypto::motion::SpProvider::sps_64_
protected

◆ sps_8_

SpVector<std::uint8_t> encrypto::motion::SpProvider::sps_8_
protected

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