1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #ifndef REMOTING_HOST_CLIENT_SESSION_DETAILS_H_
6 #define REMOTING_HOST_CLIENT_SESSION_DETAILS_H_
7 
8 #include <cstdint>
9 
10 namespace remoting {
11 
12 class ClientSessionControl;
13 
14 // Provides ClientSession control and state information to HostExtensions.
15 class ClientSessionDetails {
16  public:
~ClientSessionDetails()17   virtual ~ClientSessionDetails() {}
18 
19   // Returns a ClientSessionControl interface pointer used to interact with the
20   // current session.
21   virtual ClientSessionControl* session_control() = 0;
22 
23   // Returns the id of the current desktop session being remoted.  If no session
24   // exists, UINT32_MAX is returned.
25   // Note: The return value should never be cached as it can change.
26   virtual uint32_t desktop_session_id() const = 0;
27 };
28 
29 }  // namespace remoting
30 
31 #endif  // REMOTING_HOST_CLIENT_SESSION_DETAILS_H_
32