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

#include <NetworkStack.h>

+ Collaboration diagram for NetworkStack::DeviceLease:

Public Member Functions

 DeviceLease (DeviceLease &&other)
 
DeviceLease & operator= (DeviceLease &&other)
 
Network * device () const
 
struct netif * interface () const
 
 operator bool () const
 

Private Member Functions

 DeviceLease (Network *device, struct netif *interface, OperationBarrier::Lease &&lease)
 
 DeviceLease (const DeviceLease &)=delete
 
DeviceLease & operator= (const DeviceLease &)=delete
 

Private Attributes

Network * m_Device
 
struct netif * m_Interface
 
OperationBarrier::Lease m_Lease
 

Friends

class NetworkStack
 

Detailed Description

Pins one registered device and its lwIP interface until the lease leaves scope. Device deregistration removes the registration from discovery and waits for every admitted lease before returning. Device owners must deregister before the most-derived destructor begins and keep reader-visible state stable until deregistration returns.

Definition at line 51 of file NetworkStack.h.

Constructor & Destructor Documentation

◆ DeviceLease() [1/3]

NetworkStack::DeviceLease::DeviceLease ( )

Definition at line 48 of file NetworkStack.cc.

◆ DeviceLease() [2/3]

NetworkStack::DeviceLease::DeviceLease ( DeviceLease &&  other)

Definition at line 54 of file NetworkStack.cc.

◆ ~DeviceLease()

NetworkStack::DeviceLease::~DeviceLease ( )

Definition at line 62 of file NetworkStack.cc.

◆ DeviceLease() [3/3]

NetworkStack::DeviceLease::DeviceLease ( Network *  device,
struct netif *  interface,
OperationBarrier::Lease &&  lease 
)
private

Definition at line 50 of file NetworkStack.cc.

Member Function Documentation

◆ device()

Network * NetworkStack::DeviceLease::device ( ) const
inline

Definition at line 59 of file NetworkStack.h.

◆ interface()

struct netif * NetworkStack::DeviceLease::interface ( ) const
inline

Definition at line 63 of file NetworkStack.h.

◆ operator bool()

NetworkStack::DeviceLease::operator bool ( ) const
inlineexplicit

Definition at line 67 of file NetworkStack.h.

◆ operator=()

NetworkStack::DeviceLease & NetworkStack::DeviceLease::operator= ( DeviceLease &&  other)

Definition at line 64 of file NetworkStack.cc.

Friends And Related Symbol Documentation

◆ NetworkStack

friend class NetworkStack
friend

Definition at line 72 of file NetworkStack.h.

Member Data Documentation

◆ m_Device

Network* NetworkStack::DeviceLease::m_Device
private

Definition at line 79 of file NetworkStack.h.

◆ m_Interface

struct netif* NetworkStack::DeviceLease::m_Interface
private

Definition at line 80 of file NetworkStack.h.

◆ m_Lease

OperationBarrier::Lease NetworkStack::DeviceLease::m_Lease
private

Definition at line 81 of file NetworkStack.h.


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