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

Side by Side Diff: remoting/host/server_log_entry_host.cc

Issue 282063005: Pull out common code from client and host versions of ServerLogEntry. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright 2014 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 #include "remoting/host/server_log_entry_host.h"
6
7 #include "base/strings/stringize_macros.h"
8 #include "base/sys_info.h"
9 #include "remoting/protocol/server_log_entry.h"
10
11 using base::SysInfo;
12 using remoting::protocol::ServerLogEntry;
13
14 namespace remoting {
15
16 namespace {
17 const char kValueEventNameSessionState[] = "session-state";
18 const char kValueEventNameHeartbeat[] = "heartbeat";
19 const char kValueEventNameHostStatus[] = "host-status";
20
21 const char kValueRoleHost[] = "host";
22
23 const char kKeySessionState[] = "session-state";
24 const char kValueSessionStateConnected[] = "connected";
25 const char kValueSessionStateClosed[] = "closed";
26
27 const char kStatusName[] = "status";
28 const char kExitCodeName[] = "exit-code";
29
30 const char kKeyOsName[] = "os-name";
31
32 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
33 const char kKeyOsVersion[] = "os-version";
34 #endif
35
36 const char kKeyHostVersion[] = "host-version";
37
38 const char kKeyConnectionType[] = "connection-type";
39
40 const char* GetValueSessionState(bool connected) {
41 return connected ? kValueSessionStateConnected : kValueSessionStateClosed;
42 }
43
44 } // namespace
45
46 scoped_ptr<ServerLogEntry> MakeLogEntryForSessionStateChange(
47 bool connected) {
48 scoped_ptr<ServerLogEntry> entry(new ServerLogEntry());
49 entry->AddRoleField(kValueRoleHost);
50 entry->AddEventNameField(kValueEventNameSessionState);
51 entry->Set(kKeySessionState, GetValueSessionState(connected));
52 return entry.Pass();
53 }
54
55 scoped_ptr<ServerLogEntry> MakeLogEntryForHeartbeat() {
56 scoped_ptr<ServerLogEntry> entry(new ServerLogEntry());
57 entry->AddRoleField(kValueRoleHost);
58 entry->AddEventNameField(kValueEventNameHeartbeat);
59 return entry.Pass();
60 }
61
62 // static
63 scoped_ptr<ServerLogEntry> MakeLogEntryForHostStatus(
64 HostStatusSender::HostStatus host_status, HostExitCodes exit_code) {
65 scoped_ptr<ServerLogEntry> entry(new ServerLogEntry());
66 entry->AddRoleField(kValueRoleHost);
67 entry->AddEventNameField(kValueEventNameHostStatus);
68 entry->Set(kStatusName, HostStatusSender::HostStatusToString(host_status));
69 if (host_status == HostStatusSender::OFFLINE)
70 entry->Set(kExitCodeName, ExitCodeToString(exit_code));
71 return entry.Pass();
72 }
73
74 void AddHostFieldsToLogEntry(ServerLogEntry* entry) {
75 #if defined(OS_WIN)
76 entry->Set(kKeyOsName, "Windows");
77 #elif defined(OS_MACOSX)
78 entry->Set(kKeyOsName, "Mac");
79 #elif defined(OS_CHROMEOS)
80 entry->Set(kKeyOsName, "ChromeOS");
81 #elif defined(OS_LINUX)
82 entry->Set(kKeyOsName, "Linux");
83 #endif
84
85 // SysInfo::OperatingSystemVersionNumbers is only defined for the following
86 // OSes: see base/sys_info_unittest.cc.
87 #if defined(OS_WIN) || defined(OS_MACOSX) || defined(OS_CHROMEOS)
88 std::stringstream os_version;
89 int32 os_major_version = 0;
90 int32 os_minor_version = 0;
91 int32 os_bugfix_version = 0;
92 SysInfo::OperatingSystemVersionNumbers(&os_major_version, &os_minor_version,
93 &os_bugfix_version);
94 os_version << os_major_version << "." << os_minor_version << "."
95 << os_bugfix_version;
96 entry->Set(kKeyOsVersion, os_version.str());
97 #endif
98
99 entry->Set(kKeyHostVersion, STRINGIZE(VERSION));
100 entry->AddCpuField();
101 };
102
103 void AddConnectionTypeToLogEntry(ServerLogEntry* entry,
104 protocol::TransportRoute::RouteType type) {
105 entry->Set(kKeyConnectionType, protocol::TransportRoute::GetTypeString(type));
106 }
107
108 } // namespace remoting
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698