#pragma once #include #include #include class CGIScript { public: CGIScript(const std::string& script_path); ~CGIScript(); void set_environment(const char* key, const char* value); bool open(); std::string read_output(); static void validate_path(const std::string& path); private: FILE* m_pipe {}; const std::string& m_script_path; bool m_is_open { false }; std::vector m_environment_variables; };