@@ -40,13 +40,11 @@ enum AdjustedExpectedResult : int {
4040 ERROR_RECEIVING_DATA = 2
4141};
4242
43- class MoQTestClient : public moxygen ::Subscriber,
44- public std::enable_shared_from_this<MoQTestClient>,
45- public ObjectReceiverCallback {
43+ class MoQTestClient {
4644 public:
4745 MoQTestClient (folly::EventBase* evb, proxygen::URL url);
4846
49- ~MoQTestClient () override {}
47+ ~MoQTestClient () {}
5048
5149 MoQTestClient (const MoQTestClient&) = delete ;
5250 MoQTestClient& operator =(const MoQTestClient&) = delete ;
@@ -62,39 +60,66 @@ class MoQTestClient : public moxygen::Subscriber,
6260
6361 folly::coro::Task<moxygen::TrackNamespace> fetch (MoQTestParameters params);
6462
65- // Override Vritual Functions for now to return basic print statements
66- virtual FlowControlState onObject (
67- folly::Optional<TrackAlias> trackAlias,
68- const ObjectHeader& objHeader,
69- Payload payload) override ;
70- virtual void onObjectStatus (
71- folly::Optional<TrackAlias> trackAlias,
72- const ObjectHeader& objHeader) override ;
73- virtual void onEndOfStream () override ;
74- virtual void onError (ResetStreamErrorCode) override ;
75- virtual void onSubscribeDone (SubscribeDone done) override ;
76-
7763 void setLogger (const std::shared_ptr<MLogger>& logger);
7864
79- virtual void goaway (Goaway goaway) override ;
80- virtual folly::coro::Task<AnnounceResult> announce (
81- Announce ann,
82- std::shared_ptr<AnnounceCallback> callback = nullptr ) override ;
83-
8465 folly::coro::Task<void > trackStatus (TrackStatus req);
8566 void subscribeUpdate (SubscribeUpdate update);
86- folly::coro::Task<Publisher::SubscribeAnnouncesResult> subscribeAnnounces (
87- SubscribeAnnounces announces);
88- void unsubscribeAnnounces (UnsubscribeAnnounces unann);
89-
90- void announceCancel (AnnounceErrorCode errorCode, std::string reasonPhrase);
9167
9268 private:
69+ // An ObjectReceiverCallback implementation that forwards calls to a
70+ // MoQTestClient.
71+ class ObjectReceiverCallback : public moxygen ::ObjectReceiverCallback {
72+ public:
73+ explicit ObjectReceiverCallback (MoQTestClient& client) : client_(client) {}
74+
75+ FlowControlState onObject (
76+ folly::Optional<TrackAlias> trackAlias,
77+ const ObjectHeader& objHeader,
78+ Payload payload) override {
79+ return client_.onObject (
80+ std::move (trackAlias), objHeader, std::move (payload));
81+ }
82+
83+ void onObjectStatus (
84+ folly::Optional<TrackAlias> trackAlias,
85+ const ObjectHeader& objHeader) override {
86+ client_.onObjectStatus (std::move (trackAlias), objHeader);
87+ }
88+
89+ void onEndOfStream () override {
90+ client_.onEndOfStream ();
91+ }
92+
93+ void onError (ResetStreamErrorCode code) override {
94+ client_.onError (code);
95+ }
96+
97+ void onSubscribeDone (SubscribeDone done) override {
98+ client_.onSubscribeDone (std::move (done));
99+ }
100+
101+ private:
102+ MoQTestClient& client_;
103+ };
104+
105+ // Override Vritual Functions for now to return basic print statements
106+ ObjectReceiverCallback::FlowControlState onObject (
107+ const folly::Optional<TrackAlias>& trackAlias,
108+ const ObjectHeader& objHeader,
109+ Payload payload);
110+ void onObjectStatus (
111+ const folly::Optional<TrackAlias>& trackAlias,
112+ const ObjectHeader& objHeader);
113+ void onEndOfStream ();
114+ void onError (ResetStreamErrorCode);
115+ void onSubscribeDone (const SubscribeDone& done);
116+
117+ ObjectReceiverCallback objectReceiverCallback_{*this };
118+
93119 std::shared_ptr<MoQFollyExecutorImpl> moqExecutor_;
94120 std::unique_ptr<MoQClient> moqClient_;
95121 std::shared_ptr<ObjectReceiver> subReceiver_;
96122 std::shared_ptr<ObjectReceiver> fetchReceiver_;
97- std::shared_ptr<AnnounceCallback> announceCallback_;
98123
99124 // Holds Current Request Parameters
100125 ReceivingType receivingType_ = ReceivingType::UNKNOWN_RECEIVING_TYPE ;
@@ -117,7 +142,6 @@ class MoQTestClient : public moxygen::Subscriber,
117142 // Handles
118143 std::shared_ptr<Publisher::SubscriptionHandle> subHandle_;
119144 std::shared_ptr<Publisher::FetchHandle> fetchHandle_;
120- std::shared_ptr<Publisher::SubscribeAnnouncesHandle> subAnnouncesHandle_;
121145
122146 // Subscription Data Validation functions
123147 void initializeExpecteds (MoQTestParameters& params);
0 commit comments