SourceXtractorPlusPlus 1.0.3
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SourceXtractor::FileManager Class Referenceabstract
Inheritance diagram for SourceXtractor::FileManager:
Collaboration diagram for SourceXtractor::FileManager:

Public Types

typedef intptr_t FileId

Public Member Functions

 FileManager ()
virtual ~FileManager ()
std::shared_ptr< FileHandlergetFileHandler (const boost::filesystem::path &path)
std::pair< FileId, TFD > open (const boost::filesystem::path &path, bool write, std::function< bool(FileId)> request_close)
void close (FileId id, TFD &fd)
void closeAll ()
virtual void notifyUsed (FileId id)
bool hasHandler (const boost::filesystem::path &path) const
Public Member Functions inherited from std::enable_shared_from_this< FileManager >
enable_shared_from_this (T... args)
operator= (T... args)
shared_from_this (T... args)
~enable_shared_from_this (T... args)

Static Public Member Functions

static std::shared_ptr< FileManagergetDefault ()

Protected Types

typedef std::chrono::steady_clock Clock
typedef Clock::time_point Timestamp

Protected Member Functions

virtual void notifyIntentToOpen (bool write)=0
virtual void notifyOpenedFile (FileId)=0
virtual void notifyClosedFile (FileId)=0

Protected Attributes

std::mutex m_mutex
std::map< boost::filesystem::path, std::weak_ptr< FileHandler > > m_handlers
std::map< FileId, std::unique_ptr< FileMetadata > > m_files

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