The Pedigree Project 0.1
Public Member Functions | Private Member Functions | Private Attributes | Friends | List of all members
FileDescriptor::OpenFileDescription Class Reference

#include <FileDescriptor.h>

+ Collaboration diagram for FileDescriptor::OpenFileDescription:

Public Member Functions

AdvisoryOwneradvisoryOwner ()
 
uint64_t identity () const
 
FilegetFile () const
 
FilesystemPathRef openingPath () const
 
ReadyMask queryFileReady (bool reading, bool writing) const
 
ReadinessGenerations fileReadinessGenerations () const
 
SharedPointer< ConsoleIoStateterminalEpoch (bool waitForReopen=true) const
 
SharedPointer< NetworkSyscallsgetNetworkImpl () const
 
SharedPointer< EventFdgetEventFdImpl () const
 
SharedPointer< TimerFdgetTimerFdImpl () const
 
SharedPointer< SignalFdgetSignalFdImpl () const
 
SharedPointer< InotifyInstancegetInotifyImpl () const
 
SharedPointer< FanotifyInstancegetFanotifyImpl () const
 
SharedPointer< PosixMessageQueuegetMqueueImpl () const
 
size_t descriptorOwnerCount () const
 

Private Member Functions

 OpenFileDescription (File *file, uint64_t initialOffset, int initialStatusFlags)
 
 OpenFileDescription (const FilesystemPathRef &path, uint64_t initialOffset, int initialStatusFlags)
 
void addDescriptorOwner ()
 
void removeDescriptorOwner ()
 
void ensureVfsLease ()
 

Private Attributes

AdvisoryOwner m_AdvisoryOwner
 
Mutex lock
 
FilesystemPathRef path
 
FileanonymousFile
 
SharedPointer< NetworkSyscallsnetworkImpl
 
SharedPointer< EventFdeventFdImpl
 
SharedPointer< TimerFdtimerFdImpl
 
SharedPointer< SignalFdsignalFdImpl
 
SharedPointer< InotifyInstanceinotifyImpl
 
SharedPointer< FanotifyInstancefanotifyImpl
 
SharedPointer< PosixMessageQueuemqueueImpl
 
SharedPointer< ConsoleIoStateconsoleEpoch
 
uint64_t offset
 
const int accessFlags
 
int statusFlags
 
size_t descriptorOwners
 
bool vfsLease
 

Friends

class FileDescriptor
 
class PositionGuard
 
class TransferPositionGuard
 

Detailed Description

Shared state for one open file description. A lease keeps its file or socket target alive independently of any numeric descriptor.

Definition at line 62 of file FileDescriptor.h.

Constructor & Destructor Documentation

◆ ~OpenFileDescription()

FileDescriptor::OpenFileDescription::~OpenFileDescription ( )

Definition at line 140 of file FileDescriptor.cc.

◆ OpenFileDescription() [1/2]

FileDescriptor::OpenFileDescription::OpenFileDescription ( File file,
uint64_t  initialOffset,
int  initialStatusFlags 
)
private

Definition at line 98 of file FileDescriptor.cc.

◆ OpenFileDescription() [2/2]

FileDescriptor::OpenFileDescription::OpenFileDescription ( const FilesystemPathRef path,
uint64_t  initialOffset,
int  initialStatusFlags 
)
private

Definition at line 121 of file FileDescriptor.cc.

Member Function Documentation

◆ addDescriptorOwner()

void FileDescriptor::OpenFileDescription::addDescriptorOwner ( )
private

Definition at line 244 of file FileDescriptor.cc.

◆ advisoryOwner()

AdvisoryOwner & FileDescriptor::OpenFileDescription::advisoryOwner ( )
inline

Definition at line 66 of file FileDescriptor.h.

◆ descriptorOwnerCount()

size_t FileDescriptor::OpenFileDescription::descriptorOwnerCount ( ) const

Definition at line 239 of file FileDescriptor.cc.

◆ ensureVfsLease()

void FileDescriptor::OpenFileDescription::ensureVfsLease ( )
private

Definition at line 286 of file FileDescriptor.cc.

◆ fileReadinessGenerations()

ReadinessGenerations FileDescriptor::OpenFileDescription::fileReadinessGenerations ( ) const

Definition at line 161 of file FileDescriptor.cc.

◆ getEventFdImpl()

SharedPointer< EventFd > FileDescriptor::OpenFileDescription::getEventFdImpl ( ) const

Definition at line 214 of file FileDescriptor.cc.

◆ getFanotifyImpl()

SharedPointer< FanotifyInstance > FileDescriptor::OpenFileDescription::getFanotifyImpl ( ) const

Definition at line 234 of file FileDescriptor.cc.

◆ getFile()

File * FileDescriptor::OpenFileDescription::getFile ( ) const
inline

Definition at line 74 of file FileDescriptor.h.

◆ getInotifyImpl()

SharedPointer< InotifyInstance > FileDescriptor::OpenFileDescription::getInotifyImpl ( ) const

Definition at line 229 of file FileDescriptor.cc.

