Mir
Public Member Functions | List of all members
mir::frontend::SessionMediator Class Reference

SessionMediator relays requests from the client process into the server. More...

#include <session_mediator.h>

Inheritance diagram for mir::frontend::SessionMediator:
[legend]

Public Member Functions

 SessionMediator (std::shared_ptr< Shell > const &shell, std::shared_ptr< graphics::PlatformIpcOperations > const &ipc_operations, std::shared_ptr< frontend::DisplayChanger > const &display_changer, std::vector< MirPixelFormat > const &surface_pixel_formats, std::shared_ptr< SessionMediatorReport > const &report, std::shared_ptr< EventSinkFactory > const &sink_factory, std::shared_ptr< MessageSender > const &message_sender, std::shared_ptr< MessageResourceCache > const &resource_cache, std::shared_ptr< Screencast > const &screencast, ConnectionContext const &connection_context, std::shared_ptr< input::CursorImages > const &cursor_images, std::shared_ptr< scene::CoordinateTranslator > const &translator, std::shared_ptr< scene::ApplicationNotRespondingDetector > const &anr_detector)
 
 ~SessionMediator () noexcept
 
void client_pid (int pid) override
 
void connect (mir::protobuf::ConnectParameters const *request, mir::protobuf::Connection *response, google::protobuf::Closure *done) override
 
