xapian-core  1.4.22
Public Member Functions | Private Member Functions | Private Attributes | List of all members
FDTracker Class Reference

#include <fdtracker.h>

+ Collaboration diagram for FDTracker:

Public Member Functions

 FDTracker ()
 ~FDTracker ()
void init ()
bool check ()
const std::string & get_message () const
 FDTracker (const FDTracker &)=delete
FDTrackeroperator= (const FDTracker &)=delete

Private Member Functions

void mark_fd (int fd)
bool check_fd (int fd) const

Private Attributes

std::vector< bool > fds
 Which fds are open. More...
void * dir_void
 The DIR* from opendir("/proc/self/fd") (or equivalent) cast to void*. More...
std::string message

Detailed Description

Definition at line 32 of file fdtracker.h.

Constructor & Destructor Documentation

◆ FDTracker() [1/2]

FDTracker::FDTracker ( )

Definition at line 56 of file fdtracker.h.

References check(), init(), and ~FDTracker().

Referenced by get_message().

◆ ~FDTracker()

FDTracker::~FDTracker ( )

Definition at line 68 of file fdtracker.cc.

References closedir().

Referenced by FDTracker().

◆ FDTracker() [2/2]

FDTracker::FDTracker ( const FDTracker )

Member Function Documentation

◆ check()

bool FDTracker::check ( )

◆ check_fd()

bool FDTracker::check_fd ( int  fd) const

Definition at line 63 of file fdtracker.cc.

◆ get_message()

const std::string& FDTracker::get_message ( ) const

Definition at line 64 of file fdtracker.h.

References check(), FDTracker(), init(), message, and operator=().

Referenced by test_driver::runtest().

◆ init()

void FDTracker::init ( )

◆ mark_fd()

void FDTracker::mark_fd ( int  fd)

Definition at line 53 of file fdtracker.cc.

◆ operator=()

FDTracker& FDTracker::operator= ( const FDTracker )

Referenced by get_message().

Member Data Documentation

◆ dir_void

void* FDTracker::dir_void

The DIR* from opendir("/proc/self/fd") (or equivalent) cast to void*.

We store this cast to void* here to minimise the header we have to include here.

Definition at line 47 of file fdtracker.h.

◆ fds

std::vector<bool> FDTracker::fds

Which fds are open.

The lowest unused fd is used whenever a new fd is needed so we can expect them to form a dense set and vector<bool> should be an efficient representation both in space and time.

Definition at line 40 of file fdtracker.h.

◆ message

std::string FDTracker::message

Definition at line 49 of file fdtracker.h.

Referenced by get_message().

The documentation for this class was generated from the following files: