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

#include <bmr_gate.h>

Inheritance diagram for encrypto::motion::proto::bmr::InputGate:
Inheritance graph
[legend]
Collaboration diagram for encrypto::motion::proto::bmr::InputGate:
Collaboration graph
[legend]

Public Member Functions

 InputGate (std::size_t number_of_simd, std::size_t bit_size, std::size_t input_owner_id, Backend &backend)
 
 InputGate (std::span< const motion::BitVector<>> input, std::size_t input_owner_id, Backend &backend)
 
 InputGate (std::vector< motion::BitVector<>> &&input, std::size_t input_owner_id, Backend &backend)
 
void InitializationHelper ()
 
 ~InputGate () final=default
 
void EvaluateSetup () final override
 
void EvaluateOnline () final override
 
const bmr::SharePointer GetOutputAsBmrShare () const
 
const motion::SharePointer GetOutputAsShare () const
 
auto & GetInputPromise ()
 
- Public Member Functions inherited from encrypto::motion::OneGate
 ~OneGate () override=default
 
 OneGate (OneGate &)=delete
 
- Public Member Functions inherited from encrypto::motion::Gate
virtual ~Gate ()=default
 
const std::vector< WirePointer > & GetOutputWires () const
 
void Clear ()
 
void RegisterWaitingFor (std::size_t wire_id)
 
void SignalDependencyIsReady ()
 
bool AreDependenciesReady ()
 
void SetSetupIsReady ()
 
void SetOnlineIsReady ()
 
void WaitSetup () const
 
void WaitOnline () const
 
bool SetupIsReady () const
 
std::int64_t GetId () const
 
 Gate (Gate &)=delete
 

Protected Attributes

std::size_t number_of_simd_ {0}
 Number of parallel values on wires. More...
 
std::size_t bit_size_ {0}
 Number of wires. More...
 
motion::ReusableFiberFuture< motion::BitVector<> > received_public_values_
 
std::vector< motion::ReusableFiberFuture< motion::Block128Vector > > received_public_keys_
 
motion::ReusableFiberFuture< std::vector< motion::BitVector<> > > input_future_
 
motion::ReusableFiberPromise< std::vector< motion::BitVector<> > > input_promise_
 
- Protected Attributes inherited from encrypto::motion::InputGate
std::int64_t input_owner_id_ = -1
 
- Protected Attributes inherited from encrypto::motion::OneGate
std::vector< WirePointerparent_
 
- Protected Attributes inherited from encrypto::motion::Gate
std::vector< WirePointeroutput_wires_
 
Backendbackend_
 
std::int64_t gate_id_ = -1
 
std::unordered_set< std::size_t > wire_dependencies_
 
GateType gate_type_ = GateType::kInvalid
 
std::atomic< bool > setup_is_ready_ = false
 
std::atomic< bool > online_is_ready_ = false
 
std::atomic< bool > requires_online_interaction_ = false
 
std::atomic< bool > added_to_active_queue_ = false
 
FiberCondition setup_is_ready_condition_
 
FiberCondition online_is_ready_condition_
 
std::atomic< std::size_t > number_of_ready_dependencies_ = 0
 
bool own_output_wires_ {true}
 

Additional Inherited Members

- Protected Member Functions inherited from encrypto::motion::InputGate
 ~InputGate () override=default
 
 InputGate (Backend &backend)
 
 InputGate (InputGate &)=delete
 
- Protected Member Functions inherited from encrypto::motion::OneGate
 OneGate (Backend &backend)
 
- Protected Member Functions inherited from encrypto::motion::Gate
 Gate (Backend &backend)
 
RegisterGetRegister ()
 
ConfigurationGetConfiguration ()
 
LoggerGetLogger ()
 
BaseProviderGetBaseProvider ()
 
MtProviderGetMtProvider ()
 
SpProviderGetSpProvider ()
 
SbProviderGetSbProvider ()
 
communication::CommunicationLayerGetCommunicationLayer ()
 
OtProviderGetOtProvider (const std::size_t i)
 

Constructor & Destructor Documentation

◆ InputGate() [1/3]

encrypto::motion::proto::bmr::InputGate::InputGate ( std::size_t  number_of_simd,
std::size_t  bit_size,
std::size_t  input_owner_id,
Backend backend 
)
Here is the call graph for this function:

◆ InputGate() [2/3]

encrypto::motion::proto::bmr::InputGate::InputGate ( std::span< const motion::BitVector<>>  input,
std::size_t  input_owner_id,
Backend backend 
)
Here is the call graph for this function:

◆ InputGate() [3/3]

encrypto::motion::proto::bmr::InputGate::InputGate ( std::vector< motion::BitVector<>> &&  input,
std::size_t  input_owner_id,
Backend backend 
)
Here is the call graph for this function:

◆ ~InputGate()

encrypto::motion::proto::bmr::InputGate::~InputGate ( )
finaldefault

Member Function Documentation

◆ EvaluateOnline()

void encrypto::motion::proto::bmr::InputGate::EvaluateOnline ( )
finaloverridevirtual

Implements encrypto::motion::Gate.

Here is the call graph for this function:

◆ EvaluateSetup()

void encrypto::motion::proto::bmr::InputGate::EvaluateSetup ( )
finaloverridevirtual

Implements encrypto::motion::Gate.

Here is the call graph for this function:

◆ GetInputPromise()

auto& encrypto::motion::proto::bmr::InputGate::GetInputPromise ( )
inline

◆ GetOutputAsBmrShare()

const bmr::SharePointer encrypto::motion::proto::bmr::InputGate::GetOutputAsBmrShare ( ) const
Here is the caller graph for this function:

◆ GetOutputAsShare()

const motion::SharePointer encrypto::motion::proto::bmr::InputGate::GetOutputAsShare ( ) const
Here is the call graph for this function:

◆ InitializationHelper()

void encrypto::motion::proto::bmr::InputGate::InitializationHelper ( )
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ bit_size_

std::size_t encrypto::motion::proto::bmr::InputGate::bit_size_ {0}
protected

Number of wires.

◆ input_future_

motion::ReusableFiberFuture<std::vector<motion::BitVector<> > > encrypto::motion::proto::bmr::InputGate::input_future_
protected

◆ input_promise_

motion::ReusableFiberPromise<std::vector<motion::BitVector<> > > encrypto::motion::proto::bmr::InputGate::input_promise_
protected

◆ number_of_simd_

std::size_t encrypto::motion::proto::bmr::InputGate::number_of_simd_ {0}
protected

Number of parallel values on wires.

◆ received_public_keys_

std::vector<motion::ReusableFiberFuture<motion::Block128Vector> > encrypto::motion::proto::bmr::InputGate::received_public_keys_
protected

◆ received_public_values_

motion::ReusableFiberFuture<motion::BitVector<> > encrypto::motion::proto::bmr::InputGate::received_public_values_
protected

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