MOTION
0.01
Framework for mixed-protocol multi-party computation
|
Go to the documentation of this file.
30 #include <unordered_set>
38 class CommunicationLayer;
69 virtual ~Gate() =
default;
131 void IfReadyAddToProcessingQueue();
SbProvider & GetSbProvider()
Definition: gate.cpp:108
InputGate(Backend &backend)
Definition: gate.h:175
~OneGate() override=default
GateType gate_type_
Definition: gate.h:105
virtual void EvaluateOnline()=0
const LoggerPointer & GetLogger() const noexcept
Definition: backend.cpp:92
~OutputGate() override=default
boost::fibers::mutex & GetMutex() noexcept
Get the mutex.
Definition: fiber_condition.h:76
FiberCondition setup_is_ready_condition_
Definition: gate.h:112
void SignalDependencyIsReady()
Definition: gate.cpp:41
bool AreDependenciesReady()
Definition: gate.h:83
communication::CommunicationLayer & GetCommunicationLayer()
Definition: gate.cpp:92
std::vector< WirePointer > output_wires_
Definition: gate.h:100
std::vector< WirePointer > parents_
Definition: gate.h:263
Definition: ot_provider.h:204
std::vector< WirePointer > parent_b_
Definition: gate.h:221
Logger & GetLogger()
Definition: gate.cpp:100
Definition: sb_provider.h:50
std::shared_ptr< Wire > WirePointer
Definition: register.h:40
Wraps a boost::fibers::condition_variable with a boost::fibers::mutex and a condition checking functi...
Definition: fiber_condition.h:35
OneGate(Backend &backend)
Definition: gate.h:157
SpProvider & GetSpProvider()
Definition: gate.cpp:106
std::int64_t output_owner_
Definition: gate.h:203
NInputGate(Backend &backend)
Definition: gate.h:265
std::vector< WirePointer > parent_
Definition: gate.h:155
~InputGate() override=default
std::vector< WirePointer > parent_c_
Definition: gate.h:243
TwoGate(Backend &backend)
Definition: gate.h:223
~ThreeGate() override=default
Definition: mt_provider.h:48
OneGate(OneGate &)=delete
std::atomic< bool > requires_online_interaction_
Definition: gate.h:108
BaseProvider & GetBaseProvider()
Definition: gate.cpp:102
Register & GetRegister()
Definition: gate.cpp:96
const std::vector< WirePointer > & GetOutputWires() const
Definition: gate.h:75
auto & GetSbProvider()
Definition: backend.h:303
std::atomic< std::size_t > number_of_ready_dependencies_
Definition: gate.h:115
ThreeGate(Backend &backend)
Definition: gate.h:245
void NotifyAll() const noexcept
Unblocks all threads waiting for condition_variable_.
Definition: fiber_condition.h:71
std::vector< WirePointer > parent_a_
Definition: gate.h:220
std::int64_t GetId() const
Definition: gate.h:95
std::atomic< bool > online_is_ready_
Definition: gate.h:107
void RegisterWaitingFor(std::size_t wire_id)
Definition: gate.cpp:36
void SetOnlineIsReady()
Definition: gate.cpp:54
OutputGate(OutputGate &)=delete
bool SetupIsReady() const
Definition: gate.h:93
Backend & backend_
Definition: gate.h:101
OtProvider & GetOtProvider(const std::size_t i)
Definition: gate.cpp:110
void SetSetupIsReady()
Definition: gate.cpp:46
const RegisterPointer & GetRegister() const noexcept
Definition: backend.h:101
virtual void EvaluateSetup()=0
const ConfigurationPointer & GetConfiguration() const noexcept
Definition: backend.h:97
FiberCondition online_is_ready_condition_
Definition: gate.h:113
Definition: sp_provider.h:52
Definition: algorithm_description.cpp:35
std::shared_ptr< Gate > GatePointer
Definition: backend.h:64
std::int64_t gate_id_
Definition: gate.h:102
void Clear()
Definition: gate.cpp:80
~TwoGate() override=default
std::shared_ptr< OutputGate > OutputGatePointer
Definition: gate.h:206
Definition: communication_layer.h:58
std::atomic< bool > added_to_active_queue_
Definition: gate.h:110
std::unordered_set< std::size_t > wire_dependencies_
Definition: gate.h:103
~NInputGate() override=default
std::atomic< bool > setup_is_ready_
Definition: gate.h:106
void WaitOnline() const
Definition: gate.cpp:70
bool own_output_wires_
Definition: gate.h:128
Definition: register.h:48
OutputGate(Backend &backend)
Definition: gate.h:200
void Wait() const
Blocks until fiber is notified and condition_function_ returns true.
Definition: fiber_condition.h:53
MtProvider & GetMtProvider()
Definition: gate.cpp:104
communication::CommunicationLayer & GetCommunicationLayer()
Definition: backend.h:289
OtProvider & GetOtProvider(std::size_t party_id)
Definition: backend.cpp:373
Definition: motion_base_provider.h:48
BaseProvider & GetBaseProvider()
Definition: backend.h:291
std::vector< WirePointer > parent_a_
Definition: gate.h:241
void WaitSetup() const
Definition: gate.cpp:68
auto & GetMtProvider()
Definition: backend.h:299
Definition: configuration.h:32
std::vector< WirePointer > parent_b_
Definition: gate.h:242
auto & GetSpProvider()
Definition: backend.h:301
std::shared_ptr< InputGate > InputGatePointer
Definition: backend.h:66
Configuration & GetConfiguration()
Definition: gate.cpp:98
void AddToActiveQueue(std::size_t gate_id)
Definition: register.cpp:88
GateType
Definition: typedefs.h:177
std::int64_t input_owner_id_
Definition: gate.h:179