// Copyright 2016 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef REMOTING_PROTOCOL_JINGLE_INFO_REQUEST_H_ #define REMOTING_PROTOCOL_JINGLE_INFO_REQUEST_H_ #include #include #include #include "base/callback.h" #include "base/macros.h" #include "base/memory/scoped_ptr.h" #include "remoting/protocol/ice_config_request.h" #include "remoting/signaling/iq_sender.h" namespace buzz { class XmlElement; } // namespace buzz namespace remoting { class SignalStrategy; namespace protocol { // IceConfigRequest that fetches IceConfig from Google Talk servers using HTTP. class JingleInfoRequest : public IceConfigRequest { public: explicit JingleInfoRequest(SignalStrategy* signal_strategy); ~JingleInfoRequest() override; // IceConfigRequest interface. void Send(const OnIceConfigCallback& callback) override; private: void OnResponse(IqRequest* request, const buzz::XmlElement* stanza); IqSender iq_sender_; scoped_ptr request_; OnIceConfigCallback on_ice_config_callback_; DISALLOW_COPY_AND_ASSIGN(JingleInfoRequest); }; } // namespace protocol } // namespace remoting #endif // REMOTING_PROTOCOL_JINGLE_INFO_REQUEST_H_