Skip to main content
Pigweed's logo Pigweed
code_xml
  1. Home
  2. Reference
  3. C/C++
  4. pw::rpc2::internal::RequestReservationBase< Committed > Class Template Reference
Loading...
Searching...
No Matches
pw::rpc2::internal::RequestReservationBase< Committed > Class Template Reference

Overview

template<typename Committed>
class pw::rpc2::internal::RequestReservationBase< Committed >

Shared implementation of UnaryReservation and ServerStreamReservation. Commit() returns Committed: the call's ResponseFuture or Reader.

Inheritance diagram for pw::rpc2::internal::RequestReservationBase< Committed >:
pw::rpc2::internal::WriteReservationBase pw::rpc2::ServerStreamReservation< Response > pw::rpc2::UnaryReservation< Response >

Public Member Functions

 RequestReservationBase (const RequestReservationBase &)=delete
 
RequestReservationBase & operator= (const RequestReservationBase &)=delete
 
RpcResult< Committed > Commit (size_t size_bytes)
 
- Public Member Functions inherited from pw::rpc2::internal::WriteReservationBase
 WriteReservationBase (const WriteReservationBase &)=delete
 
WriteReservationBase & operator= (const WriteReservationBase &)=delete
 
 WriteReservationBase (WriteReservationBase &&other) noexcept=default
 
WriteReservationBase & operator= (WriteReservationBase &&other) noexcept
 
std::byte * data ()
 Returns a pointer to the start of the reserved write buffer.
 
const std::byte * data () const
 
size_t size () const
 Returns the size of the reserved write buffer in bytes.
 
std::byte & operator[] (size_t index)
 Accesses the byte at index.
 
const std::byte & operator[] (size_t index) const
 
iterator begin ()
 Returns an iterator to the beginning of the reserved buffer.
 
const_iterator begin () const
 
const_iterator cbegin () const
 
iterator end ()
 Returns an iterator to the end of the reserved buffer.
 
const_iterator end () const
 
const_iterator cend () const
 
void Drop ()
 Releases the reservation without sending any data.
 

Protected Member Functions

 RequestReservationBase (WriteReservation &&reservation)
 
 RequestReservationBase (RequestReservationBase &&) noexcept=default
 
RequestReservationBase & operator= (RequestReservationBase &&) noexcept=default
 
- Protected Member Functions inherited from pw::rpc2::internal::WriteReservationBase
 WriteReservationBase (transport::WriteReservation &&reservation, OutboundPacket packet, IntrusivePtr< Call > call)
 
RpcResult< IntrusivePtr< Call > > CommitAndTakeCall (size_t size_bytes)
 

Additional Inherited Members

- Public Types inherited from pw::rpc2::internal::WriteReservationBase
using iterator = ByteSpan::iterator
 
using const_iterator = ConstByteSpan::iterator
 

Member Function Documentation

◆ Commit()

template<typename Committed >
RpcResult< Committed > pw::rpc2::internal::RequestReservationBase< Committed >::Commit ( size_t  size_bytes)
inline

Sends the first size_bytes bytes of the reserved buffer as the request and returns the future or reader for the server's response(s).

Consumes the reservation; it cannot be used or committed again. size_bytes must not exceed size().

Returns
  • kOk with the call's response future or reader once the request is queued for transmission.
  • kWriteClosed: this reservation was already committed, dropped, or moved from.
  • The call's completion status if the call ended while the reservation was held (for example, kDisconnected because its connection closed). See Error handling.
  • kDisconnected: the connection closed before the request could be sent.

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