The Pedigree Project 0.1
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Private Member Functions | Private Attributes | List of all members
FileEventSource Class Reference

#include <FileEvent.h>

+ Inheritance diagram for FileEventSource:
+ Collaboration diagram for FileEventSource:

Public Member Functions

MUST_USE_RESULT bool subscribeFileEvents (FileEventMask interest, const SharedPointer< FileEventObserver > &observer, FileEventSubscription &subscription)
 

Protected Member Functions

bool hasFileEventObservers (FileEventMask mask) const
 
void notifyFileEvent (const FileEvent &event)
 
void notifyFinalFileEvent (const FileEvent &event)
 
void beginFinalFileEvent (const FileEvent &event)
 
void drainFileEvents ()
 
void closeFileEvents ()
 

Static Protected Member Functions

static bool anyFileEventObservers ()
 

Private Member Functions

 FileEventSource (const FileEventSource &)=delete
 
FileEventSourceoperator= (const FileEventSource &)=delete
 

Private Attributes

SharedPointer< FileEventStatem_FileEventState
 

Detailed Description

A lifetime-safe, payload-carrying VFS mutation event source.

Definition at line 92 of file FileEvent.h.

Constructor & Destructor Documentation

◆ FileEventSource()

FileEventSource::FileEventSource ( )

Definition at line 262 of file FileEvent.cc.

◆ ~FileEventSource()

FileEventSource::~FileEventSource ( )
virtual

Definition at line 264 of file FileEvent.cc.

Member Function Documentation

◆ anyFileEventObservers()

bool FileEventSource::anyFileEventObservers ( )
staticprotected

Conservative hints; delivery still checks admission under the source lock.

Definition at line 296 of file FileEvent.cc.

Referenced by File::publishEvent().

+ Here is the caller graph for this function:

◆ beginFinalFileEvent()

void FileEventSource::beginFinalFileEvent ( const FileEvent event)
protected

Closes admission and emits a terminal event without draining older callbacks.

Definition at line 320 of file FileEvent.cc.

◆ closeFileEvents()

void FileEventSource::closeFileEvents ( )
protected

Definition at line 312 of file FileEvent.cc.

◆ drainFileEvents()

void FileEventSource::drainFileEvents ( )
protected

Definition at line 325 of file FileEvent.cc.

◆ hasFileEventObservers()

bool FileEventSource::hasFileEventObservers ( FileEventMask  mask) const
protected

Definition at line 300 of file FileEvent.cc.

◆ notifyFileEvent()

void FileEventSource::notifyFileEvent ( const FileEvent event)
protected

Delivers synchronously; callers may still hold the mutation's VFS lock.

Definition at line 289 of file FileEvent.cc.

Referenced by File::publishEvent().

+ Here is the caller graph for this function:

◆ notifyFinalFileEvent()

void FileEventSource::notifyFinalFileEvent ( const FileEvent event)
protected

Atomically closes subscription admission and delivers a final event.

Definition at line 304 of file FileEvent.cc.

Referenced by File::publishEvent().

+ Here is the caller graph for this function:

◆ subscribeFileEvents()

bool FileEventSource::subscribeFileEvents ( FileEventMask  interest,
const SharedPointer< FileEventObserver > &  observer,
FileEventSubscription subscription 
)

Definition at line 268 of file FileEvent.cc.

Member Data Documentation

◆ m_FileEventState

SharedPointer<FileEventState> FileEventSource::m_FileEventState
private

Definition at line 118 of file FileEvent.h.


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