view include/animone/fd.h @ 2:97ea6a3e1954

dep/animone: make bsd.cc and x11.cc actually work apparently I broke these, and even now the x11 code *still* doesn't want to work correctly (at least on FreeBSD). half of the PID response codes are just 0 or the PID for the X server itself... wtf? maybe dwm just doesn't support the XRes extension, or I'm just stupid. i don't know.
author Paper <paper@paper.us.eu.org>
date Thu, 11 Apr 2024 22:05:41 -0400
parents a76fa32bdc92
children 27b988a1048c
line wrap: on
line source

#ifndef ANIMONE_ANIMONE_FD_H_
#define ANIMONE_ANIMONE_FD_H_

#include <functional>
#include <set>
#include <string>

#include "animone/types.h"

namespace animone {

struct Process;

namespace internal {

struct OpenFile {
	pid_t pid = 0;
	std::string path;
};

using process_proc_t = std::function<bool(const Process&)>;

using open_file_proc_t = std::function<bool(const OpenFile&)>;

bool GetProcessName(pid_t pid, std::string& name);
bool EnumerateOpenProcesses(process_proc_t process_proc);
bool EnumerateOpenFiles(const std::set<pid_t>& pids, open_file_proc_t open_file_proc);

} // namespace internal

} // namespace animone

#endif // ANIMONE_ANIMONE_FD_H_