summaryrefslogtreecommitdiffstats
path: root/jingle/glue/pseudotcp_adapter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'jingle/glue/pseudotcp_adapter.cc')
-rw-r--r--jingle/glue/pseudotcp_adapter.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/jingle/glue/pseudotcp_adapter.cc b/jingle/glue/pseudotcp_adapter.cc
index b86c805..91e4462 100644
--- a/jingle/glue/pseudotcp_adapter.cc
+++ b/jingle/glue/pseudotcp_adapter.cc
@@ -46,6 +46,10 @@ class PseudoTcpAdapter::Core : public cricket::IPseudoTcpNotify,
// This is triggered by NotifyClock, NotifyPacket, Recv and Send.
virtual WriteResult TcpWritePacket(cricket::PseudoTcp* tcp,
const char* buffer, size_t len) OVERRIDE;
+
+ void SetAckDelay(int delay_ms);
+ void SetNoDelay(bool no_delay);
+
private:
// These are invoked by the underlying Socket, and may trigger callbacks.
// They hold a reference to |this| while running, to protect from deletion.
@@ -269,6 +273,14 @@ void PseudoTcpAdapter::Core::OnTcpClosed(PseudoTcp* tcp, uint32 error) {
}
}
+void PseudoTcpAdapter::Core::SetAckDelay(int delay_ms) {
+ pseudo_tcp_.SetOption(cricket::PseudoTcp::OPT_ACKDELAY, delay_ms);
+}
+
+void PseudoTcpAdapter::Core::SetNoDelay(bool no_delay) {
+ pseudo_tcp_.SetOption(cricket::PseudoTcp::OPT_NODELAY, no_delay ? 1 : 0);
+}
+
cricket::IPseudoTcpNotify::WriteResult PseudoTcpAdapter::Core::TcpWritePacket(
PseudoTcp* tcp,
const char* buffer,
@@ -473,4 +485,14 @@ base::TimeDelta PseudoTcpAdapter::GetConnectTimeMicros() const {
return base::TimeDelta::FromMicroseconds(-1);
}
+void PseudoTcpAdapter::SetAckDelay(int delay_ms) {
+ DCHECK(CalledOnValidThread());
+ core_->SetAckDelay(delay_ms);
+}
+
+void PseudoTcpAdapter::SetNoDelay(bool no_delay) {
+ DCHECK(CalledOnValidThread());
+ core_->SetNoDelay(no_delay);
+}
+
} // namespace jingle_glue