/* * DishonestMajorityFieldMachine.h * */ #ifndef PROCESSOR_FIELDMACHINE_H_ #define PROCESSOR_FIELDMACHINE_H_ #include "RingMachine.h" #include "HonestMajorityMachine.h" #include "Tools/ezOptionParser.h" #include "Math/gfp.h" #include "Protocols/MascotPrep.h" #include "OnlineOptions.hpp" template class U, class V = HonestMajorityMachine> class HonestMajorityFieldMachine { public: HonestMajorityFieldMachine(int argc, const char** argv); HonestMajorityFieldMachine(int argc, const char** argv, ez::ezOptionParser& opt, int nplayers = 3); }; template class U, template class V, class W, class X = gf2n> class FieldMachine { public: FieldMachine(int argc, const char** argv, ez::ezOptionParser& opt, OnlineOptions& online_opts, int nplayers = 0); }; template class T, template class V = T, class W = gf2n, class X = DishonestMajorityMachine> class DishonestMajorityFieldMachine { public: DishonestMajorityFieldMachine(int argc, const char** argv, ez::ezOptionParser& opt, bool live_prep_default = true) { OnlineOptions& online_opts = OnlineOptions::singleton; online_opts = {opt, argc, argv, T(), live_prep_default, W()}; FieldMachine(argc, argv, opt, online_opts); } }; #endif /* PROCESSOR_FIELDMACHINE_H_ */