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

#include <PosixSubsystem.h>

+ Collaboration diagram for DescriptorLease:

Public Member Functions

 DescriptorLease (DescriptorLease &&other) noexcept
 
DescriptorLeaseoperator= (DescriptorLease &&other) noexcept
 
 DescriptorLease (const DescriptorLease &)=delete
 
DescriptorLeaseoperator= (const DescriptorLease &)=delete
 
FileDescriptoroperator-> () const
 
FileDescriptoroperator* () const
 
 operator bool () const
 
void reset ()
 

Private Member Functions

void retain (const SharedPointer< FileDescriptor > &descriptor)
 

Private Attributes

SharedPointer< FileDescriptorm_Descriptor
 

Friends

class PosixSubsystem
 
bool acquireDescriptor (int fd, DescriptorLease &descriptor)
 
bool removeDescriptor (int fd, const DescriptorLease &descriptor)
 
size_t installDescriptor (FileDescriptor *descriptor, DescriptorLease &lease)
 

Detailed Description

A move-only lifetime pin for one published descriptor generation.

The control block and raw pointer are deliberately not exposed. Numeric fd lookup can therefore only produce an object whose lexical lifetime keeps the descriptor alive across blocking operations and concurrent close/reuse.

Definition at line 64 of file PosixSubsystem.h.

Constructor & Destructor Documentation

◆ DescriptorLease() [1/2]

DescriptorLease::DescriptorLease ( )
inline

Definition at line 66 of file PosixSubsystem.h.

◆ DescriptorLease() [2/2]

DescriptorLease::DescriptorLease ( DescriptorLease &&  other)
inlinenoexcept

Definition at line 68 of file PosixSubsystem.h.

Member Function Documentation

◆ operator bool()

DescriptorLease::operator bool ( ) const
inlineexplicit

Definition at line 89 of file PosixSubsystem.h.

◆ operator*()

FileDescriptor & DescriptorLease::operator* ( ) const
inline

Definition at line 85 of file PosixSubsystem.h.

◆ operator->()

FileDescriptor * DescriptorLease::operator-> ( ) const
inline

Definition at line 81 of file PosixSubsystem.h.

◆ operator=()

DescriptorLease & DescriptorLease::operator= ( DescriptorLease &&  other)
inlinenoexcept

Definition at line 71 of file PosixSubsystem.h.

◆ reset()

void DescriptorLease::reset ( )
inline

Definition at line 93 of file PosixSubsystem.h.

◆ retain()

void DescriptorLease::retain ( const SharedPointer< FileDescriptor > &  descriptor)
inlineprivate

Definition at line 103 of file PosixSubsystem.h.

Friends And Related Symbol Documentation

◆ acquireDescriptor

bool acquireDescriptor ( int  fd,
DescriptorLease descriptor 
)
friend

Definition at line 115 of file modules/subsys/posix/util.cc.

◆ installDescriptor

size_t installDescriptor ( FileDescriptor descriptor,
DescriptorLease lease 
)
friend

Definition at line 139 of file modules/subsys/posix/util.cc.

◆ PosixSubsystem

friend class PosixSubsystem
friend

Definition at line 98 of file PosixSubsystem.h.

◆ removeDescriptor

bool removeDescriptor ( int  fd,
const DescriptorLease descriptor 
)
friend

Definition at line 129 of file modules/subsys/posix/util.cc.

Member Data Documentation

◆ m_Descriptor

SharedPointer<FileDescriptor> DescriptorLease::m_Descriptor
private

Definition at line 107 of file PosixSubsystem.h.


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