| OLD | NEW |
| 1 /* | 1 /* |
| 2 * libjingle | 2 * libjingle |
| 3 * Copyright 2013 Google Inc. | 3 * Copyright 2013 Google Inc. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are met: | 6 * modification, are permitted provided that the following conditions are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright notice, | 8 * 1. Redistributions of source code must retain the above copyright notice, |
| 9 * this list of conditions and the following disclaimer. | 9 * this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright notice, | 10 * 2. Redistributions in binary form must reproduce the above copyright notice, |
| (...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 162 bool writable_; | 162 bool writable_; |
| 163 }; | 163 }; |
| 164 | 164 |
| 165 class SignalChannelClosedObserver : public sigslot::has_slots<> { | 165 class SignalChannelClosedObserver : public sigslot::has_slots<> { |
| 166 public: | 166 public: |
| 167 SignalChannelClosedObserver() {} | 167 SignalChannelClosedObserver() {} |
| 168 void BindSelf(cricket::SctpDataMediaChannel* channel) { | 168 void BindSelf(cricket::SctpDataMediaChannel* channel) { |
| 169 channel->SignalStreamClosedRemotely.connect( | 169 channel->SignalStreamClosedRemotely.connect( |
| 170 this, &SignalChannelClosedObserver::OnStreamClosed); | 170 this, &SignalChannelClosedObserver::OnStreamClosed); |
| 171 } | 171 } |
| 172 void OnStreamClosed(uint32 stream) { | 172 void OnStreamClosed(uint32_t stream) { streams_.push_back(stream); } |
| 173 streams_.push_back(stream); | |
| 174 } | |
| 175 | 173 |
| 176 int StreamCloseCount(uint32 stream) { | 174 int StreamCloseCount(uint32_t stream) { |
| 177 return std::count(streams_.begin(), streams_.end(), stream); | 175 return std::count(streams_.begin(), streams_.end(), stream); |
| 178 } | 176 } |
| 179 | 177 |
| 180 bool WasStreamClosed(uint32 stream) { | 178 bool WasStreamClosed(uint32_t stream) { |
| 181 return std::find(streams_.begin(), streams_.end(), stream) | 179 return std::find(streams_.begin(), streams_.end(), stream) |
| 182 != streams_.end(); | 180 != streams_.end(); |
| 183 } | 181 } |
| 184 | 182 |
| 185 private: | 183 private: |
| 186 std::vector<uint32> streams_; | 184 std::vector<uint32_t> streams_; |
| 187 }; | 185 }; |
| 188 | 186 |
| 189 class SignalChannelClosedReopener : public sigslot::has_slots<> { | 187 class SignalChannelClosedReopener : public sigslot::has_slots<> { |
| 190 public: | 188 public: |
| 191 SignalChannelClosedReopener(cricket::SctpDataMediaChannel* channel, | 189 SignalChannelClosedReopener(cricket::SctpDataMediaChannel* channel, |
| 192 cricket::SctpDataMediaChannel* peer) | 190 cricket::SctpDataMediaChannel* peer) |
| 193 : channel_(channel), peer_(peer) {} | 191 : channel_(channel), peer_(peer) {} |
| 194 | 192 |
| 195 void OnStreamClosed(int stream) { | 193 void OnStreamClosed(int stream) { |
| 196 cricket::StreamParams p(cricket::StreamParams::CreateLegacy(stream)); | 194 cricket::StreamParams p(cricket::StreamParams::CreateLegacy(stream)); |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 cricket::SctpDataMediaChannel* channel = | 283 cricket::SctpDataMediaChannel* channel = |
| 286 static_cast<cricket::SctpDataMediaChannel*>(engine_->CreateChannel( | 284 static_cast<cricket::SctpDataMediaChannel*>(engine_->CreateChannel( |
| 287 cricket::DCT_SCTP)); | 285 cricket::DCT_SCTP)); |
| 288 channel->SetInterface(net); | 286 channel->SetInterface(net); |
| 289 // When data is received, pass it to the SctpFakeDataReceiver. | 287 // When data is received, pass it to the SctpFakeDataReceiver. |
| 290 channel->SignalDataReceived.connect( | 288 channel->SignalDataReceived.connect( |
| 291 recv, &SctpFakeDataReceiver::OnDataReceived); | 289 recv, &SctpFakeDataReceiver::OnDataReceived); |
| 292 return channel; | 290 return channel; |
| 293 } | 291 } |
| 294 | 292 |
| 295 bool SendData(cricket::SctpDataMediaChannel* chan, uint32 ssrc, | 293 bool SendData(cricket::SctpDataMediaChannel* chan, |
| 294 uint32_t ssrc, |
| 296 const std::string& msg, | 295 const std::string& msg, |
| 297 cricket::SendDataResult* result) { | 296 cricket::SendDataResult* result) { |
| 298 cricket::SendDataParams params; | 297 cricket::SendDataParams params; |
| 299 params.ssrc = ssrc; | 298 params.ssrc = ssrc; |
| 300 | 299 |
| 301 return chan->SendData(params, rtc::Buffer( | 300 return chan->SendData(params, rtc::Buffer( |
| 302 &msg[0], msg.length()), result); | 301 &msg[0], msg.length()), result); |
| 303 } | 302 } |
| 304 | 303 |
| 305 bool ReceivedData(const SctpFakeDataReceiver* recv, uint32 ssrc, | 304 bool ReceivedData(const SctpFakeDataReceiver* recv, |
| 306 const std::string& msg ) { | 305 uint32_t ssrc, |
| 306 const std::string& msg) { |
| 307 return (recv->received() && | 307 return (recv->received() && |
| 308 recv->last_params().ssrc == ssrc && | 308 recv->last_params().ssrc == ssrc && |
| 309 recv->last_data() == msg); | 309 recv->last_data() == msg); |
| 310 } | 310 } |
| 311 | 311 |
| 312 bool ProcessMessagesUntilIdle() { | 312 bool ProcessMessagesUntilIdle() { |
| 313 rtc::Thread* thread = rtc::Thread::Current(); | 313 rtc::Thread* thread = rtc::Thread::Current(); |
| 314 while (!thread->empty()) { | 314 while (!thread->empty()) { |
| 315 rtc::Message msg; | 315 rtc::Message msg; |
| 316 if (thread->Get(&msg, rtc::Thread::kForever)) { | 316 if (thread->Get(&msg, rtc::Thread::kForever)) { |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 526 // Channel 1 is gone now. | 526 // Channel 1 is gone now. |
| 527 | 527 |
| 528 // Create a new channel 1. | 528 // Create a new channel 1. |
| 529 AddStream(1); | 529 AddStream(1); |
| 530 ASSERT_TRUE(SendData(channel1(), 1, "hi?", &result)); | 530 ASSERT_TRUE(SendData(channel1(), 1, "hi?", &result)); |
| 531 EXPECT_EQ(cricket::SDR_SUCCESS, result); | 531 EXPECT_EQ(cricket::SDR_SUCCESS, result); |
| 532 EXPECT_TRUE_WAIT(ReceivedData(receiver2(), 1, "hi?"), 1000); | 532 EXPECT_TRUE_WAIT(ReceivedData(receiver2(), 1, "hi?"), 1000); |
| 533 channel1()->RemoveSendStream(1); | 533 channel1()->RemoveSendStream(1); |
| 534 EXPECT_TRUE_WAIT(chan_2_sig_receiver.StreamCloseCount(1) == 2, 1000); | 534 EXPECT_TRUE_WAIT(chan_2_sig_receiver.StreamCloseCount(1) == 2, 1000); |
| 535 } | 535 } |
| OLD | NEW |