Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(179)

Side by Side Diff: chromeos/arc/libarcbridge/arc_bridge.h

Issue 1424503002: arc-bridge: Add IPC message definitions (Closed) Base URL: https://chromium.googlesource.com/a/chromium/src.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
satorux1 2015/10/23 05:16:43 Can we drop 'lib' from the directory name? Directo
Luis Héctor Chávez 2015/10/23 17:09:24 The reason for the separation is that I need to ha
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
satorux1 2015/10/23 05:16:43 Because the concept of ARC Bridge is not obvious,
Luis Héctor Chávez 2015/10/23 17:09:24 Done.
4
5 #ifndef CHROMEOS_ARC_LIBARCBRIDGE_ARC_ARC_BRIDGE_H_
6 #define CHROMEOS_ARC_LIBARCBRIDGE_ARC_ARC_BRIDGE_H_
7
8 #include "base/macros.h"
9 #include "ipc/ipc_channel_proxy.h"
10 #include "ipc/ipc_listener.h"
11 #include "ipc/ipc_message.h"
12
13 namespace arc {
14
15 // Abstract class that represents one of the ARC bridge endpoints.
16 class BridgeEndpoint : public IPC::Listener {
17 public:
18 BridgeEndpoint();
19 virtual ~BridgeEndpoint();
20
21 bool Connect(const IPC::ChannelHandle& handle, IPC::Channel::Mode mode);
satorux1 2015/10/23 05:16:43 function comment is missing. Please fix other plac
Luis Héctor Chávez 2015/10/23 17:09:24 Done.
22
23 protected:
24 scoped_ptr<IPC::ChannelProxy> channel_;
25
26 private:
27 base::Thread io_thread_;
satorux1 2015/10/23 05:16:43 "IO thread" in Chrome usually means BrowserThread:
Luis Héctor Chávez 2015/10/23 17:09:24 Done.
28
29 DISALLOW_COPY_AND_ASSIGN(BridgeEndpoint);
30 };
31
32 // Instance side of the ARC bridge.
33 class BridgeInstanceEndpoint : public BridgeEndpoint {
34 public:
35 BridgeInstanceEndpoint();
36 virtual ~BridgeInstanceEndpoint();
37
38 bool SocketConnect(const char* socket_path);
satorux1 2015/10/23 05:16:43 How about const std::string&? I guess NULL is not
Luis Héctor Chávez 2015/10/23 17:09:24 Done.
39
40 // Messages from the instance to the host.
41 bool InstanceReady();
42
43 private:
44 bool OnMessageReceived(const IPC::Message& message) override;
45 void OnPing();
46 virtual void OnRegisterInputDevice(const std::string& name,
47 const std::string& device_type,
48 base::FileDescriptor fd) = 0;
49
50 DISALLOW_COPY_AND_ASSIGN(BridgeInstanceEndpoint);
51 };
52
53 // Host side of the ARC bridge.
54 class BridgeHostEndpoint : public BridgeEndpoint {
55 public:
56 BridgeHostEndpoint();
57 virtual ~BridgeHostEndpoint();
58
59 bool SocketConnect(const char* socket_path);
60
61 // Messages from the host to the instance.
62 bool Ping();
63 bool RegisterInputDevice(const std::string& name,
64 const std::string& device_type,
65 base::ScopedFD fd);
66
67 private:
68 bool OnMessageReceived(const IPC::Message& message) override;
69 virtual void OnInstanceReady() = 0;
70 virtual void OnPong() = 0;
71
72 DISALLOW_COPY_AND_ASSIGN(BridgeHostEndpoint);
73 };
74
75 } // namespace arc
76
77 #endif // CHROMEOS_ARC_LIBARCBRIDGE_ARC_ARC_BRIDGE_H_
OLDNEW
« no previous file with comments | « no previous file | chromeos/arc/libarcbridge/arc_bridge.cc » ('j') | chromeos/arc/libarcbridge/arc_bridge.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698