blob: 0757094c95d7937c56d18cb049b2da361999b66f [file] [log] [blame]
/* -*- Mode: C++; tab-width: 8; c-basic-offset: 2; indent-tabs-mode: nil; -*- */
#ifndef RR_PROC_FD_DIR_MONITOR_H_
#define RR_PROC_FD_DIR_MONITOR_H_
#include "FileMonitor.h"
#include "TaskishUid.h"
namespace rr {
/**
* A FileMonitor to intercept enumerations of /proc/<pid>/fd so that entries
* for rr's private fds can be hidden when <pid> is a tracee.
*/
class ProcFdDirMonitor : public FileMonitor {
public:
ProcFdDirMonitor(Task* t, const std::string& pathname);
virtual Type type() override { return ProcFd; }
virtual void filter_getdents(RecordTask* t) override;
private:
// 0 if this doesn't object doesn't refer to a tracee's proc-mem.
TaskUid tuid;
};
} // namespace rr
#endif /* RR_PROC_FD_DIR_MONITOR_H_ */