RTCConfiguration.h [plain text]
#ifndef RTCConfiguration_h
#define RTCConfiguration_h
#if ENABLE(MEDIA_STREAM)
#include "RTCConfigurationPrivate.h"
#include "RTCIceServer.h"
#include <wtf/PassRefPtr.h>
#include <wtf/RefCounted.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class RTCConfiguration : public RefCounted<RTCConfiguration> {
public:
static PassRefPtr<RTCConfiguration> create() { return adoptRef(new RTCConfiguration()); }
virtual ~RTCConfiguration() { }
void appendServer(PassRefPtr<RTCIceServer> server) { m_private->appendServer(server->privateServer()); }
size_t numberOfServers() { return m_private->numberOfServers(); }
PassRefPtr<RTCIceServer> server(size_t index)
{
RTCIceServerPrivate* server = m_private->server(index);
if (!server)
return nullptr;
return RTCIceServer::create(server);
}
const String& iceTransports() const { return m_private->iceTransports(); }
void setIceTransports(const String& iceTransports) { m_private->setIceTransports(iceTransports); }
const String& requestIdentity() const { return m_private->requestIdentity(); }
void setRequestIdentity(const String& requestIdentity) { m_private->setRequestIdentity(requestIdentity); }
Vector<RefPtr<RTCIceServer>> iceServers() const
{
Vector<RefPtr<RTCIceServer>> servers;
Vector<RefPtr<RTCIceServerPrivate>> privateServers = m_private->iceServers();
for (auto iter = privateServers.begin(); iter != privateServers.end(); ++iter)
servers.append(RTCIceServer::create(*iter));
return servers;
}
RTCConfigurationPrivate* privateConfiguration() { return m_private.get(); }
private:
RTCConfiguration()
: m_private(RTCConfigurationPrivate::create())
{
}
RefPtr<RTCConfigurationPrivate> m_private;
};
}
#endif // ENABLE(MEDIA_STREAM)
#endif // RTCConfiguration_h