ndmspc v1.2.0-0.1.rc5
Loading...
Searching...
No Matches
NDimensionalIpcRunner.h
1#ifndef Ndmspc_NDimensionalIpcRunner_H
2#define Ndmspc_NDimensionalIpcRunner_H
3
4#include <string>
5#include <vector>
6#include <sys/types.h>
7#include <Rtypes.h>
8
9namespace Ndmspc {
10
11class NThreadData;
12
14 public:
15 static bool SendFrames(void * socket, const std::vector<std::string> & frames);
16 static bool ReceiveFrames(void * socket, std::vector<std::string> & outFrames);
17
18 static std::string BuildWorkerIdentity(size_t workerIndex);
19 static std::string SerializeCoords(const std::vector<int> & coords);
20 static std::string SerializeIds(const std::vector<Long64_t> & ids);
21
22 static int WorkerLoop(const std::string & endpoint, size_t workerIndex, NThreadData * worker);
23 static int TaskLoop(void * dealer, size_t workerIndex, NThreadData * worker);
24 static bool WaitForChildProcesses(const std::vector<pid_t> & pids, int timeoutMs = -1);
25 static void CleanupChildProcesses(const std::vector<pid_t> & pids);
26
27 private:
28 static std::vector<int> ParseCoords(const std::string & coordsStr);
29 static std::vector<Long64_t> ParseIds(const std::string & idsStr);
30};
31
32} // namespace Ndmspc
33
34#endif
Thread-local data object for NDMSPC processing.
Definition NThreadData.h:21
Global callback function for libwebsockets client events.