|
|
@@ -13,16 +13,16 @@ class Reader(object):
|
|
|
self.f = open(self.file, "rb")
|
|
|
|
|
|
def __enter__(self):
|
|
|
- pass
|
|
|
+ pass
|
|
|
|
|
|
def __iter__(self):
|
|
|
return self
|
|
|
|
|
|
def next(self):
|
|
|
- header = self.f.read(4)
|
|
|
- if len(header) < 4:
|
|
|
- self.__exit__(None, None, None)
|
|
|
- raise StopIteration();
|
|
|
+ header = self.f.read(4)
|
|
|
+ if len(header) < 4:
|
|
|
+ self.__exit__(None, None, None)
|
|
|
+ raise StopIteration()
|
|
|
length = struct.unpack('>i', header)
|
|
|
bytes = self.f.read(length[0])
|
|
|
protoObj = self.protobufClass()
|
|
|
@@ -42,15 +42,15 @@ class Writer(object):
|
|
|
self.f = open(self.file, "wb")
|
|
|
|
|
|
def __enter__(self):
|
|
|
- pass
|
|
|
+ pass
|
|
|
|
|
|
def write(self, message):
|
|
|
- if isinstance(message, str):
|
|
|
+ if isinstance(message, str):
|
|
|
length = len(message)
|
|
|
self.f.write(struct.pack(">i", length))
|
|
|
self.f.write(message)
|
|
|
return
|
|
|
- if isinstance(message, _message.Message):
|
|
|
+ if isinstance(message, _message.Message):
|
|
|
bytes = message.SerializeToString()
|
|
|
length = len(bytes)
|
|
|
self.f.write(struct.pack(">i", length))
|
|
|
@@ -59,9 +59,15 @@ class Writer(object):
|
|
|
|
|
|
def flush(self):
|
|
|
self.f.flush()
|
|
|
-
|
|
|
- def __exit__(self, exc_type, exc_val, exc_tb):
|
|
|
+
|
|
|
+ def close(self):
|
|
|
self.f.close()
|
|
|
+
|
|
|
+ def isclosed(self):
|
|
|
+ return self.f.closed
|
|
|
+
|
|
|
+ def __exit__(self, exc_type, exc_val, exc_tb):
|
|
|
+ self.close()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
|
pass
|