RTCSessionDescriptionRequestImpl.cpp [plain text]
#include "config.h"
#if ENABLE(MEDIA_STREAM)
#include "RTCSessionDescriptionRequestImpl.h"
#include "RTCPeerConnection.h"
#include "RTCPeerConnectionErrorCallback.h"
#include "RTCSessionDescription.h"
#include "RTCSessionDescriptionCallback.h"
#include "RTCSessionDescriptionDescriptor.h"
namespace WebCore {
Ref<RTCSessionDescriptionRequestImpl> RTCSessionDescriptionRequestImpl::create(ScriptExecutionContext* context, PassRefPtr<RTCSessionDescriptionCallback> successCallback, PassRefPtr<RTCPeerConnectionErrorCallback> errorCallback)
{
Ref<RTCSessionDescriptionRequestImpl> request = adoptRef(*new RTCSessionDescriptionRequestImpl(context, successCallback, errorCallback));
request->suspendIfNeeded();
return request;
}
RTCSessionDescriptionRequestImpl::RTCSessionDescriptionRequestImpl(ScriptExecutionContext* context, PassRefPtr<RTCSessionDescriptionCallback> successCallback, PassRefPtr<RTCPeerConnectionErrorCallback> errorCallback)
: ActiveDOMObject(context)
, m_successCallback(successCallback)
, m_errorCallback(errorCallback)
{
}
RTCSessionDescriptionRequestImpl::~RTCSessionDescriptionRequestImpl()
{
}
void RTCSessionDescriptionRequestImpl::requestSucceeded(PassRefPtr<RTCSessionDescriptionDescriptor> descriptor)
{
if (m_successCallback) {
RefPtr<RTCSessionDescription> sessionDescription = RTCSessionDescription::create(descriptor);
m_successCallback->handleEvent(sessionDescription.get());
}
clear();
}
void RTCSessionDescriptionRequestImpl::requestFailed(const String& error)
{
if (m_errorCallback)
m_errorCallback->handleEvent(DOMError::create(error).ptr());
clear();
}
void RTCSessionDescriptionRequestImpl::stop()
{
clear();
}
const char* RTCSessionDescriptionRequestImpl::activeDOMObjectName() const
{
return "RTCSessionDescriptionRequestImpl";
}
bool RTCSessionDescriptionRequestImpl::canSuspendForPageCache() const
{
return false;
}
void RTCSessionDescriptionRequestImpl::clear()
{
m_successCallback = nullptr;
m_errorCallback = nullptr;
}
}
#endif // ENABLE(MEDIA_STREAM)