28
28
****************************************************************************/
29
29
30
30
31
- static int Consumer_clear (Consumer * self ) {
32
- if (self -> on_assign ) {
33
- Py_DECREF (self -> on_assign );
34
- self -> on_assign = NULL ;
31
+ static int Consumer_clear (Handle * self ) {
32
+ if (self -> u . Consumer . on_assign ) {
33
+ Py_DECREF (self -> u . Consumer . on_assign );
34
+ self -> u . Consumer . on_assign = NULL ;
35
35
}
36
- if (self -> on_revoke ) {
37
- Py_DECREF (self -> on_revoke );
38
- self -> on_revoke = NULL ;
36
+ if (self -> u . Consumer . on_revoke ) {
37
+ Py_DECREF (self -> u . Consumer . on_revoke );
38
+ self -> u . Consumer . on_revoke = NULL ;
39
39
}
40
- if (self -> on_commit ) {
41
- Py_DECREF (self -> on_commit );
42
- self -> on_commit = NULL ;
40
+ if (self -> u . Consumer . on_commit ) {
41
+ Py_DECREF (self -> u . Consumer . on_commit );
42
+ self -> u . Consumer . on_commit = NULL ;
43
43
}
44
+
45
+ Handle_clear (self );
46
+
44
47
return 0 ;
45
48
}
46
49
47
- static void Consumer_dealloc (Consumer * self ) {
50
+ static void Consumer_dealloc (Handle * self ) {
48
51
PyObject_GC_UnTrack (self );
49
52
50
53
Consumer_clear (self );
@@ -55,12 +58,17 @@ static void Consumer_dealloc (Consumer *self) {
55
58
Py_TYPE (self )-> tp_free ((PyObject * )self );
56
59
}
57
60
58
- static int Consumer_traverse (Consumer * self ,
59
- visitproc visit , void * arg ) {
60
- if (self -> on_assign )
61
- Py_VISIT (self -> on_assign );
62
- if (self -> on_revoke )
63
- Py_VISIT (self -> on_revoke );
61
+ static int Consumer_traverse (Handle * self ,
62
+ visitproc visit , void * arg ) {
63
+ if (self -> u .Consumer .on_assign )
64
+ Py_VISIT (self -> u .Consumer .on_assign );
65
+ if (self -> u .Consumer .on_revoke )
66
+ Py_VISIT (self -> u .Consumer .on_revoke );
67
+ if (self -> u .Consumer .on_commit )
68
+ Py_VISIT (self -> u .Consumer .on_commit );
69
+
70
+ Handle_traverse (self , visit , arg );
71
+
64
72
return 0 ;
65
73
}
66
74
@@ -69,7 +77,7 @@ static int Consumer_traverse (Consumer *self,
69
77
70
78
71
79
72
- static PyObject * Consumer_subscribe (Consumer * self , PyObject * args ,
80
+ static PyObject * Consumer_subscribe (Handle * self , PyObject * args ,
73
81
PyObject * kwargs ) {
74
82
75
83
rd_kafka_topic_partition_list_t * topics ;
@@ -130,29 +138,29 @@ static PyObject *Consumer_subscribe (Consumer *self, PyObject *args,
130
138
/*
131
139
* Update rebalance callbacks
132
140
*/
133
- if (self -> on_assign ) {
134
- Py_DECREF (self -> on_assign );
135
- self -> on_assign = NULL ;
141
+ if (self -> u . Consumer . on_assign ) {
142
+ Py_DECREF (self -> u . Consumer . on_assign );
143
+ self -> u . Consumer . on_assign = NULL ;
136
144
}
137
145
if (on_assign ) {
138
- self -> on_assign = on_assign ;
139
- Py_INCREF (self -> on_assign );
146
+ self -> u . Consumer . on_assign = on_assign ;
147
+ Py_INCREF (self -> u . Consumer . on_assign );
140
148
}
141
149
142
- if (self -> on_revoke ) {
143
- Py_DECREF (self -> on_revoke );
144
- self -> on_revoke = NULL ;
150
+ if (self -> u . Consumer . on_revoke ) {
151
+ Py_DECREF (self -> u . Consumer . on_revoke );
152
+ self -> u . Consumer . on_revoke = NULL ;
145
153
}
146
154
if (on_revoke ) {
147
- self -> on_revoke = on_revoke ;
148
- Py_INCREF (self -> on_revoke );
155
+ self -> u . Consumer . on_revoke = on_revoke ;
156
+ Py_INCREF (self -> u . Consumer . on_revoke );
149
157
}
150
158
151
159
Py_RETURN_NONE ;
152
160
}
153
161
154
162
155
- static PyObject * Consumer_unsubscribe (Consumer * self ,
163
+ static PyObject * Consumer_unsubscribe (Handle * self ,
156
164
PyObject * ignore ) {
157
165
158
166
rd_kafka_resp_err_t err ;
@@ -169,15 +177,15 @@ static PyObject *Consumer_unsubscribe (Consumer *self,
169
177
}
170
178
171
179
172
- static PyObject * Consumer_assign (Consumer * self , PyObject * tlist ) {
180
+ static PyObject * Consumer_assign (Handle * self , PyObject * tlist ) {
173
181
174
182
rd_kafka_topic_partition_list_t * c_parts ;
175
183
rd_kafka_resp_err_t err ;
176
184
177
185
if (!(c_parts = py_to_c_parts (tlist )))
178
186
return NULL ;
179
187
180
- self -> rebalance_assigned ++ ;
188
+ self -> u . Consumer . rebalance_assigned ++ ;
181
189
182
190
err = rd_kafka_assign (self -> rk , c_parts );
183
191
@@ -194,11 +202,11 @@ static PyObject *Consumer_assign (Consumer *self, PyObject *tlist) {
194
202
}
195
203
196
204
197
- static PyObject * Consumer_unassign (Consumer * self , PyObject * ignore ) {
205
+ static PyObject * Consumer_unassign (Handle * self , PyObject * ignore ) {
198
206
199
207
rd_kafka_resp_err_t err ;
200
208
201
- self -> rebalance_assigned ++ ;
209
+ self -> u . Consumer . rebalance_assigned ++ ;
202
210
203
211
err = rd_kafka_assign (self -> rk , NULL );
204
212
if (err ) {
@@ -213,7 +221,7 @@ static PyObject *Consumer_unassign (Consumer *self, PyObject *ignore) {
213
221
214
222
215
223
216
- static PyObject * Consumer_commit (Consumer * self , PyObject * args ,
224
+ static PyObject * Consumer_commit (Handle * self , PyObject * args ,
217
225
PyObject * kwargs ) {
218
226
219
227
rd_kafka_resp_err_t err ;
@@ -281,7 +289,7 @@ static PyObject *Consumer_commit (Consumer *self, PyObject *args,
281
289
282
290
283
291
284
- static PyObject * Consumer_committed (Consumer * self , PyObject * args ,
292
+ static PyObject * Consumer_committed (Handle * self , PyObject * args ,
285
293
PyObject * kwargs ) {
286
294
287
295
PyObject * plist ;
@@ -317,7 +325,7 @@ static PyObject *Consumer_committed (Consumer *self, PyObject *args,
317
325
}
318
326
319
327
320
- static PyObject * Consumer_position (Consumer * self , PyObject * args ,
328
+ static PyObject * Consumer_position (Handle * self , PyObject * args ,
321
329
PyObject * kwargs ) {
322
330
323
331
PyObject * plist ;
@@ -352,7 +360,7 @@ static PyObject *Consumer_position (Consumer *self, PyObject *args,
352
360
353
361
354
362
355
- static PyObject * Consumer_poll (Consumer * self , PyObject * args ,
363
+ static PyObject * Consumer_poll (Handle * self , PyObject * args ,
356
364
PyObject * kwargs ) {
357
365
double tmout = -1.0f ;
358
366
static char * kws [] = { "timeout" , NULL };
@@ -384,7 +392,7 @@ static PyObject *Consumer_poll (Consumer *self, PyObject *args,
384
392
}
385
393
386
394
387
- static PyObject * Consumer_close (Consumer * self , PyObject * ignore ) {
395
+ static PyObject * Consumer_close (Handle * self , PyObject * ignore ) {
388
396
self -> thread_state = PyEval_SaveThread ();
389
397
rd_kafka_consumer_close (self -> rk );
390
398
PyEval_RestoreThread (self -> thread_state );
@@ -523,7 +531,7 @@ static PyObject *Consumer_new (PyTypeObject *type, PyObject *args,
523
531
PyTypeObject ConsumerType = {
524
532
PyVarObject_HEAD_INIT (NULL , 0 )
525
533
"cimpl.Consumer" , /*tp_name*/
526
- sizeof (Consumer ), /*tp_basicsize*/
534
+ sizeof (Handle ), /*tp_basicsize*/
527
535
0 , /*tp_itemsize*/
528
536
(destructor )Consumer_dealloc , /*tp_dealloc*/
529
537
0 , /*tp_print*/
@@ -584,14 +592,16 @@ PyTypeObject ConsumerType = {
584
592
static void Consumer_rebalance_cb (rd_kafka_t * rk , rd_kafka_resp_err_t err ,
585
593
rd_kafka_topic_partition_list_t * c_parts ,
586
594
void * opaque ) {
587
- Consumer * self = opaque ;
595
+ Handle * self = opaque ;
588
596
589
597
PyEval_RestoreThread (self -> thread_state );
590
598
591
- self -> rebalance_assigned = 0 ;
599
+ self -> u . Consumer . rebalance_assigned = 0 ;
592
600
593
- if ((err == RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS && self -> on_assign ) ||
594
- (err == RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS && self -> on_revoke )) {
601
+ if ((err == RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS &&
602
+ self -> u .Consumer .on_assign ) ||
603
+ (err == RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS &&
604
+ self -> u .Consumer .on_revoke )) {
595
605
PyObject * parts ;
596
606
PyObject * args , * result ;
597
607
@@ -612,7 +622,8 @@ static void Consumer_rebalance_cb (rd_kafka_t *rk, rd_kafka_resp_err_t err,
612
622
613
623
result = PyObject_CallObject (
614
624
err == RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS ?
615
- self -> on_assign : self -> on_revoke , args );
625
+ self -> u .Consumer .on_assign :
626
+ self -> u .Consumer .on_revoke , args );
616
627
617
628
Py_DECREF (args );
618
629
@@ -628,7 +639,7 @@ static void Consumer_rebalance_cb (rd_kafka_t *rk, rd_kafka_resp_err_t err,
628
639
* to synchronize state, if the user did not do this from callback,
629
640
* or there was no callback, or the callback failed, then we perform
630
641
* that assign() call here instead. */
631
- if (!self -> rebalance_assigned ) {
642
+ if (!self -> u . Consumer . rebalance_assigned ) {
632
643
if (err == RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS )
633
644
rd_kafka_assign (rk , c_parts );
634
645
else
@@ -642,10 +653,10 @@ static void Consumer_rebalance_cb (rd_kafka_t *rk, rd_kafka_resp_err_t err,
642
653
static void Consumer_offset_commit_cb (rd_kafka_t * rk , rd_kafka_resp_err_t err ,
643
654
rd_kafka_topic_partition_list_t * c_parts ,
644
655
void * opaque ) {
645
- Consumer * self = opaque ;
656
+ Handle * self = opaque ;
646
657
PyObject * parts , * k_err , * args , * result ;
647
658
648
- if (!self -> on_commit )
659
+ if (!self -> u . Consumer . on_commit )
649
660
return ;
650
661
651
662
PyEval_RestoreThread (self -> thread_state );
@@ -669,7 +680,7 @@ static void Consumer_offset_commit_cb (rd_kafka_t *rk, rd_kafka_resp_err_t err,
669
680
return ;
670
681
}
671
682
672
- result = PyObject_CallObject (self -> on_commit , args );
683
+ result = PyObject_CallObject (self -> u . Consumer . on_commit , args );
673
684
674
685
Py_DECREF (args );
675
686
@@ -687,16 +698,16 @@ static void Consumer_offset_commit_cb (rd_kafka_t *rk, rd_kafka_resp_err_t err,
687
698
688
699
static PyObject * Consumer_new (PyTypeObject * type , PyObject * args ,
689
700
PyObject * kwargs ) {
690
- Consumer * self ;
701
+ Handle * self ;
691
702
char errstr [256 ];
692
703
rd_kafka_conf_t * conf ;
693
704
694
- self = (Consumer * )ConsumerType .tp_alloc (& ConsumerType , 0 );
705
+ self = (Handle * )ConsumerType .tp_alloc (& ConsumerType , 0 );
695
706
if (!self )
696
707
return NULL ;
697
708
698
709
if (!(conf = common_conf_setup (RD_KAFKA_CONSUMER , self ,
699
- args , kwargs ))) {
710
+ args , kwargs ))) {
700
711
Py_DECREF (self );
701
712
return NULL ;
702
713
}
0 commit comments