DeprecatedPeerConnection.h [plain text]
#ifndef DeprecatedPeerConnection_h
#define DeprecatedPeerConnection_h
#if ENABLE(MEDIA_STREAM)
#include "ActiveDOMObject.h"
#include "DeprecatedPeerConnectionHandler.h"
#include "DeprecatedPeerConnectionHandlerClient.h"
#include "EventTarget.h"
#include "ExceptionBase.h"
#include "MediaStream.h"
#include "MediaStreamList.h"
#include "SignalingCallback.h"
#include "Timer.h"
#include <wtf/OwnPtr.h>
#include <wtf/RefCounted.h>
namespace WebCore {
class DeprecatedPeerConnection : public RefCounted<DeprecatedPeerConnection>, public DeprecatedPeerConnectionHandlerClient, public EventTarget, public ActiveDOMObject {
public:
static PassRefPtr<DeprecatedPeerConnection> create(ScriptExecutionContext*, const String& serverConfiguration, PassRefPtr<SignalingCallback>);
~DeprecatedPeerConnection();
void processSignalingMessage(const String& message, ExceptionCode&);
ReadyState readyState() const;
void send(const String& text, ExceptionCode&);
void addStream(const PassRefPtr<MediaStream>, ExceptionCode&);
void removeStream(MediaStream*, ExceptionCode&);
MediaStreamList* localStreams() const;
MediaStreamList* remoteStreams() const;
void close(ExceptionCode&);
DEFINE_ATTRIBUTE_EVENT_LISTENER(connecting);
DEFINE_ATTRIBUTE_EVENT_LISTENER(open);
DEFINE_ATTRIBUTE_EVENT_LISTENER(message);
DEFINE_ATTRIBUTE_EVENT_LISTENER(statechange);
DEFINE_ATTRIBUTE_EVENT_LISTENER(addstream);
DEFINE_ATTRIBUTE_EVENT_LISTENER(removestream);
virtual void didCompleteICEProcessing();
virtual void didGenerateSDP(const String& sdp);
virtual void didReceiveDataStreamMessage(const char* data, size_t length);
virtual void didAddRemoteStream(PassRefPtr<MediaStreamDescriptor>);
virtual void didRemoveRemoteStream(MediaStreamDescriptor*);
virtual void didChangeState(ReadyState state) { changeReadyState(state); }
virtual const AtomicString& interfaceName() const;
virtual ScriptExecutionContext* scriptExecutionContext() const;
virtual void stop();
using RefCounted<DeprecatedPeerConnection>::ref;
using RefCounted<DeprecatedPeerConnection>::deref;
private:
DeprecatedPeerConnection(ScriptExecutionContext*, const String& serverConfiguration, PassRefPtr<SignalingCallback>);
virtual EventTargetData* eventTargetData();
virtual EventTargetData* ensureEventTargetData();
virtual void refEventTarget() { ref(); }
virtual void derefEventTarget() { deref(); }
void scheduleInitialNegotiation();
void initialNegotiationTimerFired(Timer<DeprecatedPeerConnection>*);
void ensureStreamChangeScheduled();
void streamChangeTimerFired(Timer<DeprecatedPeerConnection>*);
void scheduleReadyStateChange(ReadyState);
void readyStateChangeTimerFired(Timer<DeprecatedPeerConnection>*);
void changeReadyState(ReadyState);
RefPtr<SignalingCallback> m_signalingCallback;
ReadyState m_readyState;
bool m_iceStarted;
RefPtr<MediaStreamList> m_localStreams;
RefPtr<MediaStreamList> m_remoteStreams;
EventTargetData m_eventTargetData;
Timer<DeprecatedPeerConnection> m_initialNegotiationTimer;
Timer<DeprecatedPeerConnection> m_streamChangeTimer;
Timer<DeprecatedPeerConnection> m_readyStateChangeTimer;
MediaStreamDescriptorVector m_pendingAddStreams;
MediaStreamDescriptorVector m_pendingRemoveStreams;
Vector<ReadyState> m_pendingReadyStates;
OwnPtr<DeprecatedPeerConnectionHandler> m_peerHandler;
};
}
#endif // ENABLE(MEDIA_STREAM)
#endif // DeprecatedPeerConnection_h