#ifndef __animia__animia__fd__linux_h
#define __animia__animia__fd__linux_h

#include <vector>
#include <utility>
#include <string>
#include <set>

#include "animia/types.h"
#include "animia/fd.h"

/* Russian warship, go fuck yourself */
#ifdef linux
#undef linux
#endif

namespace animia::internal::linux {

class LinuxFdTools final : public BaseFdTools {
	public:
		bool GetAllPids(std::set<pid_t>& pids) override;
		bool GetProcessName(pid_t pid, std::string& result) override;
		bool EnumerateOpenFiles(const std::set<pid_t>& pids, std::vector<OpenFile>& files) override;
};

}

#endif // __animia__animia__fd__linux_h
