From 84f4004100fc1da5d70228e12c23b0d52d2cfa9e Mon Sep 17 00:00:00 2001 From: Anders Blomdell <anders.blomdell@control.lth.se> Date: Thu, 26 Feb 2015 13:57:46 +0100 Subject: [PATCH] Added mark_begin and changed mark to mark_end to python writer --- lib/python/labcomm/LabComm.py | 19 ++++++++++++------- lib/python/labcomm/StreamWriter.py | 5 ++++- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/lib/python/labcomm/LabComm.py b/lib/python/labcomm/LabComm.py index d702a1c..57f70f4 100644 --- a/lib/python/labcomm/LabComm.py +++ b/lib/python/labcomm/LabComm.py @@ -759,24 +759,29 @@ class Encoder(Codec): self.writer.write(packer.pack(format, *args)) def add_decl(self, decl, index=0): - if super(Encoder, self).add_decl(decl, index) and index == 0: - decl.encode_decl(self) - self.writer.mark() + if index == 0: + self.writer.mark_begin(decl, None) + if super(Encoder, self).add_decl(decl, index): + decl.encode_decl(self) + self.writer.mark_end(decl, None) def add_ref(self, decl, index=0): ref = sample_ref(name=decl.name, decl=decl.decl, sample=decl) - if super(Encoder, self).add_ref(ref, index) and index == 0: - ref.encode_decl(self) - self.writer.mark() + if index == 0: + self.writer.mark_begin(decl, None) + if super(Encoder, self).add_ref(ref, index): + ref.encode_decl(self) + self.writer.mark_end(decl, None) def encode(self, object, decl=None): if decl == None: name = self.type_to_name[object.__class__] decl = self.name_to_decl[name] + self.writer.mark_begin(decl, object) self.encode_type_number(decl) with length_encoder(self) as e: decl.encode(e, object) - self.writer.mark() + self.writer.mark_end(decl, object) def encode_type_number(self, decl): try: diff --git a/lib/python/labcomm/StreamWriter.py b/lib/python/labcomm/StreamWriter.py index a85c43d..2fffc98 100644 --- a/lib/python/labcomm/StreamWriter.py +++ b/lib/python/labcomm/StreamWriter.py @@ -10,7 +10,10 @@ class StreamWriter: self.stream.write(data) pass - def mark(self): + def mark_begin(self, decl, value): + pass + + def mark_end(self, decl, value): self.stream.flush() pass -- GitLab