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

#include <sb_provider.h>

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

Public Member Functions

bool NeedSbs () const noexcept
 
template<typename T >
std::size_t GetNumberOfSbs () const noexcept
 
template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
std::size_t RequestSbs (const std::size_t number_of_sbs) noexcept
 
template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
std::vector< T > GetSbs (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 std::vector< T > & GetSbsAll () noexcept
 
virtual void PreSetup ()=0
 
virtual void Setup ()=0
 
void WaitFinished ()
 

Protected Member Functions

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

Protected Attributes

std::size_t number_of_sbs_8_ {0}
 
std::size_t number_of_sbs_16_ {0}
 
std::size_t number_of_sbs_32_ {0}
 
std::size_t number_of_sbs_64_ {0}
 
std::vector< std::uint8_t > sbs_8_
 
std::vector< std::uint16_t > sbs_16_
 
std::vector< std::uint32_t > sbs_32_
 
std::vector< std::uint64_t > sbs_64_
 
const std::size_t my_id_
 
bool finished_ = false
 
std::shared_ptr< FiberConditionfinished_condition_
 

Constructor & Destructor Documentation

◆ SbProvider() [1/2]

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

◆ SbProvider() [2/2]

encrypto::motion::SbProvider::SbProvider ( )
protecteddelete

Member Function Documentation

◆ GetNumberOfSbs()

template<typename T >
std::size_t encrypto::motion::SbProvider::GetNumberOfSbs ( ) const
inlinenoexcept

◆ GetSbs()

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

◆ GetSbsAll()

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

◆ NeedSbs()

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

◆ PreSetup()

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

◆ RequestSbs()

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
std::size_t encrypto::motion::SbProvider::RequestSbs ( const std::size_t  number_of_sbs)
inlinenoexcept

◆ Setup()

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

◆ WaitFinished()

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

Member Data Documentation

◆ finished_

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

◆ finished_condition_

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

◆ my_id_

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

◆ number_of_sbs_16_

std::size_t encrypto::motion::SbProvider::number_of_sbs_16_ {0}
protected

◆ number_of_sbs_32_

std::size_t encrypto::motion::SbProvider::number_of_sbs_32_ {0}
protected

◆ number_of_sbs_64_

std::size_t encrypto::motion::SbProvider::number_of_sbs_64_ {0}
protected

◆ number_of_sbs_8_

std::size_t encrypto::motion::SbProvider::number_of_sbs_8_ {0}
protected

◆ sbs_16_

std::vector<std::uint16_t> encrypto::motion::SbProvider::sbs_16_
protected

◆ sbs_32_

std::vector<std::uint32_t> encrypto::motion::SbProvider::sbs_32_
protected

◆ sbs_64_

std::vector<std::uint64_t> encrypto::motion::SbProvider::sbs_64_
protected

◆ sbs_8_

std::vector<std::uint8_t> encrypto::motion::SbProvider::sbs_8_
protected

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