#ifndef FREE_BOUNDARY_CONDITION_DESCRIPTOR_HPP #define FREE_BOUNDARY_CONDITION_DESCRIPTOR_HPP #include <scheme/IBoundaryConditionDescriptor.hpp> #include <scheme/IBoundaryDescriptor.hpp> #include <memory> class FreeBoundaryConditionDescriptor : public IBoundaryConditionDescriptor { private: std::ostream& _write(std::ostream& os) const final { os << "free(" << *m_boundary_descriptor << ")"; return os; } std::shared_ptr<const IBoundaryDescriptor> m_boundary_descriptor; public: const IBoundaryDescriptor& boundaryDescriptor() const { return *m_boundary_descriptor; } Type type() const final { return Type::free; } FreeBoundaryConditionDescriptor(std::shared_ptr<const IBoundaryDescriptor> boundary_descriptor) : m_boundary_descriptor(boundary_descriptor) { ; } FreeBoundaryConditionDescriptor(const FreeBoundaryConditionDescriptor&) = delete; FreeBoundaryConditionDescriptor(FreeBoundaryConditionDescriptor&&) = delete; ~FreeBoundaryConditionDescriptor() = default; }; #endif // FREE_BOUNDARY_CONDITION_DESCRIPTOR_HPP