Skip to content

Commit 28ddc32

Browse files
Rayner Kristantometa-codesync[bot]
authored andcommitted
Revert D88975026: Create MOQTSetupParameters
Differential Revision: D88975026 Original commit changeset: 66a15e09c57a Original Phabricator Diff: D88975026 fbshipit-source-id: 8614eeecf86cc369dadda556ec7f6a4e838b884b
1 parent be50ed9 commit 28ddc32

File tree

4 files changed

+31
-270
lines changed

4 files changed

+31
-270
lines changed

moxygen/mlog/MLogTypes.cpp

Lines changed: 15 additions & 113 deletions
Original file line numberDiff line numberDiff line change
@@ -37,36 +37,32 @@ folly::dynamic MOQTControlMessageParsed::toDynamic() const {
3737
folly::dynamic MOQTClientSetupMessage::toDynamic() const {
3838
folly::dynamic clientSetupObj = folly::dynamic::object;
3939
clientSetupObj["type"] = type;
40-
clientSetupObj["number_of_supported_versions"] = numberOfSupportedVersions;
41-
clientSetupObj["supported_versions"] =
40+
clientSetupObj["numberOfSupportedVersions"] = numberOfSupportedVersions;
41+
clientSetupObj["supportedVersions"] =
4242
folly::dynamic::array(supportedVersions.begin(), supportedVersions.end());
43-
clientSetupObj["number_of_parameters"] = numberOfParameters;
43+
clientSetupObj["numberOfParameters"] = numberOfParameters;
4444

45-
if (!setupParameters.empty()) {
46-
std::vector<folly::dynamic> paramObjects;
47-
paramObjects.reserve(setupParameters.size());
48-
for (const auto& param : setupParameters) {
49-
paramObjects.push_back(setupParameterToDynamic(param));
50-
}
51-
clientSetupObj["setup_parameters"] = folly::dynamic::array(paramObjects);
45+
std::vector<folly::dynamic> paramObjects;
46+
paramObjects.reserve(setupParameters.size());
47+
for (auto& param : setupParameters) {
48+
paramObjects.push_back(param.toDynamic());
5249
}
50+
clientSetupObj["setupParameters"] = folly::dynamic::array(paramObjects);
5351
return clientSetupObj;
5452
}
5553

5654
folly::dynamic MOQTServerSetupMessage::toDynamic() const {
5755
folly::dynamic serverSetupObj = folly::dynamic::object;
5856
serverSetupObj["type"] = type;
59-
serverSetupObj["selected_version"] = selectedVersion;
60-
serverSetupObj["number_of_parameters"] = numberOfParameters;
57+
serverSetupObj["selectedVersion"] = selectedVersion;
58+
serverSetupObj["numberOfParameters"] = numberOfParameters;
6159

62-
if (!setupParameters.empty()) {
63-
std::vector<folly::dynamic> paramObjects;
64-
paramObjects.reserve(setupParameters.size());
65-
for (const auto& param : setupParameters) {
66-
paramObjects.push_back(setupParameterToDynamic(param));
67-
}
68-
serverSetupObj["setup_parameters"] = folly::dynamic::array(paramObjects);
60+
std::vector<folly::dynamic> paramObjects;
61+
paramObjects.reserve(setupParameters.size());
62+
for (auto& param : setupParameters) {
63+
paramObjects.push_back(param.toDynamic());
6964
}
65+
serverSetupObj["setupParameters"] = folly::dynamic::array(paramObjects);
7066
return serverSetupObj;
7167
}
7268

@@ -85,100 +81,6 @@ folly::dynamic MOQTParameter::toDynamic() const {
8581
return obj;
8682
}
8783

88-
// Setup Parameter toDynamic implementations
89-
folly::dynamic MOQTAuthoritySetupParameter::toDynamic() const {
90-
folly::dynamic obj = folly::dynamic::object;
91-
obj["name"] = name;
92-
obj["value"] = value;
93-
return obj;
94-
}
95-
96-
folly::dynamic MOQTAuthorizationTokenSetupParameter::toDynamic() const {
97-
folly::dynamic obj = folly::dynamic::object;
98-
obj["name"] = name;
99-
100-
std::string aliasTypeStr;
101-
switch (aliasType) {
102-
case MOQTAliasType::DELETE:
103-
aliasTypeStr = "delete";
104-
break;
105-
case MOQTAliasType::REGISTER:
106-
aliasTypeStr = "register";
107-
break;
108-
case MOQTAliasType::USE_ALIAS:
109-
aliasTypeStr = "use_alias";
110-
break;
111-
case MOQTAliasType::USE_VALUE:
112-
aliasTypeStr = "use_value";
113-
break;
114-
}
115-
obj["alias_type"] = aliasTypeStr;
116-
117-
if (tokenAlias.hasValue()) {
118-
obj["token_alias"] = tokenAlias.value();
119-
}
120-
if (tokenType.hasValue()) {
121-
obj["token_type"] = tokenType.value();
122-
}
123-
if (tokenValue) {
124-
obj["token_value"] = std::string(
125-
reinterpret_cast<const char*>(tokenValue->data()),
126-
tokenValue->length());
127-
}
128-
return obj;
129-
}
130-
131-
folly::dynamic MOQTPathSetupParameter::toDynamic() const {
132-
folly::dynamic obj = folly::dynamic::object;
133-
obj["name"] = name;
134-
obj["value"] = value;
135-
return obj;
136-
}
137-
138-
folly::dynamic MOQTMaxRequestIdSetupParameter::toDynamic() const {
139-
folly::dynamic obj = folly::dynamic::object;
140-
obj["name"] = name;
141-
obj["value"] = value;
142-
return obj;
143-
}
144-
145-
folly::dynamic MOQTMaxAuthTokenCacheSizeSetupParameter::toDynamic() const {
146-
folly::dynamic obj = folly::dynamic::object;
147-
obj["name"] = name;
148-
obj["value"] = value;
149-
return obj;
150-
}
151-
152-
folly::dynamic MOQTImplementationSetupParameter::toDynamic() const {
153-
folly::dynamic obj = folly::dynamic::object;
154-
obj["name"] = name;
155-
obj["value"] = value;
156-
return obj;
157-
}
158-
159-
folly::dynamic MOQTUnknownSetupParameter::toDynamic() const {
160-
folly::dynamic obj = folly::dynamic::object;
161-
obj["name"] = name;
162-
obj["name_bytes"] = nameBytes;
163-
if (length.hasValue()) {
164-
obj["length"] = length.value();
165-
}
166-
if (value.hasValue()) {
167-
obj["value"] = value.value();
168-
}
169-
if (valueBytes) {
170-
obj["value_bytes"] = std::string(
171-
reinterpret_cast<const char*>(valueBytes->data()),
172-
valueBytes->length());
173-
}
174-
return obj;
175-
}
176-
177-
folly::dynamic setupParameterToDynamic(const MOQTSetupParameter& param) {
178-
return std::visit(
179-
[](const auto& p) -> folly::dynamic { return p.toDynamic(); }, param);
180-
}
181-
18284
folly::dynamic MOQTLocation::toDynamic() const {
18385
folly::dynamic obj = folly::dynamic::object;
18486
obj["group"] = group;

moxygen/mlog/MLogTypes.h

Lines changed: 2 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010

1111
#include <cstdint>
1212
#include <string>
13-
#include <variant>
1413
#include <vector>
1514
#include "folly/Optional.h"
1615
#include "folly/io/IOBuf.h"
@@ -64,76 +63,6 @@ class MOQTParameter {
6463
folly::dynamic toDynamic() const;
6564
};
6665

67-
// Setup Parameter Types (Section 5.2 of the mLog spec)
68-
enum MOQTAliasType { DELETE, REGISTER, USE_ALIAS, USE_VALUE };
69-
70-
struct MOQTAuthoritySetupParameter {
71-
std::string name = "authority";
72-
std::string value;
73-
74-
folly::dynamic toDynamic() const;
75-
};
76-
77-
struct MOQTAuthorizationTokenSetupParameter {
78-
std::string name = "authorization_token";
79-
MOQTAliasType aliasType;
80-
folly::Optional<uint64_t> tokenAlias;
81-
folly::Optional<uint64_t> tokenType;
82-
std::unique_ptr<folly::IOBuf> tokenValue;
83-
84-
folly::dynamic toDynamic() const;
85-
};
86-
87-
struct MOQTPathSetupParameter {
88-
std::string name = "path";
89-
std::string value;
90-
91-
folly::dynamic toDynamic() const;
92-
};
93-
94-
struct MOQTMaxRequestIdSetupParameter {
95-
std::string name = "max_request_id";
96-
uint64_t value{0};
97-
98-
folly::dynamic toDynamic() const;
99-
};
100-
101-
struct MOQTMaxAuthTokenCacheSizeSetupParameter {
102-
std::string name = "max_auth_token_cache_size";
103-
uint64_t value{0};
104-
105-
folly::dynamic toDynamic() const;
106-
};
107-
108-
struct MOQTImplementationSetupParameter {
109-
std::string name = "implementation";
110-
std::string value;
111-
112-
folly::dynamic toDynamic() const;
113-
};
114-
115-
struct MOQTUnknownSetupParameter {
116-
std::string name = "unknown";
117-
uint64_t nameBytes{0};
118-
folly::Optional<uint64_t> length;
119-
folly::Optional<uint64_t> value;
120-
std::unique_ptr<folly::IOBuf> valueBytes;
121-
122-
folly::dynamic toDynamic() const;
123-
};
124-
125-
using MOQTSetupParameter = std::variant<
126-
MOQTAuthoritySetupParameter,
127-
MOQTAuthorizationTokenSetupParameter,
128-
MOQTPathSetupParameter,
129-
MOQTMaxRequestIdSetupParameter,
130-
MOQTMaxAuthTokenCacheSizeSetupParameter,
131-
MOQTImplementationSetupParameter,
132-
MOQTUnknownSetupParameter>;
133-
134-
// Helper to convert variant to dynamic
135-
folly::dynamic setupParameterToDynamic(const MOQTSetupParameter& param);
136-
13766
enum MOQTByteStringType { STRING_VALUE, VALUE_BYTES, UNKNOWN_VALUE };
13867
struct MOQTByteString {
13968
std::string value;
@@ -176,7 +105,7 @@ class MOQTClientSetupMessage : public MOQTBaseControlMessage {
176105
uint64_t numberOfSupportedVersions{0};
177106
std::vector<uint64_t> supportedVersions;
178107
uint64_t numberOfParameters{0};
179-
std::vector<MOQTSetupParameter> setupParameters;
108+
std::vector<MOQTParameter> setupParameters;
180109
};
181110

182111
class MOQTServerSetupMessage : public MOQTBaseControlMessage {
@@ -187,7 +116,7 @@ class MOQTServerSetupMessage : public MOQTBaseControlMessage {
187116
folly::dynamic toDynamic() const override;
188117
uint64_t selectedVersion{0};
189118
uint64_t numberOfParameters{0};
190-
std::vector<MOQTSetupParameter> setupParameters;
119+
std::vector<MOQTParameter> setupParameters;
191120
};
192121

193122
class MOQTGoaway : public MOQTBaseControlMessage {

moxygen/mlog/MLogger.cpp

Lines changed: 12 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ MOQTClientSetupMessage MLogger::createClientSetupControlMessage(
9898
uint64_t numberOfSupportedVersions,
9999
std::vector<uint64_t> supportedVersions,
100100
uint64_t numberOfParameters,
101-
std::vector<MOQTSetupParameter> params) {
101+
std::vector<MOQTParameter> params) {
102102
MOQTClientSetupMessage client;
103103
client.numberOfSupportedVersions = numberOfSupportedVersions;
104104
client.supportedVersions = std::move(supportedVersions);
@@ -110,7 +110,7 @@ MOQTClientSetupMessage MLogger::createClientSetupControlMessage(
110110
MOQTServerSetupMessage MLogger::createServerSetupControlMessage(
111111
uint64_t selectedVersion,
112112
uint64_t number_of_parameters,
113-
std::vector<MOQTSetupParameter> params) {
113+
std::vector<MOQTParameter> params) {
114114
MOQTServerSetupMessage server;
115115
server.selectedVersion = selectedVersion;
116116
server.numberOfParameters = number_of_parameters;
@@ -189,15 +189,12 @@ void MLogger::logClientSetup(
189189
std::vector<uint64_t> versions = setup.supportedVersions;
190190

191191
// Add Params to params vector
192-
std::vector<MOQTSetupParameter> params =
193-
convertSetupParamsToMoQTSetupParams(setup.params);
194-
195-
auto msg = std::make_unique<MOQTClientSetupMessage>();
196-
msg->numberOfSupportedVersions = versions.size();
197-
msg->supportedVersions = std::move(versions);
198-
msg->numberOfParameters = params.size();
199-
msg->setupParameters = std::move(params);
192+
std::vector<MOQTParameter> params =
193+
convertSetupParamsToMoQTParams(setup.params);
200194

195+
std::unique_ptr<MOQTBaseControlMessage> msg =
196+
std::make_unique<MOQTClientSetupMessage>(createClientSetupControlMessage(
197+
versions.size(), versions, params.size(), params));
201198
logControlMessage(
202199
controlType, kFirstBidiStreamId, folly::none, std::move(msg));
203200
}
@@ -206,14 +203,11 @@ void MLogger::logServerSetup(
206203
const ServerSetup& setup,
207204
ControlMessageType controlType) {
208205
// Add Params to params vector
209-
std::vector<MOQTSetupParameter> params =
210-
convertSetupParamsToMoQTSetupParams(setup.params);
211-
212-
auto msg = std::make_unique<MOQTServerSetupMessage>();
213-
msg->selectedVersion = setup.selectedVersion;
214-
msg->numberOfParameters = params.size();
215-
msg->setupParameters = std::move(params);
216-
206+
std::vector<MOQTParameter> params =
207+
convertSetupParamsToMoQTParams(setup.params);
208+
std::unique_ptr<MOQTBaseControlMessage> msg =
209+
std::make_unique<MOQTServerSetupMessage>(createServerSetupControlMessage(
210+
setup.selectedVersion, params.size(), params));
217211
logControlMessage(
218212
controlType, kFirstBidiStreamId, folly::none, std::move(msg));
219213
}
@@ -772,68 +766,6 @@ std::vector<MOQTParameter> MLogger::convertSetupParamsToMoQTParams(
772766
return moqParams;
773767
}
774768

775-
std::vector<MOQTSetupParameter> MLogger::convertSetupParamsToMoQTSetupParams(
776-
const SetupParameters& params) {
777-
std::vector<MOQTSetupParameter> moqSetupParams;
778-
779-
for (const auto& param : params) {
780-
switch (param.key) {
781-
case folly::to_underlying(SetupKey::PATH): {
782-
MOQTPathSetupParameter p;
783-
p.value = param.asString;
784-
moqSetupParams.emplace_back(std::move(p));
785-
break;
786-
}
787-
case folly::to_underlying(SetupKey::MAX_REQUEST_ID): {
788-
MOQTMaxRequestIdSetupParameter p;
789-
p.value = param.asUint64;
790-
moqSetupParams.emplace_back(std::move(p));
791-
break;
792-
}
793-
case folly::to_underlying(SetupKey::MAX_AUTH_TOKEN_CACHE_SIZE): {
794-
MOQTMaxAuthTokenCacheSizeSetupParameter p;
795-
p.value = param.asUint64;
796-
moqSetupParams.emplace_back(std::move(p));
797-
break;
798-
}
799-
case folly::to_underlying(SetupKey::AUTHORITY): {
800-
MOQTAuthoritySetupParameter p;
801-
p.value = param.asString;
802-
moqSetupParams.emplace_back(std::move(p));
803-
break;
804-
}
805-
case folly::to_underlying(SetupKey::MOQT_IMPLEMENTATION): {
806-
MOQTImplementationSetupParameter p;
807-
p.value = param.asString;
808-
moqSetupParams.emplace_back(std::move(p));
809-
break;
810-
}
811-
case folly::to_underlying(SetupKey::AUTHORIZATION_TOKEN): {
812-
// AUTHORIZATION_TOKEN is more complex, using unknown for now
813-
// TODO: properly parse authorization token
814-
MOQTUnknownSetupParameter p;
815-
p.nameBytes = param.key;
816-
moqSetupParams.emplace_back(std::move(p));
817-
break;
818-
}
819-
default: {
820-
MOQTUnknownSetupParameter p;
821-
p.nameBytes = param.key;
822-
// Check if string value is initialized (odd keys are strings per MoQ
823-
// spec)
824-
if (param.key % 2) {
825-
p.valueBytes = folly::IOBuf::copyBuffer(param.asString);
826-
} else {
827-
p.value = param.asUint64;
828-
}
829-
moqSetupParams.emplace_back(std::move(p));
830-
break;
831-
}
832-
}
833-
}
834-
return moqSetupParams;
835-
}
836-
837769
std::vector<MOQTParameter> MLogger::convertTrackParamsToMoQTParams(
838770
const TrackRequestParameters& params) {
839771
std::vector<MOQTParameter> moqParams;

0 commit comments

Comments
 (0)