/* * MalicousRepParty.h * */ #ifndef GC_SHARETHREAD_H_ #define GC_SHARETHREAD_H_ #include "Thread.h" #include "MaliciousRepSecret.h" #include "RepPrep.h" #include "SemiHonestRepPrep.h" #include "Processor/Data_Files.h" #include "Protocols/ReplicatedInput.h" #include namespace GC { template class ShareThread : public Thread { static thread_local ShareThread* singleton; public: static ShareThread& s(); DataPositions usage; Preprocessing& DataF; ShareThread(int i, ThreadMaster& master); virtual ~ShareThread(); void pre_run(); void post_run(); void and_(Processor& processor, const vector& args, bool repeat); }; template thread_local ShareThread* ShareThread::singleton = 0; template inline ShareThread& ShareThread::s() { if (singleton) return *singleton; else throw runtime_error("no singleton"); } } /* namespace GC */ #endif /* GC_SHARETHREAD_H_ */