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

#include <wire.h>

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

Public Member Functions

std::size_t GetNumberOfSimdValues () const
 
virtual enum CircuitType GetCircuitType () const =0
 
virtual enum MpcProtocol GetProtocol () const =0
 
virtual ~Wire ()
 
void RegisterWaitingGate (std::size_t gate_id)
 
void SetOnlineFinished ()
 
const auto & GetWaitingGatesIds () const noexcept
 
const std::atomic< bool > & IsReady () const noexcept
 
const FiberConditionGetIsReadyCondition () const noexcept
 
std::size_t GetWireId () const
 
BackendGetBackend () const
 
virtual std::size_t GetBitLength () const =0
 
void Clear ()
 
virtual bool IsConstant () const noexcept=0
 
 Wire (const Wire &)=delete
 

Static Public Member Functions

static std::string PrintIds (const std::vector< std::shared_ptr< Wire >> &wires)
 

Protected Member Functions

 Wire (Backend &backend, std::size_t number_of_simd)
 
virtual void DynamicClear ()
 

Static Protected Member Functions

static void SignalReadyToDependency (std::size_t gate_id, Backend &backend)
 

Protected Attributes

Backendbackend_
 
std::size_t n_simd_ = 0
 Number of values that are logically processed in parallel. More...
 
std::atomic< bool > is_done_ = false
 
FiberCondition is_done_condition_
 
std::int64_t wire_id_ = -1
 
std::unordered_set< std::size_t > waiting_gate_ids_
 

Constructor & Destructor Documentation

◆ ~Wire()

encrypto::motion::Wire::~Wire ( )
virtual

◆ Wire() [1/2]

encrypto::motion::Wire::Wire ( const Wire )
delete

◆ Wire() [2/2]

encrypto::motion::Wire::Wire ( Backend backend,
std::size_t  number_of_simd 
)
protected

Member Function Documentation

◆ Clear()

void encrypto::motion::Wire::Clear ( )
inline
Here is the call graph for this function:

◆ DynamicClear()

virtual void encrypto::motion::Wire::DynamicClear ( )
inlineprotectedvirtual

Reimplemented in encrypto::motion::proto::bmr::Wire.

Here is the caller graph for this function:

◆ GetBackend()

Backend& encrypto::motion::Wire::GetBackend ( ) const
inline

◆ GetBitLength()

virtual std::size_t encrypto::motion::Wire::GetBitLength ( ) const
pure virtual

◆ GetCircuitType()

virtual enum CircuitType encrypto::motion::Wire::GetCircuitType ( ) const
pure virtual

◆ GetIsReadyCondition()

const FiberCondition& encrypto::motion::Wire::GetIsReadyCondition ( ) const
inlinenoexcept

◆ GetNumberOfSimdValues()

std::size_t encrypto::motion::Wire::GetNumberOfSimdValues ( ) const

◆ GetProtocol()

virtual enum MpcProtocol encrypto::motion::Wire::GetProtocol ( ) const
pure virtual

◆ GetWaitingGatesIds()

const auto& encrypto::motion::Wire::GetWaitingGatesIds ( ) const
inlinenoexcept

◆ GetWireId()

std::size_t encrypto::motion::Wire::GetWireId ( ) const
inline

◆ IsConstant()

virtual bool encrypto::motion::Wire::IsConstant ( ) const
pure virtualnoexcept

◆ IsReady()

const std::atomic< bool > & encrypto::motion::Wire::IsReady ( ) const
noexcept

◆ PrintIds()

std::string encrypto::motion::Wire::PrintIds ( const std::vector< std::shared_ptr< Wire >> &  wires)
static

◆ RegisterWaitingGate()

void encrypto::motion::Wire::RegisterWaitingGate ( std::size_t  gate_id)

◆ SetOnlineFinished()

void encrypto::motion::Wire::SetOnlineFinished ( )
Here is the call graph for this function:

◆ SignalReadyToDependency()

void encrypto::motion::Wire::SignalReadyToDependency ( std::size_t  gate_id,
Backend backend 
)
staticprotected
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ backend_

Backend& encrypto::motion::Wire::backend_
protected

◆ is_done_

std::atomic<bool> encrypto::motion::Wire::is_done_ = false
protected

◆ is_done_condition_

FiberCondition encrypto::motion::Wire::is_done_condition_
protected

◆ n_simd_

std::size_t encrypto::motion::Wire::n_simd_ = 0
protected

Number of values that are logically processed in parallel.

◆ waiting_gate_ids_

std::unordered_set<std::size_t> encrypto::motion::Wire::waiting_gate_ids_
protected

◆ wire_id_

std::int64_t encrypto::motion::Wire::wire_id_ = -1
protected

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