◆ getMqueueImpl()

SharedPointer< PosixMessageQueue > FileDescriptor::OpenFileDescription::getMqueueImpl ( ) const

Definition at line 608 of file FileDescriptor.cc.

◆ getNetworkImpl()

SharedPointer< NetworkSyscalls > FileDescriptor::OpenFileDescription::getNetworkImpl ( ) const

Definition at line 209 of file FileDescriptor.cc.

◆ getSignalFdImpl()

SharedPointer< SignalFd > FileDescriptor::OpenFileDescription::getSignalFdImpl ( ) const

Definition at line 224 of file FileDescriptor.cc.

◆ getTimerFdImpl()

SharedPointer< TimerFd > FileDescriptor::OpenFileDescription::getTimerFdImpl ( ) const

Definition at line 219 of file FileDescriptor.cc.

◆ identity()

uint64_t FileDescriptor::OpenFileDescription::identity ( ) const
inline

Definition at line 70 of file FileDescriptor.h.

◆ openingPath()

FilesystemPathRef FileDescriptor::OpenFileDescription::openingPath ( ) const

Definition at line 133 of file FileDescriptor.cc.

◆ queryFileReady()

ReadyMask FileDescriptor::OpenFileDescription::queryFileReady ( bool  reading,
bool  writing 
) const

Definition at line 155 of file FileDescriptor.cc.

◆ removeDescriptorOwner()

void FileDescriptor::OpenFileDescription::removeDescriptorOwner ( )
private

Definition at line 250 of file FileDescriptor.cc.

◆ terminalEpoch()

SharedPointer< ConsoleIoState > FileDescriptor::OpenFileDescription::terminalEpoch ( bool  waitForReopen = true) const

Definition at line 148 of file FileDescriptor.cc.

Friends And Related Symbol Documentation

◆ FileDescriptor

friend class FileDescriptor
friend

Definition at line 91 of file FileDescriptor.h.

◆ PositionGuard

friend class PositionGuard
friend

Definition at line 92 of file FileDescriptor.h.

◆ TransferPositionGuard

friend class TransferPositionGuard
friend

Definition at line 93 of file FileDescriptor.h.

Member Data Documentation

◆ accessFlags

const int FileDescriptor::OpenFileDescription::accessFlags
private

Definition at line 117 of file FileDescriptor.h.

◆ anonymousFile

File* FileDescriptor::OpenFileDescription::anonymousFile
private

Definition at line 107 of file FileDescriptor.h.

◆ consoleEpoch

SharedPointer<ConsoleIoState> FileDescriptor::OpenFileDescription::consoleEpoch
private

Definition at line 115 of file FileDescriptor.h.

◆ descriptorOwners

size_t FileDescriptor::OpenFileDescription::descriptorOwners
private

Definition at line 119 of file FileDescriptor.h.

◆ eventFdImpl

SharedPointer<EventFd> FileDescriptor::OpenFileDescription::eventFdImpl
private

Definition at line 109 of file FileDescriptor.h.

◆ fanotifyImpl

SharedPointer<FanotifyInstance> FileDescriptor::OpenFileDescription::fanotifyImpl
private

Definition at line 113 of file FileDescriptor.h.

◆ inotifyImpl

SharedPointer<InotifyInstance> FileDescriptor::OpenFileDescription::inotifyImpl
private

Definition at line 112 of file FileDescriptor.h.

◆ lock

Mutex FileDescriptor::OpenFileDescription::lock
mutableprivate

Definition at line 104 of file FileDescriptor.h.

◆ m_AdvisoryOwner

AdvisoryOwner FileDescriptor::OpenFileDescription::m_AdvisoryOwner
private

Definition at line 103 of file FileDescriptor.h.

◆ mqueueImpl

SharedPointer<PosixMessageQueue> FileDescriptor::OpenFileDescription::mqueueImpl
private

Definition at line 114 of file FileDescriptor.h.

◆ networkImpl

SharedPointer<NetworkSyscalls> FileDescriptor::OpenFileDescription::networkImpl
private

Definition at line 108 of file FileDescriptor.h.

◆ offset

uint64_t FileDescriptor::OpenFileDescription::offset
private

Definition at line 116 of file FileDescriptor.h.

◆ path

FilesystemPathRef FileDescriptor::OpenFileDescription::path
private

Definition at line 106 of file FileDescriptor.h.

◆ signalFdImpl

SharedPointer<SignalFd> FileDescriptor::OpenFileDescription::signalFdImpl
private

Definition at line 111 of file FileDescriptor.h.

◆ statusFlags

int FileDescriptor::OpenFileDescription::statusFlags
private

Definition at line 118 of file FileDescriptor.h.

◆ timerFdImpl

SharedPointer<TimerFd> FileDescriptor::OpenFileDescription::timerFdImpl
private

Definition at line 110 of file FileDescriptor.h.

◆ vfsLease

bool FileDescriptor::OpenFileDescription::vfsLease
private

Definition at line 120 of file FileDescriptor.h.


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