Skip to main content
Pigweed's logo Pigweed
  1. Home
  2. Reference
  3. C/C++
  4. pw::transport::internal::BaseSocketFuture Class Reference
Loading...
Searching...
No Matches
pw::transport::internal::BaseSocketFuture Class Reference

Overview

Base class for socket-bound futures.

Inheritance diagram for pw::transport::internal::BaseSocketFuture:
pw::transport::CloseFuture pw::transport::ReadFuture pw::transport::ReserveWriteFuture

Public Types

using List = async2::FutureList<&BaseSocketFuture::core_ >
 

Public Member Functions

 BaseSocketFuture (const BaseSocketFuture &)=delete
 
BaseSocketFutureoperator= (const BaseSocketFuture &)=delete
 
 BaseSocketFuture (BaseSocketFuture &&other) noexcept
 
BaseSocketFutureoperator= (BaseSocketFuture &&other) noexcept
 
bool is_pendable () const
 
bool is_complete () const
 
void Wake ()
 

Protected Member Functions

 BaseSocketFuture (ReliableDatagramSocketImpl &socket)
 
constexpr BaseSocketFuture (async2::FutureState::Pending)
 
void RemoveFromSocket ()
 
IntrusivePtr< ReliableDatagramSocketImplFinish ()
 
void MarkCompletedWhenSocketUnbound ()
 
void StoreSocket (ReliableDatagramSocketImpl &socket)
 
void ClearSocket ()
 
void MoveSocket (BaseSocketFuture &other)
 
ReliableDatagramSocketImplsocket ()
 
const ReliableDatagramSocketImplsocket () const
 
async2::FutureCorecore ()
 

Friends

class ::pw::transport::ReliableDatagramSocketImpl
 
class ::pw::transport::ReserveWriteFuture
 
class ::pw::transport::CloseFuture
 

Member Function Documentation

◆ MarkCompletedWhenSocketUnbound()

void pw::transport::internal::BaseSocketFuture::MarkCompletedWhenSocketUnbound ( )
inlineprotected

Marks a future that is not bound to a socket (e.g. an immediately resolved future where socket_ == nullptr) as complete. Because the socket doubles as the lock provider, without one, lock safety analysis has to be disabled to access core_.


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