Mir
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | List of all members
mir::client::rpc::StreamSocketTransport Class Reference

#include <stream_socket_transport.h>

Inheritance diagram for mir::client::rpc::StreamSocketTransport:
[legend]

Public Member Functions

 StreamSocketTransport (Fd const &fd)
 
 StreamSocketTransport (std::string const &socket_path)
 
 ~StreamSocketTransport () override
 
void register_observer (std::shared_ptr< Observer > const &observer) override
 
void receive_data (void *buffer, size_t bytes_requested) override
 Read data from the server. More...
 
void receive_data (void *buffer, size_t bytes_requested, std::vector< Fd > &fds) override
 Read data and file descriptors from the server. More...
 
void send_data (const std::vector< uint8_t > &buffer) override
 Write data to the server. More...
 
- Public Member Functions inherited from mir::client::rpc::StreamTransport
virtual ~StreamTransport ()=default
 
 StreamTransport ()=default
 
 StreamTransport (StreamTransport const &)=delete
 
StreamTransportoperator= (StreamTransport const &)=delete
 
virtual void register_observer (std::shared_ptr< Observer > const &observer)=0
 Register an IO observer. More...
 

Constructor & Destructor Documentation

mir::client::rpc::StreamSocketTransport::StreamSocketTransport ( mir::Fd const &  fd)
mir::client::rpc::StreamSocketTransport::StreamSocketTransport ( std::string const &  socket_path)
mir::client::rpc::StreamSocketTransport::~StreamSocketTransport ( )
override

Member Function Documentation

void mir::client::rpc::StreamSocketTransport::receive_data ( void *  buffer,
size_t  bytes_requested 
)
overridevirtual

Read data from the server.

Parameters
[out]bufferBuffer to read into
[in]bytes_requestedNumber of bytes to read
Exceptions
Astd::runtime_error if it is not possible to read read_bytes bytes from the server.
Note
This provides stream semantics - message boundaries are not preserved.

Implements mir::client::rpc::StreamTransport.

void mir::client::rpc::StreamSocketTransport::receive_data ( void *  buffer,
size_t  bytes_requested,
std::vector< Fd > &  fds 
)
overridevirtual

Read data and file descriptors from the server.

Parameters
[out]bufferBuffer to read into
[in]bytes_requestedNumber of bytes to read
[in,out]fdsFile descriptors received in this read. The value of fds.size() determines the number of file descriptors to receive.
Exceptions
Astd::runtime_error if it is not possible to read read_bytes bytes from the server or if it is not possible to read fds.size() file descriptors from the server.
Note
This provides stream semantics - message boundaries are not preserved.

Implements mir::client::rpc::StreamTransport.

void mir::client::rpc::StreamSocketTransport::register_observer ( std::shared_ptr< Observer > const &  observer)
override
void mir::client::rpc::StreamSocketTransport::send_data ( const std::vector< uint8_t > &  buffer)
overridevirtual

Write data to the server.

Parameters
[in]bufferData to send
Exceptions
Astd::runtime_error if it is not possible to write the full contents of buffer to the server.

Implements mir::client::rpc::StreamTransport.


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

Copyright © 2012,2013 Canonical Ltd.
Generated on Fri Oct 10 14:07:14 UTC 2014