Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(311)

Unified Diff: webrtc/p2p/base/session.h

Issue 1397973002: Merging BaseSession code into WebRtcSession. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Merging with master (MediaStreamSignaling removal affected WebRtcSession). Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « talk/session/media/currentspeakermonitor_unittest.cc ('k') | webrtc/p2p/base/session.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/p2p/base/session.h
diff --git a/webrtc/p2p/base/session.h b/webrtc/p2p/base/session.h
index 2cf8c8a52f11ec8932d560558d5b75bd44d0bcc1..a98a5efe13a8e6d872aa7356a3698c0817f14bf6 100644
--- a/webrtc/p2p/base/session.h
+++ b/webrtc/p2p/base/session.h
@@ -8,195 +8,6 @@
* be found in the AUTHORS file in the root of the source tree.
*/
-#ifndef WEBRTC_P2P_BASE_SESSION_H_
-#define WEBRTC_P2P_BASE_SESSION_H_
-
-#include <list>
-#include <map>
-#include <string>
-#include <vector>
-
-#include "webrtc/base/refcount.h"
-#include "webrtc/base/rtccertificate.h"
-#include "webrtc/base/scoped_ptr.h"
-#include "webrtc/base/scoped_ref_ptr.h"
-#include "webrtc/base/socketaddress.h"
-#include "webrtc/p2p/base/candidate.h"
-#include "webrtc/p2p/base/port.h"
-#include "webrtc/p2p/base/transport.h"
-
-namespace cricket {
-
-class BaseSession;
-class P2PTransportChannel;
-class Transport;
-class TransportChannel;
-class TransportChannelImpl;
-class TransportController;
-
-// Statistics for all the transports of this session.
-typedef std::map<std::string, TransportStats> TransportStatsMap;
-typedef std::map<std::string, std::string> ProxyTransportMap;
-
-// TODO(pthatcher): Think of a better name for this. We already have
-// a TransportStats in transport.h. Perhaps TransportsStats?
-struct SessionStats {
- ProxyTransportMap proxy_to_transport;
- TransportStatsMap transport_stats;
-};
-
-// A BaseSession manages general session state. This includes negotiation
-// of both the application-level and network-level protocols: the former
-// defines what will be sent and the latter defines how it will be sent. Each
-// network-level protocol is represented by a Transport object. Each Transport
-// participates in the network-level negotiation. The individual streams of
-// packets are represented by TransportChannels. The application-level protocol
-// is represented by SessionDecription objects.
-class BaseSession : public sigslot::has_slots<>,
- public rtc::MessageHandler {
- public:
- enum {
- MSG_TIMEOUT = 0,
- MSG_ERROR,
- MSG_STATE,
- };
-
- enum State {
- STATE_INIT = 0,
- STATE_SENTINITIATE, // sent initiate, waiting for Accept or Reject
- STATE_RECEIVEDINITIATE, // received an initiate. Call Accept or Reject
- STATE_SENTPRACCEPT, // sent provisional Accept
- STATE_SENTACCEPT, // sent accept. begin connecting transport
- STATE_RECEIVEDPRACCEPT, // received provisional Accept, waiting for Accept
- STATE_RECEIVEDACCEPT, // received accept. begin connecting transport
- STATE_SENTMODIFY, // sent modify, waiting for Accept or Reject
- STATE_RECEIVEDMODIFY, // received modify, call Accept or Reject
- STATE_SENTREJECT, // sent reject after receiving initiate
- STATE_RECEIVEDREJECT, // received reject after sending initiate
- STATE_SENTREDIRECT, // sent direct after receiving initiate
- STATE_SENTTERMINATE, // sent terminate (any time / either side)
- STATE_RECEIVEDTERMINATE, // received terminate (any time / either side)
- STATE_INPROGRESS, // session accepted and in progress
- STATE_DEINIT, // session is being destroyed
- };
-
- enum Error {
- ERROR_NONE = 0, // no error
- ERROR_TIME = 1, // no response to signaling
- ERROR_RESPONSE = 2, // error during signaling
- ERROR_NETWORK = 3, // network error, could not allocate network resources
- ERROR_CONTENT = 4, // channel errors in SetLocalContent/SetRemoteContent
- ERROR_TRANSPORT = 5, // transport error of some kind
- };
-
- // Convert State to a readable string.
- static std::string StateToString(State state);
-
- BaseSession(rtc::Thread* signaling_thread,
- rtc::Thread* worker_thread,
- PortAllocator* port_allocator,
- const std::string& sid,
- bool initiator);
- virtual ~BaseSession();
-
- // These are const to allow them to be called from const methods.
- rtc::Thread* signaling_thread() const { return signaling_thread_; }
- rtc::Thread* worker_thread() const { return worker_thread_; }
- PortAllocator* port_allocator() const { return port_allocator_; }
-
- // The ID of this session.
- const std::string& id() const { return sid_; }
-
- // Returns the application-level description given by our client.
- // If we are the recipient, this will be NULL until we send an accept.
- const SessionDescription* local_description() const;
-
- // Returns the application-level description given by the other client.
- // If we are the initiator, this will be NULL until we receive an accept.
- const SessionDescription* remote_description() const;
-
- SessionDescription* remote_description();
-
- // Takes ownership of SessionDescription*
- void set_local_description(const SessionDescription* sdesc);
-
- // Takes ownership of SessionDescription*
- void set_remote_description(SessionDescription* sdesc);
-
- void set_initiator(bool initiator);
- bool initiator() const { return initiator_; }
-
- const SessionDescription* initiator_description() const;
-
- // Returns the current state of the session. See the enum above for details.
- // Each time the state changes, we will fire this signal.
- State state() const { return state_; }
- sigslot::signal2<BaseSession* , State> SignalState;
-
- // Returns the last error in the session. See the enum above for details.
- // Each time the an error occurs, we will fire this signal.
- Error error() const { return error_; }
- const std::string& error_desc() const { return error_desc_; }
- sigslot::signal2<BaseSession* , Error> SignalError;
-
- // Updates the state, signaling if necessary.
- virtual void SetState(State state);
-
- // Updates the error state, signaling if necessary.
- // TODO(ronghuawu): remove the SetError method that doesn't take |error_desc|.
- virtual void SetError(Error error, const std::string& error_desc);
-
- void SetIceConfig(const IceConfig& ice_config);
-
- // Start gathering candidates for any new transports, or transports doing an
- // ICE restart.
- void MaybeStartGathering();
-
- protected:
- bool PushdownTransportDescription(ContentSource source,
- ContentAction action,
- std::string* error_desc);
-
- // Handles messages posted to us.
- virtual void OnMessage(rtc::Message *pmsg);
-
- TransportController* transport_controller() {
- return transport_controller_.get();
- }
-
- protected:
- State state_;
- Error error_;
- std::string error_desc_;
-
- private:
- // Helper methods to push local and remote transport descriptions.
- bool PushdownLocalTransportDescription(
- const SessionDescription* sdesc, ContentAction action,
- std::string* error_desc);
- bool PushdownRemoteTransportDescription(
- const SessionDescription* sdesc, ContentAction action,
- std::string* error_desc);
-
- // Log session state.
- void LogState(State old_state, State new_state);
-
- // Returns true and the TransportInfo of the given |content_name|
- // from |description|. Returns false if it's not available.
- static bool GetTransportDescription(const SessionDescription* description,
- const std::string& content_name,
- TransportDescription* info);
-
- rtc::Thread* const signaling_thread_;
- rtc::Thread* const worker_thread_;
- PortAllocator* const port_allocator_;
- const std::string sid_;
- bool initiator_;
- rtc::scoped_ptr<TransportController> transport_controller_;
- rtc::scoped_ptr<const SessionDescription> local_description_;
- rtc::scoped_ptr<SessionDescription> remote_description_;
-};
-
-} // namespace cricket
-
-#endif // WEBRTC_P2P_BASE_SESSION_H_
+// TODO(deadbeef): Remove this file when Chrome build files no longer reference
+// it.
+#error "DONT INCLUDE THIS"
« no previous file with comments | « talk/session/media/currentspeakermonitor_unittest.cc ('k') | webrtc/p2p/base/session.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698