Index: talk/media/sctp/sctpdataengine.h |
diff --git a/talk/media/sctp/sctpdataengine.h b/talk/media/sctp/sctpdataengine.h |
index 86bfa37a48c10dca4c3f5b0cad9a330d27aea10e..a591542bd676622a31e11bdabca3ce87dbcf97ee 100644 |
--- a/talk/media/sctp/sctpdataengine.h |
+++ b/talk/media/sctp/sctpdataengine.h |
@@ -64,6 +64,8 @@ const uint32 kMaxSctpSid = 1023; |
// usrsctp.h) |
const int kSctpDefaultPort = 5000; |
+class SctpDataMediaChannel; |
+ |
// A DataEngine that interacts with usrsctp. |
// |
// From channel calls, data flows like this: |
@@ -88,7 +90,7 @@ const int kSctpDefaultPort = 5000; |
// 14. SctpDataMediaChannel::SignalDataReceived(data) |
// [from the same thread, methods registered/connected to |
// SctpDataMediaChannel are called with the recieved data] |
-class SctpDataEngine : public DataEngineInterface { |
+class SctpDataEngine : public DataEngineInterface, public sigslot::has_slots<> { |
public: |
SctpDataEngine(); |
virtual ~SctpDataEngine(); |
@@ -97,9 +99,15 @@ class SctpDataEngine : public DataEngineInterface { |
virtual const std::vector<DataCodec>& data_codecs() { return codecs_; } |
+ static int SendThresholdCallback(struct socket* sock, uint32_t sb_free); |
+ |
private: |
+ static std::vector<SctpDataMediaChannel*> channels_; |
Nico
2015/08/27 03:56:46
This adds a static initializer, that's no good. (I
pthatcher1
2015/08/27 16:45:33
codecs_ isn't static.
And when I reviewed this co
lally1
2015/08/27 17:56:09
Ah, I didn't know that wasn't allowed. I've wrapp
|
static int usrsctp_engines_count; |
std::vector<DataCodec> codecs_; |
+ |
+ static SctpDataMediaChannel* GetChannelFromSocket(struct socket* sock); |
+ void OnChannelDestroyed(SctpDataMediaChannel *channel); |
}; |
// TODO(ldixon): Make into a special type of TypedMessageData. |
@@ -188,6 +196,9 @@ class SctpDataMediaChannel : public DataMediaChannel, |
debug_name_ = debug_name; |
} |
const std::string& debug_name() const { return debug_name_; } |
+ const struct socket* socket() { return sock_; } |
+ |
+ sigslot::signal1<SctpDataMediaChannel*> SignalDestroyed; |
private: |
sockaddr_conn GetSctpSockAddr(int port); |