Index: extensions/browser/api/cast_channel/cast_socket.cc |
diff --git a/extensions/browser/api/cast_channel/cast_socket.cc b/extensions/browser/api/cast_channel/cast_socket.cc |
index 02636ee9aacb493434acf8d90f9e0f9c50366968..650857ce3694e0b0b0af3bf6039bc4910a129a63 100644 |
--- a/extensions/browser/api/cast_channel/cast_socket.cc |
+++ b/extensions/browser/api/cast_channel/cast_socket.cc |
@@ -66,6 +66,117 @@ ApiResourceManager<core_api::cast_channel::CastSocket>::GetFactoryInstance() { |
namespace core_api { |
namespace cast_channel { |
+ |
+namespace { |
+ |
+proto::ReadyState ReadyStateToProto(ReadyState state) { |
+ switch (state) { |
+ case READY_STATE_NONE: |
+ return proto::READY_STATE_NONE; |
+ case READY_STATE_CONNECTING: |
+ return proto::READY_STATE_CONNECTING; |
+ case READY_STATE_OPEN: |
+ return proto::READY_STATE_OPEN; |
+ case READY_STATE_CLOSING: |
+ return proto::READY_STATE_CLOSING; |
+ case READY_STATE_CLOSED: |
+ return proto::READY_STATE_CLOSED; |
+ default: |
+ NOTREACHED(); |
+ return proto::READY_STATE_NONE; |
+ } |
+} |
+ |
+proto::ConnectionState ConnectStateToProto(CastSocket::ConnectionState state) { |
+ switch (state) { |
+ case CastSocket::CONN_STATE_NONE: |
+ return proto::CONN_STATE_NONE; |
+ case CastSocket::CONN_STATE_TCP_CONNECT: |
+ return proto::CONN_STATE_TCP_CONNECT; |
+ case CastSocket::CONN_STATE_TCP_CONNECT_COMPLETE: |
+ return proto::CONN_STATE_TCP_CONNECT_COMPLETE; |
+ case CastSocket::CONN_STATE_SSL_CONNECT: |
+ return proto::CONN_STATE_SSL_CONNECT; |
+ case CastSocket::CONN_STATE_SSL_CONNECT_COMPLETE: |
+ return proto::CONN_STATE_SSL_CONNECT_COMPLETE; |
+ case CastSocket::CONN_STATE_AUTH_CHALLENGE_SEND: |
+ return proto::CONN_STATE_AUTH_CHALLENGE_SEND; |
+ case CastSocket::CONN_STATE_AUTH_CHALLENGE_SEND_COMPLETE: |
+ return proto::CONN_STATE_AUTH_CHALLENGE_SEND_COMPLETE; |
+ case CastSocket::CONN_STATE_AUTH_CHALLENGE_REPLY_COMPLETE: |
+ return proto::CONN_STATE_AUTH_CHALLENGE_REPLY_COMPLETE; |
+ default: |
+ NOTREACHED(); |
+ return proto::CONN_STATE_NONE; |
+ } |
+} |
+ |
+proto::ReadState ReadStateToProto(CastSocket::ReadState state) { |
+ switch (state) { |
+ case CastSocket::READ_STATE_NONE: |
+ return proto::READ_STATE_NONE; |
+ case CastSocket::READ_STATE_READ: |
+ return proto::READ_STATE_READ; |
+ case CastSocket::READ_STATE_READ_COMPLETE: |
+ return proto::READ_STATE_READ_COMPLETE; |
+ case CastSocket::READ_STATE_DO_CALLBACK: |
+ return proto::READ_STATE_DO_CALLBACK; |
+ case CastSocket::READ_STATE_ERROR: |
+ return proto::READ_STATE_ERROR; |
+ default: |
+ NOTREACHED(); |
+ return proto::READ_STATE_NONE; |
+ } |
+} |
+ |
+proto::WriteState WriteStateToProto(CastSocket::WriteState state) { |
+ switch (state) { |
+ case CastSocket::WRITE_STATE_NONE: |
+ return proto::WRITE_STATE_NONE; |
+ case CastSocket::WRITE_STATE_WRITE: |
+ return proto::WRITE_STATE_WRITE; |
+ case CastSocket::WRITE_STATE_WRITE_COMPLETE: |
+ return proto::WRITE_STATE_WRITE_COMPLETE; |
+ case CastSocket::WRITE_STATE_DO_CALLBACK: |
+ return proto::WRITE_STATE_DO_CALLBACK; |
+ case CastSocket::WRITE_STATE_ERROR: |
+ return proto::WRITE_STATE_ERROR; |
+ default: |
+ NOTREACHED(); |
+ return proto::WRITE_STATE_NONE; |
+ } |
+} |
+ |
+proto::ErrorState ErrorStateToProto(ChannelError state) { |
+ switch (state) { |
+ case CHANNEL_ERROR_NONE: |
+ return proto::CHANNEL_ERROR_NONE; |
+ case CHANNEL_ERROR_CHANNEL_NOT_OPEN: |
+ return proto::CHANNEL_ERROR_CHANNEL_NOT_OPEN; |
+ case CHANNEL_ERROR_AUTHENTICATION_ERROR: |
+ return proto::CHANNEL_ERROR_AUTHENTICATION_ERROR; |
+ case CHANNEL_ERROR_CONNECT_ERROR: |
+ return proto::CHANNEL_ERROR_CONNECT_ERROR; |
+ case CHANNEL_ERROR_SOCKET_ERROR: |
+ return proto::CHANNEL_ERROR_SOCKET_ERROR; |
+ case CHANNEL_ERROR_TRANSPORT_ERROR: |
+ return proto::CHANNEL_ERROR_TRANSPORT_ERROR; |
+ case CHANNEL_ERROR_INVALID_MESSAGE: |
+ return proto::CHANNEL_ERROR_INVALID_MESSAGE; |
+ case CHANNEL_ERROR_INVALID_CHANNEL_ID: |
+ return proto::CHANNEL_ERROR_INVALID_CHANNEL_ID; |
+ case CHANNEL_ERROR_CONNECT_TIMEOUT: |
+ return proto::CHANNEL_ERROR_CONNECT_TIMEOUT; |
+ case CHANNEL_ERROR_UNKNOWN: |
+ return proto::CHANNEL_ERROR_UNKNOWN; |
+ default: |
+ NOTREACHED(); |
+ return proto::CHANNEL_ERROR_NONE; |
+ } |
+} |
+ |
+} // namespace |
+ |
CastSocket::CastSocket(const std::string& owner_extension_id, |
const net::IPEndPoint& ip_endpoint, |
ChannelAuthType channel_auth, |
@@ -83,9 +194,9 @@ CastSocket::CastSocket(const std::string& owner_extension_id, |
connect_timeout_(timeout), |
connect_timeout_timer_(new base::OneShotTimer<CastSocket>), |
is_canceled_(false), |
- connect_state_(proto::CONN_STATE_NONE), |
- write_state_(proto::WRITE_STATE_NONE), |
- read_state_(proto::READ_STATE_NONE), |
+ connect_state_(CONN_STATE_NONE), |
+ write_state_(WRITE_STATE_NONE), |
+ read_state_(READ_STATE_NONE), |
error_state_(CHANNEL_ERROR_NONE), |
ready_state_(READY_STATE_NONE) { |
DCHECK(net_log_); |
@@ -193,7 +304,7 @@ void CastSocket::Connect(const net::CompletionCallback& callback) { |
connect_callback_ = callback; |
SetReadyState(READY_STATE_CONNECTING); |
- SetConnectState(proto::CONN_STATE_TCP_CONNECT); |
+ SetConnectState(CONN_STATE_TCP_CONNECT); |
if (connect_timeout_.InMicroseconds() > 0) { |
DCHECK(connect_timeout_callback_.IsCancelled()); |
@@ -241,46 +352,47 @@ void CastSocket::DoConnectLoop(int result) { |
// synchronously. |
int rv = result; |
do { |
- proto::ConnectionState state = connect_state_; |
+ ConnectionState state = connect_state_; |
// Default to CONN_STATE_NONE, which breaks the processing loop if any |
// handler fails to transition to another state to continue processing. |
- connect_state_ = proto::CONN_STATE_NONE; |
+ connect_state_ = CONN_STATE_NONE; |
switch (state) { |
- case proto::CONN_STATE_TCP_CONNECT: |
+ case CONN_STATE_TCP_CONNECT: |
rv = DoTcpConnect(); |
break; |
- case proto::CONN_STATE_TCP_CONNECT_COMPLETE: |
+ case CONN_STATE_TCP_CONNECT_COMPLETE: |
rv = DoTcpConnectComplete(rv); |
break; |
- case proto::CONN_STATE_SSL_CONNECT: |
+ case CONN_STATE_SSL_CONNECT: |
DCHECK_EQ(net::OK, rv); |
rv = DoSslConnect(); |
break; |
- case proto::CONN_STATE_SSL_CONNECT_COMPLETE: |
+ case CONN_STATE_SSL_CONNECT_COMPLETE: |
rv = DoSslConnectComplete(rv); |
break; |
- case proto::CONN_STATE_AUTH_CHALLENGE_SEND: |
+ case CONN_STATE_AUTH_CHALLENGE_SEND: |
rv = DoAuthChallengeSend(); |
break; |
- case proto::CONN_STATE_AUTH_CHALLENGE_SEND_COMPLETE: |
+ case CONN_STATE_AUTH_CHALLENGE_SEND_COMPLETE: |
rv = DoAuthChallengeSendComplete(rv); |
break; |
- case proto::CONN_STATE_AUTH_CHALLENGE_REPLY_COMPLETE: |
+ case CONN_STATE_AUTH_CHALLENGE_REPLY_COMPLETE: |
rv = DoAuthChallengeReplyComplete(rv); |
break; |
default: |
NOTREACHED() << "BUG in connect flow. Unknown state: " << state; |
break; |
} |
- } while (rv != net::ERR_IO_PENDING && |
- connect_state_ != proto::CONN_STATE_NONE); |
- // Get out of the loop either when: // a. A network operation is pending, OR |
+ } while (rv != net::ERR_IO_PENDING && connect_state_ != CONN_STATE_NONE); |
+ // Get out of the loop either when: |
+ // a. A network operation is pending, OR |
// b. The Do* method called did not change state |
// No state change occurred in do-while loop above. This means state has |
// transitioned to NONE. |
- if (connect_state_ == proto::CONN_STATE_NONE) { |
- logger_->LogSocketConnectState(channel_id_, connect_state_); |
+ if (connect_state_ == CONN_STATE_NONE) { |
+ logger_->LogSocketConnectState(channel_id_, |
+ ConnectStateToProto(connect_state_)); |
} |
// Connect loop is finished: if there is no pending IO invoke the callback. |
@@ -293,7 +405,7 @@ void CastSocket::DoConnectLoop(int result) { |
int CastSocket::DoTcpConnect() { |
DCHECK(connect_loop_callback_.IsCancelled()); |
VLOG_WITH_CONNECTION(1) << "DoTcpConnect"; |
- SetConnectState(proto::CONN_STATE_TCP_CONNECT_COMPLETE); |
+ SetConnectState(CONN_STATE_TCP_CONNECT_COMPLETE); |
tcp_socket_ = CreateTcpSocket(); |
int rv = tcp_socket_->Connect( |
@@ -310,7 +422,7 @@ int CastSocket::DoTcpConnectComplete(int result) { |
LOG_IF(WARNING, !result) << "Failed to SetKeepAlive."; |
logger_->LogSocketEventWithRv( |
channel_id_, proto::TCP_SOCKET_SET_KEEP_ALIVE, result ? 1 : 0); |
- SetConnectState(proto::CONN_STATE_SSL_CONNECT); |
+ SetConnectState(CONN_STATE_SSL_CONNECT); |
} |
return result; |
} |
@@ -318,7 +430,7 @@ int CastSocket::DoTcpConnectComplete(int result) { |
int CastSocket::DoSslConnect() { |
DCHECK(connect_loop_callback_.IsCancelled()); |
VLOG_WITH_CONNECTION(1) << "DoSslConnect"; |
- SetConnectState(proto::CONN_STATE_SSL_CONNECT_COMPLETE); |
+ SetConnectState(CONN_STATE_SSL_CONNECT_COMPLETE); |
socket_ = CreateSslSocket(tcp_socket_.PassAs<net::StreamSocket>()); |
int rv = socket_->Connect( |
@@ -331,17 +443,17 @@ int CastSocket::DoSslConnectComplete(int result) { |
VLOG_WITH_CONNECTION(1) << "DoSslConnectComplete: " << result; |
if (result == net::ERR_CERT_AUTHORITY_INVALID && |
peer_cert_.empty() && ExtractPeerCert(&peer_cert_)) { |
- SetConnectState(proto::CONN_STATE_TCP_CONNECT); |
+ SetConnectState(CONN_STATE_TCP_CONNECT); |
} else if (result == net::OK && |
channel_auth_ == CHANNEL_AUTH_TYPE_SSL_VERIFIED) { |
- SetConnectState(proto::CONN_STATE_AUTH_CHALLENGE_SEND); |
+ SetConnectState(CONN_STATE_AUTH_CHALLENGE_SEND); |
} |
return result; |
} |
int CastSocket::DoAuthChallengeSend() { |
VLOG_WITH_CONNECTION(1) << "DoAuthChallengeSend"; |
- SetConnectState(proto::CONN_STATE_AUTH_CHALLENGE_SEND_COMPLETE); |
+ SetConnectState(CONN_STATE_AUTH_CHALLENGE_SEND_COMPLETE); |
CastMessage challenge_message; |
CreateAuthChallengeMessage(&challenge_message); |
@@ -377,7 +489,7 @@ int CastSocket::DoAuthChallengeSendComplete(int result) { |
if (result < 0) { |
return result; |
} |
- SetConnectState(proto::CONN_STATE_AUTH_CHALLENGE_REPLY_COMPLETE); |
+ SetConnectState(CONN_STATE_AUTH_CHALLENGE_REPLY_COMPLETE); |
// Post a task to start read loop so that DoReadLoop is not nested inside |
// DoConnectLoop. This is not strictly necessary but keeps the read loop |
@@ -503,8 +615,8 @@ void CastSocket::SendCastMessageInternal( |
proto::MESSAGE_ENQUEUED, |
message.namespace_(), |
base::StringPrintf("Queue size: %" PRIuS, write_queue_.size())); |
- if (write_state_ == proto::WRITE_STATE_NONE) { |
- SetWriteState(proto::WRITE_STATE_WRITE); |
+ if (write_state_ == WRITE_STATE_NONE) { |
+ SetWriteState(WRITE_STATE_WRITE); |
DoWriteLoop(net::OK); |
} |
} |
@@ -514,7 +626,7 @@ void CastSocket::DoWriteLoop(int result) { |
VLOG_WITH_CONNECTION(1) << "DoWriteLoop queue size: " << write_queue_.size(); |
if (write_queue_.empty()) { |
- SetWriteState(proto::WRITE_STATE_NONE); |
+ SetWriteState(WRITE_STATE_NONE); |
return; |
} |
@@ -524,38 +636,39 @@ void CastSocket::DoWriteLoop(int result) { |
// synchronously. |
int rv = result; |
do { |
- proto::WriteState state = write_state_; |
- write_state_ = proto::WRITE_STATE_NONE; |
+ WriteState state = write_state_; |
+ write_state_ = WRITE_STATE_NONE; |
switch (state) { |
- case proto::WRITE_STATE_WRITE: |
+ case WRITE_STATE_WRITE: |
rv = DoWrite(); |
break; |
- case proto::WRITE_STATE_WRITE_COMPLETE: |
+ case WRITE_STATE_WRITE_COMPLETE: |
rv = DoWriteComplete(rv); |
break; |
- case proto::WRITE_STATE_DO_CALLBACK: |
+ case WRITE_STATE_DO_CALLBACK: |
rv = DoWriteCallback(); |
break; |
- case proto::WRITE_STATE_ERROR: |
+ case WRITE_STATE_ERROR: |
rv = DoWriteError(rv); |
break; |
default: |
NOTREACHED() << "BUG in write flow. Unknown state: " << state; |
break; |
} |
- } while (!write_queue_.empty() && rv != net::ERR_IO_PENDING && |
- write_state_ != proto::WRITE_STATE_NONE); |
+ } while (!write_queue_.empty() && |
+ rv != net::ERR_IO_PENDING && |
+ write_state_ != WRITE_STATE_NONE); |
// No state change occurred in do-while loop above. This means state has |
// transitioned to NONE. |
- if (write_state_ == proto::WRITE_STATE_NONE) { |
- logger_->LogSocketWriteState(channel_id_, write_state_); |
+ if (write_state_ == WRITE_STATE_NONE) { |
+ logger_->LogSocketWriteState(channel_id_, WriteStateToProto(write_state_)); |
} |
// If write loop is done because the queue is empty then set write |
// state to NONE |
if (write_queue_.empty()) { |
- SetWriteState(proto::WRITE_STATE_NONE); |
+ SetWriteState(WRITE_STATE_NONE); |
} |
// Write loop is done - if the result is ERR_FAILED then close with error. |
@@ -572,7 +685,7 @@ int CastSocket::DoWrite() { |
<< request.io_buffer->size() << " bytes_written " |
<< request.io_buffer->BytesConsumed(); |
- SetWriteState(proto::WRITE_STATE_WRITE_COMPLETE); |
+ SetWriteState(WRITE_STATE_WRITE_COMPLETE); |
int rv = socket_->Write( |
request.io_buffer.get(), |
@@ -587,7 +700,7 @@ int CastSocket::DoWriteComplete(int result) { |
DCHECK(!write_queue_.empty()); |
if (result <= 0) { // NOTE that 0 also indicates an error |
SetErrorState(CHANNEL_ERROR_SOCKET_ERROR); |
- SetWriteState(proto::WRITE_STATE_ERROR); |
+ SetWriteState(WRITE_STATE_ERROR); |
return result == 0 ? net::ERR_FAILED : result; |
} |
@@ -596,9 +709,9 @@ int CastSocket::DoWriteComplete(int result) { |
scoped_refptr<net::DrainableIOBuffer> io_buffer = request.io_buffer; |
io_buffer->DidConsume(result); |
if (io_buffer->BytesRemaining() == 0) { // Message fully sent |
- SetWriteState(proto::WRITE_STATE_DO_CALLBACK); |
+ SetWriteState(WRITE_STATE_DO_CALLBACK); |
} else { |
- SetWriteState(proto::WRITE_STATE_WRITE); |
+ SetWriteState(WRITE_STATE_WRITE); |
} |
return net::OK; |
@@ -607,7 +720,7 @@ int CastSocket::DoWriteComplete(int result) { |
int CastSocket::DoWriteCallback() { |
DCHECK(!write_queue_.empty()); |
- SetWriteState(proto::WRITE_STATE_WRITE); |
+ SetWriteState(WRITE_STATE_WRITE); |
WriteRequest& request = write_queue_.front(); |
int bytes_consumed = request.io_buffer->BytesConsumed(); |
@@ -656,8 +769,8 @@ void CastSocket::PostTaskToStartReadLoop() { |
void CastSocket::StartReadLoop() { |
read_loop_callback_.Cancel(); |
// Read loop would have already been started if read state is not NONE |
- if (read_state_ == proto::READ_STATE_NONE) { |
- SetReadState(proto::READ_STATE_READ); |
+ if (read_state_ == READ_STATE_NONE) { |
+ SetReadState(READ_STATE_READ); |
DoReadLoop(net::OK); |
} |
} |
@@ -670,33 +783,33 @@ void CastSocket::DoReadLoop(int result) { |
// synchronously. |
int rv = result; |
do { |
- proto::ReadState state = read_state_; |
- read_state_ = proto::READ_STATE_NONE; |
+ ReadState state = read_state_; |
+ read_state_ = READ_STATE_NONE; |
switch (state) { |
- case proto::READ_STATE_READ: |
+ case READ_STATE_READ: |
rv = DoRead(); |
break; |
- case proto::READ_STATE_READ_COMPLETE: |
+ case READ_STATE_READ_COMPLETE: |
rv = DoReadComplete(rv); |
break; |
- case proto::READ_STATE_DO_CALLBACK: |
+ case READ_STATE_DO_CALLBACK: |
rv = DoReadCallback(); |
break; |
- case proto::READ_STATE_ERROR: |
+ case READ_STATE_ERROR: |
rv = DoReadError(rv); |
- DCHECK_EQ(read_state_, proto::READ_STATE_NONE); |
+ DCHECK_EQ(read_state_, READ_STATE_NONE); |
break; |
default: |
NOTREACHED() << "BUG in read flow. Unknown state: " << state; |
break; |
} |
- } while (rv != net::ERR_IO_PENDING && read_state_ != proto::READ_STATE_NONE); |
+ } while (rv != net::ERR_IO_PENDING && read_state_ != READ_STATE_NONE); |
// No state change occurred in do-while loop above. This means state has |
// transitioned to NONE. |
- if (read_state_ == proto::READ_STATE_NONE) { |
- logger_->LogSocketReadState(channel_id_, read_state_); |
+ if (read_state_ == READ_STATE_NONE) { |
+ logger_->LogSocketReadState(channel_id_, ReadStateToProto(read_state_)); |
} |
if (rv == net::ERR_FAILED) { |
@@ -714,7 +827,7 @@ void CastSocket::DoReadLoop(int result) { |
} |
int CastSocket::DoRead() { |
- SetReadState(proto::READ_STATE_READ_COMPLETE); |
+ SetReadState(READ_STATE_READ_COMPLETE); |
// Determine how many bytes need to be read. |
size_t num_bytes_to_read = framer_->BytesRequested(); |
@@ -735,7 +848,7 @@ int CastSocket::DoReadComplete(int result) { |
if (result <= 0) { // 0 means EOF: the peer closed the socket |
VLOG_WITH_CONNECTION(1) << "Read error, peer closed the socket"; |
SetErrorState(CHANNEL_ERROR_SOCKET_ERROR); |
- SetReadState(proto::READ_STATE_ERROR); |
+ SetReadState(READ_STATE_ERROR); |
return result == 0 ? net::ERR_FAILED : result; |
} |
@@ -751,19 +864,19 @@ int CastSocket::DoReadComplete(int result) { |
current_message_->namespace_(), |
base::StringPrintf("Message size: %u", |
static_cast<uint32>(message_size))); |
- SetReadState(proto::READ_STATE_DO_CALLBACK); |
+ SetReadState(READ_STATE_DO_CALLBACK); |
} else if (error_state_ != CHANNEL_ERROR_NONE) { |
DCHECK(current_message_.get() == NULL); |
- SetReadState(proto::READ_STATE_ERROR); |
+ SetReadState(READ_STATE_ERROR); |
} else { |
DCHECK(current_message_.get() == NULL); |
- SetReadState(proto::READ_STATE_READ); |
+ SetReadState(READ_STATE_READ); |
} |
return net::OK; |
} |
int CastSocket::DoReadCallback() { |
- SetReadState(proto::READ_STATE_READ); |
+ SetReadState(READ_STATE_READ); |
const CastMessage& message = *current_message_; |
if (ready_state_ == READY_STATE_CONNECTING) { |
if (IsAuthMessage(message)) { |
@@ -773,7 +886,7 @@ int CastSocket::DoReadCallback() { |
current_message_.reset(); |
return net::OK; |
} else { |
- SetReadState(proto::READ_STATE_ERROR); |
+ SetReadState(READ_STATE_ERROR); |
SetErrorState(CHANNEL_ERROR_INVALID_MESSAGE); |
current_message_.reset(); |
return net::ERR_INVALID_RESPONSE; |
@@ -783,7 +896,7 @@ int CastSocket::DoReadCallback() { |
MessageInfo message_info; |
if (!CastMessageToMessageInfo(message, &message_info)) { |
current_message_.reset(); |
- SetReadState(proto::READ_STATE_ERROR); |
+ SetReadState(READ_STATE_ERROR); |
SetErrorState(CHANNEL_ERROR_INVALID_MESSAGE); |
return net::ERR_INVALID_RESPONSE; |
} |
@@ -826,10 +939,11 @@ base::Timer* CastSocket::GetTimer() { |
return connect_timeout_timer_.get(); |
} |
-void CastSocket::SetConnectState(proto::ConnectionState connect_state) { |
+void CastSocket::SetConnectState(ConnectionState connect_state) { |
if (connect_state_ != connect_state) { |
connect_state_ = connect_state; |
- logger_->LogSocketConnectState(channel_id_, connect_state_); |
+ logger_->LogSocketConnectState(channel_id_, |
+ ConnectStateToProto(connect_state_)); |
} |
} |
@@ -847,17 +961,17 @@ void CastSocket::SetErrorState(ChannelError error_state) { |
} |
} |
-void CastSocket::SetReadState(proto::ReadState read_state) { |
+void CastSocket::SetReadState(ReadState read_state) { |
if (read_state_ != read_state) { |
read_state_ = read_state; |
- logger_->LogSocketReadState(channel_id_, read_state_); |
+ logger_->LogSocketReadState(channel_id_, ReadStateToProto(read_state_)); |
} |
} |
-void CastSocket::SetWriteState(proto::WriteState write_state) { |
+void CastSocket::SetWriteState(WriteState write_state) { |
if (write_state_ != write_state) { |
write_state_ = write_state; |
- logger_->LogSocketWriteState(channel_id_, write_state_); |
+ logger_->LogSocketWriteState(channel_id_, WriteStateToProto(write_state_)); |
} |
} |