SpeechRecognitionRequestInfo.h [plain text]
#pragma once
#include "ClientOrigin.h"
#include "FrameIdentifier.h"
#include "SpeechRecognitionConnectionClientIdentifier.h"
namespace WebCore {
struct SpeechRecognitionRequestInfo {
SpeechRecognitionConnectionClientIdentifier clientIdentifier;
String lang;
bool continuous { false };
bool interimResults { false };
uint64_t maxAlternatives { 1 };
ClientOrigin clientOrigin;
FrameIdentifier frameIdentifier;
template<class Encoder> void encode(Encoder&) const;
template<class Decoder> static Optional<SpeechRecognitionRequestInfo> decode(Decoder&);
};
template<class Encoder>
void SpeechRecognitionRequestInfo::encode(Encoder& encoder) const
{
encoder << clientIdentifier << lang << continuous << interimResults << maxAlternatives << clientOrigin << frameIdentifier;
}
template<class Decoder>
Optional<SpeechRecognitionRequestInfo> SpeechRecognitionRequestInfo::decode(Decoder& decoder)
{
Optional<SpeechRecognitionConnectionClientIdentifier> clientIdentifier;
decoder >> clientIdentifier;
if (!clientIdentifier)
return WTF::nullopt;
Optional<String> lang;
decoder >> lang;
if (!lang)
return WTF::nullopt;
Optional<bool> continuous;
decoder >> continuous;
if (!continuous)
return WTF::nullopt;
Optional<bool> interimResults;
decoder >> interimResults;
if (!interimResults)
return WTF::nullopt;
Optional<uint64_t> maxAlternatives;
decoder >> maxAlternatives;
if (!maxAlternatives)
return WTF::nullopt;
Optional<ClientOrigin> clientOrigin;
decoder >> clientOrigin;
if (!clientOrigin)
return WTF::nullopt;
Optional<FrameIdentifier> frameIdentifier;
decoder >> frameIdentifier;
if (!frameIdentifier)
return WTF::nullopt;
return {{
WTFMove(*clientIdentifier),
WTFMove(*lang),
WTFMove(*continuous),
WTFMove(*interimResults),
WTFMove(*maxAlternatives),
WTFMove(*clientOrigin),
WTFMove(*frameIdentifier)
}};
}
}