#ifndef MODULAR_PROCESSOR_HPP #define MODULAR_PROCESSOR_HPP #include #include #include /** * @brief Represents the result of a data processing operation. */ struct ProcessResult { bool success = false; ///< Whether the operation succeeded. int code = 0; ///< Result code (0 = success, non-zero = error). std::string message; ///< Human-readable result message. std::any output_data; ///< Optional output data payload. }; /** * @brief Core business logic processor. * * Accepts input data and produces a ProcessResult. * The processor can be configured with a ConfigManager and Logger. */ class DataProcessor { public: /** * @brief Construct a DataProcessor. * @param log An optional shared Logger instance. */ explicit DataProcessor(std::shared_ptr log = nullptr); /** * @brief Set a configuration manager for the processor. * @param cfg Shared pointer to a ConfigManager. */ void setConfig(std::shared_ptr cfg); /** * @brief Process input data. * @param input Arbitrary input data (std::any). * @return A ProcessResult describing the outcome. * * This is a placeholder implementation. Override or extend for real logic. */ ProcessResult process(const std::any& input); private: std::shared_ptr logger_; std::shared_ptr config_; }; #endif // MODULAR_PROCESSOR_HPP