#include <stream_socket_transport.h>
mir::client::rpc::StreamSocketTransport::StreamSocketTransport |
( |
mir::Fd const & |
fd | ) |
|
mir::client::rpc::StreamSocketTransport::StreamSocketTransport |
( |
std::string const & |
socket_path | ) |
|
Dispatch one pending event.
- Parameters
-
[in] | event | The set of events current on the file-descriptor |
- Returns
- False iff no more events will be produced by this Dispatchable. Dispatch should no longer be called.
- Note
- This will dispatch at most one event. If there are multiple events specified in event (eg: readable | remote_closed) then dispatch will process only one.
-
It is harmless to call dispatch() with an event that does not contain any of the events from relevant_events(). The function will do nothing in such a case.
-
An implementation of dispatch() MUST handle FdEvent::error, if only to return false and terminate further event dispatch.
Implements mir::dispatch::Dispatchable.
void mir::client::rpc::StreamSocketTransport::receive_data |
( |
void * |
buffer, |
|
|
size_t |
bytes_requested |
|
) |
| |
|
overridevirtual |
Read data from the server.
- Parameters
-
[out] | buffer | Buffer to read into |
[in] | bytes_requested | Number of bytes to read |
- Exceptions
-
A | std::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] | buffer | Buffer to read into |
[in] | bytes_requested | Number of bytes to read |
[in,out] | fds | File descriptors received in this read. The value of fds.size() determines the number of file descriptors to receive. |
- Exceptions
-
A | std::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 | ) |
|
|
overridevirtual |
md::FdEvents mir::client::rpc::StreamSocketTransport::relevant_events |
( |
| ) |
const |
|
overridevirtual |
void mir::client::rpc::StreamSocketTransport::send_message |
( |
std::vector< uint8_t > const & |
buffer, |
|
|
std::vector< mir::Fd > const & |
fds |
|
) |
| |
|
overridevirtual |
Write message to the server.
- Parameters
-
[in] | buffer | Data to send |
[in] | fds | Fds to send |
- Exceptions
-
A | std::runtime_error if it is not possible to write the full contents of buffer to the server. |
Implements mir::client::rpc::StreamTransport.
void mir::client::rpc::StreamSocketTransport::unregister_observer |
( |
std::shared_ptr< Observer > const & |
observer | ) |
|
|
overridevirtual |
mir::Fd mir::client::rpc::StreamSocketTransport::watch_fd |
( |
| ) |
const |
|
overridevirtual |
The documentation for this class was generated from the following files:
Copyright © 2012-2015 Canonical Ltd.
Generated on Thu Sep 8 14:50:19 UTC 2016