MediaEndpointConfiguration.h [plain text]
#ifndef MediaEndpointConfiguration_h
#define MediaEndpointConfiguration_h
#if ENABLE(WEB_RTC)
#include "PeerConnectionStates.h"
#include "URL.h"
#include <wtf/RefCounted.h>
#include <wtf/RefPtr.h>
#include <wtf/Vector.h>
#include <wtf/text/WTFString.h>
namespace WebCore {
class IceServerInfo : public RefCounted<IceServerInfo> {
public:
static RefPtr<IceServerInfo> create(const Vector<String>& urls, const String& credential, const String& username)
{
return adoptRef(new IceServerInfo(urls, credential, username));
}
virtual ~IceServerInfo() { }
const Vector<URL>& urls() const { return m_urls; }
const String& credential() const { return m_credential; }
const String& username() const { return m_username; }
private:
IceServerInfo(const Vector<String>& urls, const String& credential, const String& username);
Vector<URL> m_urls;
String m_credential;
String m_username;
};
class MediaEndpointConfiguration : public RefCounted<MediaEndpointConfiguration> {
public:
using IceTransportPolicy = PeerConnectionStates::IceTransportPolicy;
using BundlePolicy = PeerConnectionStates::BundlePolicy;
static RefPtr<MediaEndpointConfiguration> create(Vector<RefPtr<IceServerInfo>>& iceServers, IceTransportPolicy iceTransportPolicy, BundlePolicy bundlePolicy)
{
return adoptRef(new MediaEndpointConfiguration(iceServers, iceTransportPolicy, bundlePolicy));
}
const Vector<RefPtr<IceServerInfo>>& iceServers() const { return m_iceServers; }
IceTransportPolicy iceTransportPolicy() const { return m_iceTransportPolicy; }
BundlePolicy bundlePolicy() const { return m_bundlePolicy; }
private:
MediaEndpointConfiguration(Vector<RefPtr<IceServerInfo>>&, IceTransportPolicy, BundlePolicy);
Vector<RefPtr<IceServerInfo>> m_iceServers;
IceTransportPolicy m_iceTransportPolicy;
BundlePolicy m_bundlePolicy;
};
}
#endif // ENABLE(WEB_RTC)
#endif // MediaEndpointConfiguration_h