#pragma once #include #include #include #include #include #include #include #include "dependency.h" class Project { public: typedef std::string LogMessage; typedef std::list Log; enum class Status { unknown, read, error }; Project(const std::filesystem::path& location); bool read(); Status getStatus() const; Log getLog() const; std::string getName() const; uint32_t dependenciesCount() const; private: void log(const std::string& message) const; void parse(const nlohmann::json& json); void createDepencencyFromString(const std::string& entry); void createDepencencyFromObject(const nlohmann::json& entry); private: std::filesystem::path location; Status status; std::string name; mutable Log logStorage; std::map dependencies; };