2017-05-22 05:54:27 +00:00
|
|
|
#include "ipc_manager.h"
|
|
|
|
|
2017-12-04 08:13:35 +00:00
|
|
|
#include "language_server_api.h"
|
|
|
|
|
|
|
|
#include <sstream>
|
|
|
|
|
2017-05-22 05:54:27 +00:00
|
|
|
IpcManager* IpcManager::instance_ = nullptr;
|
|
|
|
|
2017-09-22 01:14:57 +00:00
|
|
|
// static
|
2017-05-22 05:54:27 +00:00
|
|
|
IpcManager* IpcManager::instance() {
|
|
|
|
return instance_;
|
|
|
|
}
|
|
|
|
|
|
|
|
// static
|
|
|
|
void IpcManager::CreateInstance(MultiQueueWaiter* waiter) {
|
|
|
|
instance_ = new IpcManager(waiter);
|
|
|
|
}
|
|
|
|
|
2017-12-04 08:13:35 +00:00
|
|
|
// static
|
|
|
|
void IpcManager::WriteStdout(IpcId id, lsBaseOutMessage& response) {
|
2017-05-22 05:54:27 +00:00
|
|
|
std::ostringstream sstream;
|
|
|
|
response.Write(sstream);
|
|
|
|
|
2017-12-04 08:13:35 +00:00
|
|
|
StdoutMessage out;
|
|
|
|
out.content = sstream.str();
|
|
|
|
out.id = id;
|
|
|
|
instance()->for_stdout.Enqueue(std::move(out));
|
2017-05-22 05:54:27 +00:00
|
|
|
}
|
|
|
|
|
2017-12-04 08:13:35 +00:00
|
|
|
IpcManager::IpcManager(MultiQueueWaiter* waiter)
|
|
|
|
: for_stdout(waiter), for_querydb(waiter) {}
|