comparison dep/animia/src/strategist.cc @ 139:478f3b366199

dep/animia: separate lots of things, use base class for OS stuff
author Paper <mrpapersonic@gmail.com>
date Sun, 12 Nov 2023 16:43:07 -0500
parents 28842a8d0c6b
children 1e696863b54c
comparison
equal deleted inserted replaced
138:28842a8d0c6b 139:478f3b366199
1 #include "animia/strategies.h" 1 #include "animia/strategies.h"
2 #include "animia/util.h" 2 #include "animia/util.h"
3 #include "animia/fd.h"
3 #include "animia.h" 4 #include "animia.h"
4 #include <iostream> 5 #include <iostream>
5
6 #ifdef ANIMIA_ON_WIN32
7 # include "animia/fd/win32.h"
8 #elif defined(ANIMIA_ON_LINUX)
9 # include "animia/fd/linux.h"
10 #elif defined(ANIMIA_ON_UNIX)
11 # include "animia/fd/bsd.h"
12 #endif
13 6
14 namespace animia::internal { 7 namespace animia::internal {
15 8
16 class Strategist { 9 class Strategist {
17 public: 10 public:
58 bool success = false; 51 bool success = false;
59 52
60 const std::set<pid_t> pids{result_.process.pid}; 53 const std::set<pid_t> pids{result_.process.pid};
61 std::vector<std::tuple<pid_t, std::string>> files; 54 std::vector<std::tuple<pid_t, std::string>> files;
62 55
63 #ifdef ANIMIA_ON_WIN32 56 fd.EnumerateOpenFiles(pids, files);
64 win32::EnumerateOpenFiles(pids, files);
65 #elif defined(ANIMIA_ON_LINUX)
66 linux::EnumerateOpenFiles(pids, files);
67 #elif defined(ANIMIA_ON_UNIX)
68 unix::EnumerateOpenFiles(pids, files);
69 #endif
70 57
71 for (const auto& [pid, file] : files) { 58 for (const auto& [pid, file] : files) {
72 success |= AddMedia({MediaInfoType::File, file}); 59 success |= AddMedia({MediaInfoType::File, file});
73 } 60 }
74 61