Skip to content

Commit 2ca7e77

Browse files
committed
Add kafka.protocol.frame.KafkaBytes
1 parent 97261f4 commit 2ca7e77

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

kafka/protocol/frame.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
class KafkaBytes(bytearray):
2+
def __init__(self, size):
3+
super(KafkaBytes, self).__init__(size)
4+
self._idx = 0
5+
6+
def read(self, nbytes=None):
7+
if nbytes is None:
8+
nbytes = len(self) - self._idx
9+
start = self._idx
10+
self._idx += nbytes
11+
if self._idx > len(self):
12+
self._idx = len(self)
13+
return bytes(self[start:self._idx])
14+
15+
def write(self, data):
16+
start = self._idx
17+
self._idx += len(data)
18+
self[start:self._idx] = data
19+
20+
def seek(self, idx):
21+
self._idx = idx
22+
23+
def tell(self):
24+
return self._idx
25+
26+
def __str__(self):
27+
return 'KafkaBytes(%d)' % len(self)
28+
29+
def __repr__(self):
30+
return str(self)

0 commit comments

Comments
 (0)