OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "remoting/host/server_log_entry.h" | 5 #include "remoting/host/server_log_entry.h" |
6 | 6 |
7 #include "base/sys_info.h" | 7 #include "base/sys_info.h" |
8 #include "remoting/base/constants.h" | 8 #include "remoting/base/constants.h" |
9 #include "remoting/protocol/session.h" | 9 #include "remoting/protocol/session.h" |
10 #include "third_party/libjingle/source/talk/xmllite/xmlelement.h" | 10 #include "third_party/libjingle/source/talk/xmllite/xmlelement.h" |
11 | 11 |
12 using base::SysInfo; | 12 using base::SysInfo; |
13 using buzz::QName; | 13 using buzz::QName; |
14 using buzz::XmlElement; | 14 using buzz::XmlElement; |
15 using remoting::protocol::Session; | 15 using remoting::protocol::Session; |
16 | 16 |
17 namespace remoting { | 17 namespace remoting { |
18 | 18 |
19 namespace { | 19 namespace { |
| 20 const char kLogCommand[] = "log"; |
| 21 |
20 const char kLogEntry[] = "entry"; | 22 const char kLogEntry[] = "entry"; |
21 | 23 |
22 const char kKeyEventName[] = "event-name"; | 24 const char kKeyEventName[] = "event-name"; |
23 const char kValueEventNameSessionState[] = "session-state"; | 25 const char kValueEventNameSessionState[] = "session-state"; |
| 26 const char kValueEventNameHeartbeat[] = "heartbeat"; |
24 | 27 |
25 const char kKeyRole[] = "role"; | 28 const char kKeyRole[] = "role"; |
26 const char kValueRoleHost[] = "host"; | 29 const char kValueRoleHost[] = "host"; |
27 | 30 |
28 const char kKeyMode[] = "mode"; | 31 const char kKeyMode[] = "mode"; |
29 const char kValueModeIt2Me[] = "it2me"; | 32 const char kValueModeIt2Me[] = "it2me"; |
30 const char kValueModeMe2Me[] = "me2me"; | 33 const char kValueModeMe2Me[] = "me2me"; |
31 | 34 |
32 const char kKeySessionState[] = "session-state"; | 35 const char kKeySessionState[] = "session-state"; |
33 const char kValueSessionStateConnected[] = "connected"; | 36 const char kValueSessionStateConnected[] = "connected"; |
(...skipping 12 matching lines...) Expand all Loading... |
46 const char kKeyConnectionType[] = "connection-type"; | 49 const char kKeyConnectionType[] = "connection-type"; |
47 | 50 |
48 } // namespace | 51 } // namespace |
49 | 52 |
50 ServerLogEntry::ServerLogEntry() { | 53 ServerLogEntry::ServerLogEntry() { |
51 } | 54 } |
52 | 55 |
53 ServerLogEntry::~ServerLogEntry() { | 56 ServerLogEntry::~ServerLogEntry() { |
54 } | 57 } |
55 | 58 |
| 59 // static |
| 60 scoped_ptr<buzz::XmlElement> ServerLogEntry::MakeStanza() { |
| 61 return scoped_ptr<buzz::XmlElement>( |
| 62 new XmlElement(QName(kChromotingXmlNamespace, kLogCommand))); |
| 63 } |
| 64 |
| 65 // static |
56 ServerLogEntry* ServerLogEntry::MakeSessionStateChange(bool connected) { | 66 ServerLogEntry* ServerLogEntry::MakeSessionStateChange(bool connected) { |
57 ServerLogEntry* entry = new ServerLogEntry(); | 67 ServerLogEntry* entry = new ServerLogEntry(); |
58 entry->Set(kKeyRole, kValueRoleHost); | 68 entry->Set(kKeyRole, kValueRoleHost); |
59 entry->Set(kKeyEventName, kValueEventNameSessionState); | 69 entry->Set(kKeyEventName, kValueEventNameSessionState); |
60 entry->Set(kKeySessionState, GetValueSessionState(connected)); | 70 entry->Set(kKeySessionState, GetValueSessionState(connected)); |
61 return entry; | 71 return entry; |
62 } | 72 } |
63 | 73 |
| 74 // static |
| 75 ServerLogEntry* ServerLogEntry::MakeForHeartbeat() { |
| 76 ServerLogEntry* entry = new ServerLogEntry(); |
| 77 entry->Set(kKeyRole, kValueRoleHost); |
| 78 entry->Set(kKeyEventName, kValueEventNameHeartbeat); |
| 79 return entry; |
| 80 } |
| 81 |
64 void ServerLogEntry::AddHostFields() { | 82 void ServerLogEntry::AddHostFields() { |
65 #if defined(OS_WIN) | 83 #if defined(OS_WIN) |
66 Set(kKeyOsName, kValueOsNameWindows); | 84 Set(kKeyOsName, kValueOsNameWindows); |
67 #elif defined(OS_MACOSX) | 85 #elif defined(OS_MACOSX) |
68 Set(kKeyOsName, kValueOsNameMac); | 86 Set(kKeyOsName, kValueOsNameMac); |
69 #elif defined(OS_CHROMEOS) | 87 #elif defined(OS_CHROMEOS) |
70 Set(kKeyOsName, kValueOsNameChromeOS); | 88 Set(kKeyOsName, kValueOsNameChromeOS); |
71 #elif defined(OS_LINUX) | 89 #elif defined(OS_LINUX) |
72 Set(kKeyOsName, kValueOsNameLinux); | 90 Set(kKeyOsName, kValueOsNameLinux); |
73 #endif | 91 #endif |
(...skipping 17 matching lines...) Expand all Loading... |
91 | 109 |
92 void ServerLogEntry::AddModeField(ServerLogEntry::Mode mode) { | 110 void ServerLogEntry::AddModeField(ServerLogEntry::Mode mode) { |
93 Set(kKeyMode, GetValueMode(mode)); | 111 Set(kKeyMode, GetValueMode(mode)); |
94 } | 112 } |
95 | 113 |
96 void ServerLogEntry::AddConnectionTypeField( | 114 void ServerLogEntry::AddConnectionTypeField( |
97 protocol::TransportRoute::RouteType type) { | 115 protocol::TransportRoute::RouteType type) { |
98 Set(kKeyConnectionType, protocol::TransportRoute::GetTypeString(type)); | 116 Set(kKeyConnectionType, protocol::TransportRoute::GetTypeString(type)); |
99 } | 117 } |
100 | 118 |
| 119 // static |
101 const char* ServerLogEntry::GetValueMode(ServerLogEntry::Mode mode) { | 120 const char* ServerLogEntry::GetValueMode(ServerLogEntry::Mode mode) { |
102 switch(mode) { | 121 switch(mode) { |
103 case IT2ME: | 122 case IT2ME: |
104 return kValueModeIt2Me; | 123 return kValueModeIt2Me; |
105 case ME2ME: | 124 case ME2ME: |
106 return kValueModeMe2Me; | 125 return kValueModeMe2Me; |
107 default: | 126 default: |
108 NOTREACHED(); | 127 NOTREACHED(); |
109 return NULL; | 128 return NULL; |
110 } | 129 } |
111 } | 130 } |
112 | 131 |
113 scoped_ptr<XmlElement> ServerLogEntry::ToStanza() const { | 132 scoped_ptr<XmlElement> ServerLogEntry::ToStanza() const { |
114 scoped_ptr<XmlElement> stanza(new XmlElement(QName( | 133 scoped_ptr<XmlElement> stanza(new XmlElement(QName( |
115 kChromotingXmlNamespace, kLogEntry))); | 134 kChromotingXmlNamespace, kLogEntry))); |
116 ValuesMap::const_iterator iter; | 135 ValuesMap::const_iterator iter; |
117 for (iter = values_map_.begin(); iter != values_map_.end(); ++iter) { | 136 for (iter = values_map_.begin(); iter != values_map_.end(); ++iter) { |
118 stanza->AddAttr(QName("", iter->first), iter->second); | 137 stanza->AddAttr(QName("", iter->first), iter->second); |
119 } | 138 } |
120 return stanza.Pass(); | 139 return stanza.Pass(); |
121 } | 140 } |
122 | 141 |
| 142 // static |
123 const char* ServerLogEntry::GetValueSessionState(bool connected) { | 143 const char* ServerLogEntry::GetValueSessionState(bool connected) { |
124 return connected ? kValueSessionStateConnected : kValueSessionStateClosed; | 144 return connected ? kValueSessionStateConnected : kValueSessionStateClosed; |
125 } | 145 } |
126 | 146 |
127 void ServerLogEntry::Set(const std::string& key, const std::string& value) { | 147 void ServerLogEntry::Set(const std::string& key, const std::string& value) { |
128 values_map_[key] = value; | 148 values_map_[key] = value; |
129 } | 149 } |
130 | 150 |
131 } // namespace remoting | 151 } // namespace remoting |
OLD | NEW |