~alan-griffiths/mir/fix-1654023

« back to all changes in this revision

Viewing changes to src/server/frontend/session_mediator.h

  • Committer: Daniel van Vugt
  • Date: 2015-04-28 07:54:10 UTC
  • mfrom: (2517 development-branch)
  • mto: This revision was merged to the branch mainline in revision 2673.
  • Revision ID: daniel.van.vugt@canonical.com-20150428075410-rwskshfuar7voesp
Merge latest trunk and fix conflicts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
#include "display_server.h"
23
23
#include "mir/frontend/connection_context.h"
24
24
#include "mir/frontend/surface_id.h"
 
25
#include "mir/frontend/buffer_stream_id.h"
25
26
#include "mir/graphics/platform_ipc_operations.h"
26
27
#include "mir_toolkit/common.h"
27
 
#include "surface_tracker.h"
 
28
#include "buffer_stream_tracker.h"
28
29
 
29
30
#include <functional>
30
31
#include <memory>
63
64
class DisplayChanger;
64
65
class Screencast;
65
66
class PromptSession;
 
67
class BufferStream;
66
68
 
67
69
// SessionMediator relays requests from the client process into the server.
68
70
class SessionMediator : public detail::DisplayServer, public mir::protobuf::Debug
124
126
                           mir::protobuf::SurfaceSetting*,
125
127
                           google::protobuf::Closure* done) override;
126
128
 
 
129
    void modify_surface(google::protobuf::RpcController*,
 
130
                        const mir::protobuf::SurfaceModifications*,
 
131
                        mir::protobuf::Void*,
 
132
                        google::protobuf::Closure*) override;
 
133
 
127
134
    void configure_display(::google::protobuf::RpcController* controller,
128
135
                           const ::mir::protobuf::DisplayConfiguration* request,
129
136
                           ::mir::protobuf::DisplayConfiguration* response,
144
151
                           mir::protobuf::Buffer*,
145
152
                           google::protobuf::Closure* done) override;
146
153
 
 
154
    void create_buffer_stream(google::protobuf::RpcController*,
 
155
                              mir::protobuf::BufferStreamParameters const*,
 
156
                              mir::protobuf::BufferStream*,
 
157
                              google::protobuf::Closure* done) override;
 
158
    void release_buffer_stream(google::protobuf::RpcController*,
 
159
                               mir::protobuf::BufferStreamId const*,
 
160
                               mir::protobuf::Void*,
 
161
                               google::protobuf::Closure* done) override;
 
162
 
147
163
    void configure_cursor(google::protobuf::RpcController*,
148
164
                          mir::protobuf::CursorSetting const*,
149
165
                          mir::protobuf::Void*,
190
206
                              graphics::BufferIpcMsgType msg_type);
191
207
 
192
208
    void advance_buffer(
193
 
        SurfaceId surf_id,
194
 
        Surface& surface,
 
209
        BufferStreamId surf_id,
 
210
        BufferStream& buffer_stream,
 
211
        graphics::Buffer* old_buffer,
 
212
        std::unique_lock<std::mutex>& lock,
195
213
        std::function<void(graphics::Buffer*, graphics::BufferIpcMsgType)> complete);
196
214
 
197
215
    virtual std::function<void(std::shared_ptr<Session> const&)> prompt_session_connect_handler() const;
211
229
    std::shared_ptr<input::CursorImages> const cursor_images;
212
230
    std::shared_ptr<scene::CoordinateTranslator> const translator;
213
231
 
214
 
    SurfaceTracker surface_tracker;
 
232
    BufferStreamTracker buffer_stream_tracker;
215
233
 
216
234
    std::mutex session_mutex;
217
235
    std::weak_ptr<Session> weak_session;