MOTION  0.01
Framework for mixed-protocol multi-party computation
Public Member Functions | Protected Attributes | List of all members
encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename > Class Template Referencefinal

#include <arithmetic_gmw_gate.h>

Inheritance diagram for encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >:
Inheritance graph
[legend]
Collaboration diagram for encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >:
Collaboration graph
[legend]

Public Member Functions

arithmetic_gmw::SharePointer< T > GetOutputAsArithmeticShare ()
 
 OutputGate (const arithmetic_gmw::WirePointer< T > &parent, std::size_t output_owner=kAll)
 
 OutputGate (const arithmetic_gmw::SharePointer< T > &parent, std::size_t output_owner)
 
 OutputGate (const motion::SharePointer &parent, std::size_t output_owner)
 
 ~OutputGate () final=default
 
void EvaluateSetup () final override
 
void EvaluateOnline () final override
 
- Public Member Functions inherited from encrypto::motion::OutputGate
 ~OutputGate () override=default
 
 OutputGate (OutputGate &)=delete
 
 OutputGate (Backend &backend)
 
- 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

bool is_my_output_ = false
 
std::vector< motion::ReusableFiberFuture< std::vector< std::uint8_t > > > output_message_futures_
 
std::mutex m
 
- Protected Attributes inherited from encrypto::motion::OutputGate
std::int64_t output_owner_ = -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::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

◆ OutputGate() [1/3]

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >::OutputGate ( const arithmetic_gmw::WirePointer< T > &  parent,
std::size_t  output_owner = kAll 
)
inline

◆ OutputGate() [2/3]

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >::OutputGate ( const arithmetic_gmw::SharePointer< T > &  parent,
std::size_t  output_owner 
)
inline

◆ OutputGate() [3/3]

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >::OutputGate ( const motion::SharePointer parent,
std::size_t  output_owner 
)
inline

◆ ~OutputGate()

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >::~OutputGate ( )
finaldefault

Member Function Documentation

◆ EvaluateOnline()

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
void encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >::EvaluateOnline ( )
inlinefinaloverridevirtual

◆ EvaluateSetup()

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
void encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >::EvaluateSetup ( )
inlinefinaloverridevirtual

◆ GetOutputAsArithmeticShare()

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
arithmetic_gmw::SharePointer<T> encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >::GetOutputAsArithmeticShare ( )
inline

Member Data Documentation

◆ is_my_output_

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
bool encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >::is_my_output_ = false
protected

◆ m

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
std::mutex encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >::m
protected

◆ output_message_futures_

template<typename T , typename = std::enable_if_t<std::is_unsigned_v<T>>>
std::vector<motion::ReusableFiberFuture<std::vector<std::uint8_t> > > encrypto::motion::proto::arithmetic_gmw::OutputGate< T, typename >::output_message_futures_
protected

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