3
3
4
4
namespace NKafka {
5
5
6
- static constexpr TKafkaUint16 ASSIGNMENT_VERSION = 3 ;
7
-
8
6
//
9
7
// TConsumerProtocolSubscription
10
8
//
@@ -115,67 +113,36 @@ i32 TConsumerProtocolSubscription::TopicPartition::Size(TKafkaVersion _version)
115
113
//
116
114
// TConsumerProtocolAssignment
117
115
//
116
+
117
+ const TConsumerProtocolSubscription::TopicPartition::TopicPartition::TopicMeta::Type TConsumerProtocolAssignment::TopicPartition::TopicPartition::TopicMeta::Default = {" " };
118
118
TConsumerProtocolAssignment::TConsumerProtocolAssignment ()
119
119
{}
120
120
121
- void TConsumerProtocolAssignment::Read (TKafkaReadable& r, TKafkaVersion v) {
122
- bool useVarintSize = (v > 3 );
123
-
124
- ui32 size;
125
- if (useVarintSize) {
126
- size = r.readUnsignedVarint <ui32>();
127
- } else {
128
- TKafkaInt32 s;
129
- r >> s;
130
- size = static_cast <ui32>(s);
131
- }
132
- Y_UNUSED (size);
133
-
134
- TKafkaVersion assignmentVersion;
135
- r >> assignmentVersion;
136
-
137
- if (!NPrivate::VersionCheck<MessageMeta::PresentVersions.Min ,
138
- MessageMeta::PresentVersions.Max >(assignmentVersion))
139
- {
140
- ythrow yexception () << " Can't read version " << assignmentVersion
141
- << " of TConsumerProtocolAssignment" ;
121
+ void TConsumerProtocolAssignment::Read (TKafkaReadable& _readable, TKafkaVersion _version) {
122
+ if (!NPrivate::VersionCheck<MessageMeta::PresentVersions.Min , MessageMeta::PresentVersions.Max >(_version)) {
123
+ ythrow yexception () << " Can't read version " << _version << " of TConsumerProtocolAssignment" ;
142
124
}
125
+ NPrivate::Read<AssignedPartitionsMeta>(_readable, _version, AssignedPartitions);
126
+ NPrivate::Read<UserDataMeta>(_readable, _version, UserData);
143
127
144
- NPrivate::Read<AssignedPartitionsMeta>(r, assignmentVersion, AssignedPartitions);
145
- NPrivate::Read<UserDataMeta>(r, assignmentVersion, UserData);
146
-
147
- if (NPrivate::VersionCheck<MessageMeta::FlexibleVersions.Min ,
148
- MessageMeta::FlexibleVersions.Max >(assignmentVersion))
149
- {
150
- ui32 numTaggedFields = r.readUnsignedVarint <ui32>();
151
- for (ui32 i = 0 ; i < numTaggedFields; ++i) {
152
- ui32 tag = r.readUnsignedVarint <ui32>();
153
- Y_UNUSED (tag);
154
-
155
- ui32 tagSize = r.readUnsignedVarint <ui32>();
156
- r.skip (tagSize);
157
-
158
- r.skip (tagSize);
128
+ if (NPrivate::VersionCheck<MessageMeta::FlexibleVersions.Min , MessageMeta::FlexibleVersions.Max >(_version)) {
129
+ ui32 _numTaggedFields = _readable.readUnsignedVarint <ui32>();
130
+ for (ui32 _i = 0 ; _i < _numTaggedFields; ++_i) {
131
+ ui32 _tag = _readable.readUnsignedVarint <ui32>();
132
+ ui32 _size = _readable.readUnsignedVarint <ui32>();
133
+ switch (_tag) {
134
+ default :
135
+ _readable.skip (_size); // skip unknown tag
136
+ break ;
137
+ }
159
138
}
160
139
}
161
140
}
162
141
163
142
void TConsumerProtocolAssignment::Write (TKafkaWritable& _writable, TKafkaVersion _version) const {
164
- auto useVarintSize = _version > 3 ;
165
- _version = ASSIGNMENT_VERSION;
166
-
167
143
if (!NPrivate::VersionCheck<MessageMeta::PresentVersions.Min , MessageMeta::PresentVersions.Max >(_version)) {
168
144
ythrow yexception () << " Can't write version " << _version << " of TConsumerProtocolAssignment" ;
169
145
}
170
-
171
- if (useVarintSize) {
172
- _writable.writeUnsignedVarint (Size (_version) + 1 );
173
- } else {
174
- TKafkaInt32 size = Size (_version);
175
- _writable << size;
176
- }
177
-
178
- _writable << _version;
179
146
NPrivate::TWriteCollector _collector;
180
147
NPrivate::Write<AssignedPartitionsMeta>(_collector, _writable, _version, AssignedPartitions);
181
148
NPrivate::Write<UserDataMeta>(_collector, _writable, _version, UserData);
@@ -186,15 +153,14 @@ void TConsumerProtocolAssignment::Write(TKafkaWritable& _writable, TKafkaVersion
186
153
}
187
154
188
155
i32 TConsumerProtocolAssignment::Size (TKafkaVersion _version) const {
189
- _version = ASSIGNMENT_VERSION;
190
156
NPrivate::TSizeCollector _collector;
191
157
NPrivate::Size <AssignedPartitionsMeta>(_collector, _version, AssignedPartitions);
192
158
NPrivate::Size <UserDataMeta>(_collector, _version, UserData);
193
159
194
160
if (NPrivate::VersionCheck<MessageMeta::FlexibleVersions.Min , MessageMeta::FlexibleVersions.Max >(_version)) {
195
161
_collector.Size += NPrivate::SizeOfUnsignedVarint (_collector.NumTaggedFields );
196
162
}
197
- return _collector.Size + sizeof (_version) ;
163
+ return _collector.Size ;
198
164
}
199
165
200
166
@@ -205,8 +171,6 @@ i32 TConsumerProtocolAssignment::Size(TKafkaVersion _version) const {
205
171
TConsumerProtocolAssignment::TopicPartition::TopicPartition ()
206
172
{}
207
173
208
- const TConsumerProtocolAssignment::TopicPartition::TopicPartition::TopicMeta::Type TConsumerProtocolAssignment::TopicPartition::TopicPartition::TopicMeta::Default = {" " };
209
-
210
174
void TConsumerProtocolAssignment::TopicPartition::Read (TKafkaReadable& _readable, TKafkaVersion _version) {
211
175
if (!NPrivate::VersionCheck<MessageMeta::PresentVersions.Min , MessageMeta::PresentVersions.Max >(_version)) {
212
176
ythrow yexception () << " Can't read version " << _version << " of TConsumerProtocolAssignment::TopicPartition" ;
0 commit comments