@@ -10,6 +10,11 @@ namespace NYT::NKafka {
10
10
11
11
// //////////////////////////////////////////////////////////////////////////////
12
12
13
+ using TMemberId = TString;
14
+ using TGroupId = TString;
15
+
16
+ // //////////////////////////////////////////////////////////////////////////////
17
+
13
18
DEFINE_ENUM (ERequestType,
14
19
((None) (-1 ))
15
20
((Produce) (0 ))
@@ -20,9 +25,10 @@ DEFINE_ENUM(ERequestType,
20
25
((OffsetCommit) (8 ))
21
26
((OffsetFetch) (9 ))
22
27
((FindCoordinator) (10 ))
23
- ((JoinGroup) (11 )) // Unimplemented.
24
- ((Heartbeat) (12 )) // Unimplemented.
25
- ((SyncGroup) (14 )) // Unimplemented.
28
+ ((JoinGroup) (11 ))
29
+ ((Heartbeat) (12 ))
30
+ ((LeaveGroup) (13 ))
31
+ ((SyncGroup) (14 ))
26
32
((DescribeGroups) (15 )) // Unimplemented.
27
33
((SaslHandshake) (17 ))
28
34
((ApiVersions) (18 ))
@@ -259,7 +265,7 @@ struct TRspFindCoordinator
259
265
struct TReqJoinGroupProtocol
260
266
{
261
267
TString Name;
262
- TString Metadata; // TODO(nadya73): bytes.
268
+ TString Metadata;
263
269
264
270
void Deserialize (IKafkaProtocolReader* reader, int apiVersion);
265
271
};
@@ -268,9 +274,9 @@ struct TReqJoinGroup
268
274
{
269
275
static constexpr ERequestType RequestType = ERequestType::JoinGroup;
270
276
271
- TString GroupId;
277
+ TGroupId GroupId;
272
278
i32 SessionTimeoutMs = 0 ;
273
- TString MemberId;
279
+ TMemberId MemberId;
274
280
TString ProtocolType;
275
281
std::vector<TReqJoinGroupProtocol> Protocols;
276
282
@@ -279,7 +285,7 @@ struct TReqJoinGroup
279
285
280
286
struct TRspJoinGroupMember
281
287
{
282
- TString MemberId;
288
+ TMemberId MemberId;
283
289
TString Metadata; // TODO(nadya73): bytes.
284
290
285
291
void Serialize (IKafkaProtocolWriter* writer, int apiVersion) const ;
@@ -291,7 +297,7 @@ struct TRspJoinGroup
291
297
i32 GenerationId = 0 ;
292
298
TString ProtocolName;
293
299
TString Leader;
294
- TString MemberId;
300
+ TMemberId MemberId;
295
301
std::vector<TRspJoinGroupMember> Members;
296
302
297
303
void Serialize (IKafkaProtocolWriter* writer, int apiVersion) const ;
@@ -301,7 +307,7 @@ struct TRspJoinGroup
301
307
302
308
struct TReqSyncGroupAssignment
303
309
{
304
- TString MemberId;
310
+ TMemberId MemberId;
305
311
TString Assignment;
306
312
307
313
void Deserialize (IKafkaProtocolReader* reader, int apiVersion);
@@ -311,26 +317,18 @@ struct TReqSyncGroup
311
317
{
312
318
static constexpr ERequestType RequestType = ERequestType::SyncGroup;
313
319
314
- TString GroupId;
315
- TString GenerationId;
316
- TString MemberId;
320
+ TGroupId GroupId;
321
+ i32 GenerationId = 0 ;
322
+ TMemberId MemberId;
317
323
std::vector<TReqSyncGroupAssignment> Assignments;
318
324
319
325
void Deserialize (IKafkaProtocolReader* reader, int apiVersion);
320
326
};
321
327
322
- struct TRspSyncGroupAssignment
323
- {
324
- TString Topic;
325
- std::vector<i32 > Partitions;
326
-
327
- void Serialize (IKafkaProtocolWriter* writer, int apiVersion) const ;
328
- };
329
-
330
328
struct TRspSyncGroup
331
329
{
332
330
NKafka::EErrorCode ErrorCode = NKafka::EErrorCode::None;
333
- std::vector<TRspSyncGroupAssignment> Assignments ;
331
+ TString Assignment ;
334
332
335
333
void Serialize (IKafkaProtocolWriter* writer, int apiVersion) const ;
336
334
};
@@ -341,9 +339,9 @@ struct TReqHeartbeat
341
339
{
342
340
static constexpr ERequestType RequestType = ERequestType::Heartbeat;
343
341
344
- TString GroupId;
342
+ TGroupId GroupId;
345
343
i32 GenerationId = 0 ;
346
- TString MemberId;
344
+ TMemberId MemberId;
347
345
348
346
void Deserialize (IKafkaProtocolReader* reader, int apiVersion);
349
347
};
0 commit comments