The Pedigree Project 0.1
Public Member Functions | Public Attributes | 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

AdvisoryOwner & advisoryOwner ()
 
uint64_t identity () const
 
File * getFile () const
 
FilesystemPathRef openingPath () const
 
ReadyMask queryFileReady (bool reading, bool writing) const
 
ReadinessGenerations fileReadinessGenerations () const
 
SharedPointer< ConsoleIoState > terminalEpoch (bool waitForReopen=true) const
 
SharedPointer< NetworkSyscalls > getNetworkImpl () const
 
SharedPointer< EventFd > getEventFdImpl () const
 
SharedPointer< TimerFd > getTimerFdImpl () const
 
SharedPointer< SignalFd > getSignalFdImpl () const
 
SharedPointer< InotifyInstance > getInotifyImpl () const
 
SharedPointer< FanotifyInstance > getFanotifyImpl () const
 
SharedPointer< PosixMessageQueue > getMqueueImpl () const
 
size_t descriptorOwnerCount () const
 

Public Attributes

SharedPointer< Process::ControllingTerminal > terminalContext
 
SharedPointer< FilesystemWriteLease > mountWrite
 

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
 
File * anonymousFile
 
SharedPointer< NetworkSyscalls > networkImpl
 
SharedPointer< EventFd > eventFdImpl
 
SharedPointer< TimerFd > timerFdImpl
 
SharedPointer< SignalFd > signalFdImpl
 
SharedPointer< InotifyInstance > inotifyImpl
 
SharedPointer< FanotifyInstance > fanotifyImpl
 
SharedPointer< PosixMessageQueue > mqueueImpl
 
SharedPointer< ConsoleIoState > consoleEpoch
 
uint64_t offset
 
const int accessFlags
 
int statusFlags
 
size_t descriptorOwners
 
bool vfsLease
 
bool allowTruncate = true
 

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 133 of file FileDescriptor.cc.

◆ OpenFileDescription() [1/2]

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

Definition at line 91 of file FileDescriptor.cc.

◆ OpenFileDescription() [2/2]

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

Definition at line 114 of file FileDescriptor.cc.

Member Function Documentation

◆ addDescriptorOwner()

void FileDescriptor::OpenFileDescription::addDescriptorOwner ( )
private

Definition at line 231 of file FileDescriptor.cc.

◆ advisoryOwner()

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

Definition at line 68 of file FileDescriptor.h.

◆ descriptorOwnerCount()

size_t FileDescriptor::OpenFileDescription::descriptorOwnerCount ( ) const

Definition at line 226 of file FileDescriptor.cc.

◆ ensureVfsLease()

void FileDescriptor::OpenFileDescription::ensureVfsLease ( )
private

Definition at line 273 of file FileDescriptor.cc.

◆ fileReadinessGenerations()

ReadinessGenerations FileDescriptor::OpenFileDescription::fileReadinessGenerations ( ) const

Definition at line 154 of file FileDescriptor.cc.

◆ getEventFdImpl()

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

Definition at line 206 of file FileDescriptor.cc.

◆ getFanotifyImpl()

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

Definition at line 222 of file FileDescriptor.cc.

◆ getFile()

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

Definition at line 76 of file FileDescriptor.h.

◆ getInotifyImpl()

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

Definition at line 218 of file FileDescriptor.cc.

◆ getMqueueImpl()

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

Definition at line 566 of file FileDescriptor.cc.

◆ getNetworkImpl()

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

Definition at line 202 of file FileDescriptor.cc.

◆ getSignalFdImpl()

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

Definition at line 214 of file FileDescriptor.cc.

◆ getTimerFdImpl()

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

Definition at line 210 of file FileDescriptor.cc.

◆ identity()

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

Definition at line 72 of file FileDescriptor.h.

◆ openingPath()

FilesystemPathRef FileDescriptor::OpenFileDescription::openingPath ( ) const

Definition at line 126 of file FileDescriptor.cc.

◆ queryFileReady()

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

Definition at line 148 of file FileDescriptor.cc.

◆ removeDescriptorOwner()

void FileDescriptor::OpenFileDescription::removeDescriptorOwner ( )
private

Definition at line 237 of file FileDescriptor.cc.

◆ terminalEpoch()

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

Definition at line 141 of file FileDescriptor.cc.

Friends And Related Symbol Documentation

◆ FileDescriptor

friend class FileDescriptor
friend

Definition at line 95 of file FileDescriptor.h.

◆ PositionGuard

friend class PositionGuard
friend

Definition at line 96 of file FileDescriptor.h.

◆ TransferPositionGuard

friend class TransferPositionGuard
friend

Definition at line 97 of file FileDescriptor.h.

Member Data Documentation

◆ accessFlags

const int FileDescriptor::OpenFileDescription::accessFlags
private

Definition at line 121 of file FileDescriptor.h.

◆ allowTruncate

bool FileDescriptor::OpenFileDescription::allowTruncate = true
private

Definition at line 125 of file FileDescriptor.h.

◆ anonymousFile

File* FileDescriptor::OpenFileDescription::anonymousFile
private

Definition at line 111 of file FileDescriptor.h.

◆ consoleEpoch

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

Definition at line 119 of file FileDescriptor.h.

◆ descriptorOwners

size_t FileDescriptor::OpenFileDescription::descriptorOwners
private

Definition at line 123 of file FileDescriptor.h.

◆ eventFdImpl

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

Definition at line 113 of file FileDescriptor.h.

◆ fanotifyImpl

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

Definition at line 117 of file FileDescriptor.h.

◆ inotifyImpl

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

Definition at line 116 of file FileDescriptor.h.

◆ lock

Mutex FileDescriptor::OpenFileDescription::lock
mutableprivate

Definition at line 108 of file FileDescriptor.h.

◆ m_AdvisoryOwner

AdvisoryOwner FileDescriptor::OpenFileDescription::m_AdvisoryOwner
private

Definition at line 107 of file FileDescriptor.h.

◆ mountWrite

SharedPointer<FilesystemWriteLease> FileDescriptor::OpenFileDescription::mountWrite

Definition at line 66 of file FileDescriptor.h.

◆ mqueueImpl

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

Definition at line 118 of file FileDescriptor.h.

◆ networkImpl

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

Definition at line 112 of file FileDescriptor.h.

◆ offset

uint64_t FileDescriptor::OpenFileDescription::offset
private

Definition at line 120 of file FileDescriptor.h.

◆ path

FilesystemPathRef FileDescriptor::OpenFileDescription::path
private

Definition at line 110 of file FileDescriptor.h.

◆ signalFdImpl

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

Definition at line 115 of file FileDescriptor.h.

◆ statusFlags

int FileDescriptor::OpenFileDescription::statusFlags
private

Definition at line 122 of file FileDescriptor.h.

◆ terminalContext

SharedPointer<Process::ControllingTerminal> FileDescriptor::OpenFileDescription::terminalContext

Definition at line 65 of file FileDescriptor.h.

◆ timerFdImpl

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

Definition at line 114 of file FileDescriptor.h.

◆ vfsLease

bool FileDescriptor::OpenFileDescription::vfsLease
private

Definition at line 124 of file FileDescriptor.h.


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