void disconnect (mir::protobuf::Void const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void create_surface (mir::protobuf::SurfaceParameters const *request, mir::protobuf::Surface *response, google::protobuf::Closure *done) override
 
void modify_surface (mir::protobuf::SurfaceModifications const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void next_buffer (mir::protobuf::SurfaceId const *request, mir::protobuf::Buffer *response, google::protobuf::Closure *done) override
 
void release_surface (mir::protobuf::SurfaceId const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void platform_operation (mir::protobuf::PlatformOperationMessage const *request, mir::protobuf::PlatformOperationMessage *response, google::protobuf::Closure *done) override
 
void configure_surface (mir::protobuf::SurfaceSetting const *request, mir::protobuf::SurfaceSetting *response, google::protobuf::Closure *done) override
 
void configure_display (mir::protobuf::DisplayConfiguration const *request, mir::protobuf::DisplayConfiguration *response, google::protobuf::Closure *done) override
 
void create_screencast (mir::protobuf::ScreencastParameters const *request, mir::protobuf::Screencast *response, google::protobuf::Closure *done) override
 
void screencast_buffer (mir::protobuf::ScreencastId const *request, mir::protobuf::Buffer *response, google::protobuf::Closure *done) override
 
void release_screencast (mir::protobuf::ScreencastId const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void create_buffer_stream (mir::protobuf::BufferStreamParameters const *request, mir::protobuf::BufferStream *response, google::protobuf::Closure *done) override
 
void release_buffer_stream (mir::protobuf::BufferStreamId const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void configure_cursor (mir::protobuf::CursorSetting const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void new_fds_for_prompt_providers (mir::protobuf::SocketFDRequest const *request, mir::protobuf::SocketFD *response, google::protobuf::Closure *done) override
 
void start_prompt_session (mir::protobuf::PromptSessionParameters const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void stop_prompt_session (mir::protobuf::Void const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void exchange_buffer (mir::protobuf::BufferRequest const *request, mir::protobuf::Buffer *response, google::protobuf::Closure *done) override
 
void submit_buffer (mir::protobuf::BufferRequest const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void allocate_buffers (mir::protobuf::BufferAllocation const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void release_buffers (mir::protobuf::BufferRelease const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void request_persistent_surface_id (mir::protobuf::SurfaceId const *request, mir::protobuf::PersistentSurfaceId *response, google::protobuf::Closure *done) override
 
void pong (mir::protobuf::PingEvent const *request, mir::protobuf::Void *response, google::protobuf::Closure *done) override
 
void configure_buffer_stream (mir::protobuf::StreamConfiguration const *request, mir::protobuf::Void *, google::protobuf::Closure *done) override
 
void translate_surface_to_screen (mir::protobuf::CoordinateTranslationRequest const *request, mir::protobuf::CoordinateTranslationResponse *response, google::protobuf::Closure *done) override
 
- Public Member Functions inherited from mir::protobuf::DisplayServer
virtual ~DisplayServer ()=default
 
- Public Member Functions inherited from mir::protobuf::DisplayServerDebug
virtual ~DisplayServerDebug ()=default
 

Additional Inherited Members

- Protected Member Functions inherited from mir::protobuf::DisplayServer
 DisplayServer ()=default
 
- Protected Member Functions inherited from mir::protobuf::DisplayServerDebug
 DisplayServerDebug ()=default
 

Detailed Description

SessionMediator relays requests from the client process into the server.

Each SessionMediator is associated with exactly one client socket connection, and visa versa.

Note
SessionMediator is not reentrant. If two threads want to process events on a client socket at the same time they must perform their own locking.

Constructor & Destructor Documentation

mir::frontend::SessionMediator::SessionMediator ( std::shared_ptr< Shell > const &  shell,
std::shared_ptr< graphics::PlatformIpcOperations > const &  ipc_operations,
std::shared_ptr< frontend::DisplayChanger > const &  display_changer,
std::vector< MirPixelFormat > const &  surface_pixel_formats,
std::shared_ptr< SessionMediatorReport > const &  report,
std::shared_ptr< EventSinkFactory > const &  sink_factory,
std::shared_ptr< MessageSender > const &  message_sender,
std::shared_ptr< MessageResourceCache > const &  resource_cache,
std::shared_ptr< Screencast > const &  screencast,
ConnectionContext const &  connection_context,
std::shared_ptr< input::CursorImages > const &  cursor_images,
std::shared_ptr< scene::CoordinateTranslator > const &  translator,
std::shared_ptr< scene::ApplicationNotRespondingDetector > const &  anr_detector 
)
mir::frontend::SessionMediator::~SessionMediator ( )
noexcept

Member Function Documentation

void mir::frontend::SessionMediator::allocate_buffers ( mir::protobuf::BufferAllocation const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::client_pid ( int  pid)
overridevirtual
void mir::frontend::SessionMediator::configure_buffer_stream ( mir::protobuf::StreamConfiguration const *  request,
mir::protobuf::Void *  ,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::configure_cursor ( mir::protobuf::CursorSetting const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::configure_display ( mir::protobuf::DisplayConfiguration const *  request,
mir::protobuf::DisplayConfiguration *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::configure_surface ( mir::protobuf::SurfaceSetting const *  request,
mir::protobuf::SurfaceSetting *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::connect ( mir::protobuf::ConnectParameters const *  request,
mir::protobuf::Connection *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::create_buffer_stream ( mir::protobuf::BufferStreamParameters const *  request,
mir::protobuf::BufferStream *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::create_screencast ( mir::protobuf::ScreencastParameters const *  request,
mir::protobuf::Screencast *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::create_surface ( mir::protobuf::SurfaceParameters const *  request,
mir::protobuf::Surface *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::disconnect ( mir::protobuf::Void const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::exchange_buffer ( mir::protobuf::BufferRequest const *  request,
mir::protobuf::Buffer *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::modify_surface ( mir::protobuf::SurfaceModifications const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::new_fds_for_prompt_providers ( mir::protobuf::SocketFDRequest const *  request,
mir::protobuf::SocketFD *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::next_buffer ( mir::protobuf::SurfaceId const *  request,
mir::protobuf::Buffer *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::platform_operation ( mir::protobuf::PlatformOperationMessage const *  request,
mir::protobuf::PlatformOperationMessage *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::pong ( mir::protobuf::PingEvent const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::release_buffer_stream ( mir::protobuf::BufferStreamId const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::release_buffers ( mir::protobuf::BufferRelease const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::release_screencast ( mir::protobuf::ScreencastId const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::release_surface ( mir::protobuf::SurfaceId const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::request_persistent_surface_id ( mir::protobuf::SurfaceId const *  request,
mir::protobuf::PersistentSurfaceId *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::screencast_buffer ( mir::protobuf::ScreencastId const *  request,
mir::protobuf::Buffer *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::start_prompt_session ( mir::protobuf::PromptSessionParameters const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::stop_prompt_session ( mir::protobuf::Void const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::submit_buffer ( mir::protobuf::BufferRequest const *  request,
mir::protobuf::Void *  response,
google::protobuf::Closure *  done 
)
overridevirtual
void mir::frontend::SessionMediator::translate_surface_to_screen ( mir::protobuf::CoordinateTranslationRequest const *  request,
mir::protobuf::CoordinateTranslationResponse *  response,
google::protobuf::Closure *  done 
)
overridevirtual

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

Copyright © 2012-2015 Canonical Ltd.
Generated on Thu Oct 8 16:20:16 UTC 2015