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

Side by Side Diff: content/browser/renderer_host/websocket_host.cc

Issue 791923003: replace COMPILE_ASSERT with static_assert in content/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixups Created 5 years, 11 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/browser/renderer_host/websocket_host.h" 5 #include "content/browser/renderer_host/websocket_host.h"
6 6
7 #include "base/basictypes.h" 7 #include "base/basictypes.h"
8 #include "base/memory/weak_ptr.h" 8 #include "base/memory/weak_ptr.h"
9 #include "base/strings/string_util.h" 9 #include "base/strings/string_util.h"
10 #include "content/browser/renderer_host/websocket_dispatcher_host.h" 10 #include "content/browser/renderer_host/websocket_dispatcher_host.h"
(...skipping 22 matching lines...) Expand all
33 // Convert a content::WebSocketMessageType to a 33 // Convert a content::WebSocketMessageType to a
34 // net::WebSocketFrameHeader::OpCode 34 // net::WebSocketFrameHeader::OpCode
35 net::WebSocketFrameHeader::OpCode MessageTypeToOpCode( 35 net::WebSocketFrameHeader::OpCode MessageTypeToOpCode(
36 WebSocketMessageType type) { 36 WebSocketMessageType type) {
37 DCHECK(type == WEB_SOCKET_MESSAGE_TYPE_CONTINUATION || 37 DCHECK(type == WEB_SOCKET_MESSAGE_TYPE_CONTINUATION ||
38 type == WEB_SOCKET_MESSAGE_TYPE_TEXT || 38 type == WEB_SOCKET_MESSAGE_TYPE_TEXT ||
39 type == WEB_SOCKET_MESSAGE_TYPE_BINARY); 39 type == WEB_SOCKET_MESSAGE_TYPE_BINARY);
40 typedef net::WebSocketFrameHeader::OpCode OpCode; 40 typedef net::WebSocketFrameHeader::OpCode OpCode;
41 // These compile asserts verify that the same underlying values are used for 41 // These compile asserts verify that the same underlying values are used for
42 // both types, so we can simply cast between them. 42 // both types, so we can simply cast between them.
43 COMPILE_ASSERT(static_cast<OpCode>(WEB_SOCKET_MESSAGE_TYPE_CONTINUATION) == 43 static_assert(static_cast<OpCode>(WEB_SOCKET_MESSAGE_TYPE_CONTINUATION) ==
44 net::WebSocketFrameHeader::kOpCodeContinuation, 44 net::WebSocketFrameHeader::kOpCodeContinuation,
45 enum_values_must_match_for_opcode_continuation); 45 "enum values must match for opcode continuation");
46 COMPILE_ASSERT(static_cast<OpCode>(WEB_SOCKET_MESSAGE_TYPE_TEXT) == 46 static_assert(static_cast<OpCode>(WEB_SOCKET_MESSAGE_TYPE_TEXT) ==
47 net::WebSocketFrameHeader::kOpCodeText, 47 net::WebSocketFrameHeader::kOpCodeText,
48 enum_values_must_match_for_opcode_text); 48 "enum values must match for opcode text");
49 COMPILE_ASSERT(static_cast<OpCode>(WEB_SOCKET_MESSAGE_TYPE_BINARY) == 49 static_assert(static_cast<OpCode>(WEB_SOCKET_MESSAGE_TYPE_BINARY) ==
50 net::WebSocketFrameHeader::kOpCodeBinary, 50 net::WebSocketFrameHeader::kOpCodeBinary,
51 enum_values_must_match_for_opcode_binary); 51 "enum values must match for opcode binary");
52 return static_cast<OpCode>(type); 52 return static_cast<OpCode>(type);
53 } 53 }
54 54
55 WebSocketMessageType OpCodeToMessageType( 55 WebSocketMessageType OpCodeToMessageType(
56 net::WebSocketFrameHeader::OpCode opCode) { 56 net::WebSocketFrameHeader::OpCode opCode) {
57 DCHECK(opCode == net::WebSocketFrameHeader::kOpCodeContinuation || 57 DCHECK(opCode == net::WebSocketFrameHeader::kOpCodeContinuation ||
58 opCode == net::WebSocketFrameHeader::kOpCodeText || 58 opCode == net::WebSocketFrameHeader::kOpCodeText ||
59 opCode == net::WebSocketFrameHeader::kOpCodeBinary); 59 opCode == net::WebSocketFrameHeader::kOpCodeBinary);
60 // This cast is guaranteed valid by the COMPILE_ASSERT() statements above. 60 // This cast is guaranteed valid by the static_assert() statements above.
61 return static_cast<WebSocketMessageType>(opCode); 61 return static_cast<WebSocketMessageType>(opCode);
62 } 62 }
63 63
64 ChannelState StateCast(WebSocketDispatcherHost::WebSocketHostState host_state) { 64 ChannelState StateCast(WebSocketDispatcherHost::WebSocketHostState host_state) {
65 const WebSocketDispatcherHost::WebSocketHostState WEBSOCKET_HOST_ALIVE = 65 const WebSocketDispatcherHost::WebSocketHostState WEBSOCKET_HOST_ALIVE =
66 WebSocketDispatcherHost::WEBSOCKET_HOST_ALIVE; 66 WebSocketDispatcherHost::WEBSOCKET_HOST_ALIVE;
67 const WebSocketDispatcherHost::WebSocketHostState WEBSOCKET_HOST_DELETED = 67 const WebSocketDispatcherHost::WebSocketHostState WEBSOCKET_HOST_DELETED =
68 WebSocketDispatcherHost::WEBSOCKET_HOST_DELETED; 68 WebSocketDispatcherHost::WEBSOCKET_HOST_DELETED;
69 69
70 DCHECK(host_state == WEBSOCKET_HOST_ALIVE || 70 DCHECK(host_state == WEBSOCKET_HOST_ALIVE ||
71 host_state == WEBSOCKET_HOST_DELETED); 71 host_state == WEBSOCKET_HOST_DELETED);
72 // These compile asserts verify that we can get away with using static_cast<> 72 // These compile asserts verify that we can get away with using static_cast<>
73 // for the conversion. 73 // for the conversion.
74 COMPILE_ASSERT(static_cast<ChannelState>(WEBSOCKET_HOST_ALIVE) == 74 static_assert(static_cast<ChannelState>(WEBSOCKET_HOST_ALIVE) ==
75 net::WebSocketEventInterface::CHANNEL_ALIVE, 75 net::WebSocketEventInterface::CHANNEL_ALIVE,
76 enum_values_must_match_for_state_alive); 76 "enum values must match for state_alive");
77 COMPILE_ASSERT(static_cast<ChannelState>(WEBSOCKET_HOST_DELETED) == 77 static_assert(static_cast<ChannelState>(WEBSOCKET_HOST_DELETED) ==
78 net::WebSocketEventInterface::CHANNEL_DELETED, 78 net::WebSocketEventInterface::CHANNEL_DELETED,
79 enum_values_must_match_for_state_deleted); 79 "enum values must match for state_deleted");
80 return static_cast<ChannelState>(host_state); 80 return static_cast<ChannelState>(host_state);
81 } 81 }
82 82
83 // Implementation of net::WebSocketEventInterface. Receives events from our 83 // Implementation of net::WebSocketEventInterface. Receives events from our
84 // WebSocketChannel object. Each event is translated to an IPC and sent to the 84 // WebSocketChannel object. Each event is translated to an IPC and sent to the
85 // renderer or child process via WebSocketDispatcherHost. 85 // renderer or child process via WebSocketDispatcherHost.
86 class WebSocketEventHandler : public net::WebSocketEventInterface { 86 class WebSocketEventHandler : public net::WebSocketEventInterface {
87 public: 87 public:
88 WebSocketEventHandler(WebSocketDispatcherHost* dispatcher, 88 WebSocketEventHandler(WebSocketDispatcherHost* dispatcher,
89 int routing_id, 89 int routing_id,
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
383 DVLOG(3) << "WebSocketHost::OnDropChannel" 383 DVLOG(3) << "WebSocketHost::OnDropChannel"
384 << " routing_id=" << routing_id_ << " was_clean=" << was_clean 384 << " routing_id=" << routing_id_ << " was_clean=" << was_clean
385 << " code=" << code << " reason=\"" << reason << "\""; 385 << " code=" << code << " reason=\"" << reason << "\"";
386 386
387 DCHECK(channel_); 387 DCHECK(channel_);
388 // TODO(yhirano): Handle |was_clean| appropriately. 388 // TODO(yhirano): Handle |was_clean| appropriately.
389 channel_->StartClosingHandshake(code, reason); 389 channel_->StartClosingHandshake(code, reason);
390 } 390 }
391 391
392 } // namespace content 392 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/pepper/pepper_gamepad_host_unittest.cc ('k') | content/browser/speech/audio_encoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698