#ifndef __animia__animia__fd__linux_h
#define __animia__animia__fd__linux_h

#include <vector>
#include <tuple>
#include <string>
#include <set>

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

#ifdef unix
#undef unix
#endif

namespace animia::internal::unix {

class UnixFdTools 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<std::tuple<pid_t, std::string>>& files) override;
};

}

#endif // __animia__animia__fd__linux_h
