2018-01-30 05:34:28 +00:00
|
|
|
#include "cache_manager.h"
|
2017-12-06 03:32:33 +00:00
|
|
|
#include "message_handler.h"
|
|
|
|
#include "platform.h"
|
2017-12-29 16:29:47 +00:00
|
|
|
#include "queue_manager.h"
|
2017-12-06 03:32:33 +00:00
|
|
|
|
2017-12-28 16:55:46 +00:00
|
|
|
#include <loguru/loguru.hpp>
|
|
|
|
|
2017-12-06 05:03:38 +00:00
|
|
|
namespace {
|
2018-01-19 09:01:56 +00:00
|
|
|
struct Ipc_CqueryIndexFile : public NotificationMessage<Ipc_CqueryIndexFile> {
|
2017-12-06 04:39:44 +00:00
|
|
|
static constexpr IpcId kIpcId = IpcId::CqueryIndexFile;
|
|
|
|
struct Params {
|
|
|
|
std::string path;
|
|
|
|
std::vector<std::string> args;
|
|
|
|
bool is_interactive = false;
|
|
|
|
std::string contents;
|
|
|
|
};
|
|
|
|
Params params;
|
|
|
|
};
|
|
|
|
MAKE_REFLECT_STRUCT(Ipc_CqueryIndexFile::Params,
|
|
|
|
path,
|
|
|
|
args,
|
|
|
|
is_interactive,
|
|
|
|
contents);
|
|
|
|
MAKE_REFLECT_STRUCT(Ipc_CqueryIndexFile, params);
|
|
|
|
REGISTER_IPC_MESSAGE(Ipc_CqueryIndexFile);
|
|
|
|
|
2017-12-06 03:32:33 +00:00
|
|
|
struct CqueryIndexFileHandler : BaseMessageHandler<Ipc_CqueryIndexFile> {
|
|
|
|
void Run(Ipc_CqueryIndexFile* request) override {
|
2017-12-28 16:55:46 +00:00
|
|
|
LOG_S(INFO) << "Indexing file " << request->params.path;
|
2017-12-24 00:25:18 +00:00
|
|
|
QueueManager::instance()->index_request.Enqueue(Index_Request(
|
2017-12-06 03:32:33 +00:00
|
|
|
NormalizePath(request->params.path), request->params.args,
|
2018-01-30 05:34:28 +00:00
|
|
|
request->params.is_interactive, request->params.contents, ICacheManager::Make(config)));
|
2017-12-06 03:32:33 +00:00
|
|
|
}
|
|
|
|
};
|
|
|
|
REGISTER_MESSAGE_HANDLER(CqueryIndexFileHandler);
|
2017-12-31 03:18:33 +00:00
|
|
|
} // namespace
|