#ifndef LIBREPOMGR_AUR_H #define LIBREPOMGR_AUR_H #include "../multisession.h" #include "../serversetup.h" #include "./session.h" #include #include #include namespace LibRepoMgr { struct LogContext; namespace WebClient { struct AurSnapshotResult { std::string packageName; std::string errorOutput; std::vector packages; std::string error; }; struct AurSnapshotQueryParams { const std::string *packageName; const std::string *targetDirectory; }; using AurQuerySession = MultiSession; using AurSnapshotQuerySession = MultiSession; void searchAurPackages(LogContext &log, ServiceSetup &setup, const std::string &searchTerms, boost::asio::io_context &ioContext, std::shared_ptr &multiSession); std::shared_ptr queryAurPackages(LogContext &log, ServiceSetup &setup, const std::vector &packages, boost::asio::io_context &ioContext, typename AurQuerySession::HandlerType &&handler); std::shared_ptr queryAurPackages(LogContext &log, ServiceSetup &setup, const std::unordered_map> &packages, boost::asio::io_context &ioContext, typename AurQuerySession::HandlerType &&handler); std::shared_ptr queryAurPackagesForDatabase(LogContext &log, ServiceSetup &setup, boost::asio::io_context &ioContext, std::shared_lock *configReadLock, LibPkg::Database &database, typename AurQuerySession::HandlerType &&handler); void queryAurSnapshots(LogContext &log, ServiceSetup &setup, const std::vector &queryParams, boost::asio::io_context &ioContext, std::shared_ptr &multiSession); } // namespace WebClient } // namespace LibRepoMgr #endif // LIBREPOMGR_AUR_H