SchemeBase.h 720 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include "openfhe/core/lattice/hal/lat-backend.h"
  3. #include <memory>
  4. namespace lbcrypto
  5. {
  6. template <class Element>
  7. class SchemeBase;
  8. } // lbcrypto
  9. namespace openfhe
  10. {
  11. using SchemeBase = lbcrypto::SchemeBase<lbcrypto::DCRTPoly>;
  12. class SchemeBaseDCRTPoly final
  13. {
  14. std::shared_ptr<SchemeBase> m_schemeBase;
  15. public:
  16. SchemeBaseDCRTPoly() = default;
  17. explicit SchemeBaseDCRTPoly(const std::shared_ptr<SchemeBase>& schemeBase);
  18. SchemeBaseDCRTPoly(const SchemeBaseDCRTPoly&) = delete;
  19. SchemeBaseDCRTPoly(SchemeBaseDCRTPoly&&) = delete;
  20. SchemeBaseDCRTPoly& operator=(const SchemeBaseDCRTPoly&) = delete;
  21. SchemeBaseDCRTPoly& operator=(SchemeBaseDCRTPoly&&) = delete;
  22. };
  23. } // openfhe