Index: media/cast/net/cast_transport_sender.h |
diff --git a/media/cast/net/cast_transport_sender.h b/media/cast/net/cast_transport_sender.h |
index b20c9df0488a06dc0ae5f4529abde83ae0431961..576f4197e719ad305c4fa4001b4b81b25a3f4a7c 100644 |
--- a/media/cast/net/cast_transport_sender.h |
+++ b/media/cast/net/cast_transport_sender.h |
@@ -21,6 +21,7 @@ |
#include "base/basictypes.h" |
#include "base/callback.h" |
#include "base/memory/scoped_ptr.h" |
+#include "base/memory/weak_ptr.h" |
#include "base/single_thread_task_runner.h" |
#include "base/threading/non_thread_safe.h" |
#include "base/time/tick_clock.h" |
@@ -53,19 +54,29 @@ typedef base::Callback<void(scoped_ptr<std::vector<FrameEvent>>, |
scoped_ptr<std::vector<PacketEvent>>)> |
BulkRawEventsCallback; |
+class CastTransportSenderInfo { |
+ public: |
+ CastTransportSenderInfo(){}; |
+ |
+ virtual void NotifyStatus(CastTransportStatus status) = 0; |
+ virtual void SendRawEvents(scoped_ptr<std::vector<FrameEvent>>, |
+ scoped_ptr<std::vector<PacketEvent>>) = 0; |
+ // Return true if the callback is provided and false otherwise. |
+ virtual bool RecievedPackets(scoped_ptr<Packet> packet) = 0; |
+ virtual net::NetLog* GetNetLog() = 0; |
+ virtual net::IPEndPoint GetLocalEndPoint() = 0; |
+ virtual net::IPEndPoint GetRemoteEndPoint() = 0; |
+ // Return base::TimeDelta() if no raw events callback is provided. |
+ virtual base::TimeDelta GetRawEventsCallBackInterval() = 0; |
+ virtual scoped_ptr<base::DictionaryValue> GetOptions() = 0; |
+}; |
+ |
// The application should only trigger this class from the transport thread. |
class CastTransportSender : public base::NonThreadSafe { |
public: |
static scoped_ptr<CastTransportSender> Create( |
- net::NetLog* net_log, |
+ base::WeakPtr<CastTransportSenderInfo> cast_transport_sender_info, |
base::TickClock* clock, |
Irfan
2015/12/11 18:56:04
Perhaps the UDP transport fields can be combined (
miu
2015/12/12 01:30:45
Agreed. Thinking about this, a structure I'd prop
xjz
2015/12/15 18:40:13
Thanks, Yuri! I'll take your suggestion.
|
- const net::IPEndPoint& local_end_point, |
- const net::IPEndPoint& remote_end_point, |
- scoped_ptr<base::DictionaryValue> options, |
- const CastTransportStatusCallback& status_callback, |
- const BulkRawEventsCallback& raw_events_callback, |
Irfan
2015/12/11 17:33:25
my feeling here is that only the callbacks should
xjz
2015/12/15 18:40:13
Yuri suggested this too. Changed.
|
- base::TimeDelta raw_events_callback_interval, |
- const PacketReceiverCallback& packet_callback, |
const scoped_refptr<base::SingleThreadTaskRunner>& transport_task_runner); |
virtual ~CastTransportSender() {} |