MCPcopy Create free account
hub / github.com/chronoxor/FastBinaryEncoding / OrderModel

Class OrderModel

projects/Python/proto/proto.py:765–838  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

763
764# Fast Binary Encoding Order model
765class OrderModel(fbe.Model):
766 __slots__ = "_model",
767
768 def __init__(self, buffer=None):
769 super().__init__(buffer)
770 self._model = FieldModelOrder(self.buffer, 4)
771
772 @property
773 def model(self):
774 return self._model
775
776 # Get the model size
777 @property
778 def fbe_size(self):
779 return self._model.fbe_size + self._model.fbe_extra
780
781 # Get the model type
782 @property
783 def fbe_type(self):
784 return self.TYPE
785
786 TYPE = FieldModelOrder.TYPE
787
788 # Check if the struct value is valid
789 def verify(self):
790 if (self.buffer.offset + self._model.fbe_offset - 4) > self.buffer.size:
791 return False
792
793 fbe_full_size = self.read_uint32(self._model.fbe_offset - 4)
794 if fbe_full_size < self._model.fbe_size:
795 return False
796
797 return self._model.verify()
798
799 # Create a new model (begin phase)
800 def create_begin(self):
801 fbe_begin = self.buffer.allocate(4 + self._model.fbe_size)
802 return fbe_begin
803
804 # Create a new model (end phase)
805 def create_end(self, fbe_begin):
806 fbe_end = self.buffer.size
807 fbe_full_size = fbe_end - fbe_begin
808 self.write_uint32(self._model.fbe_offset - 4, fbe_full_size)
809 return fbe_full_size
810
811 # Serialize the struct value
812 def serialize(self, value):
813 fbe_begin = self.create_begin()
814 self._model.set(value)
815 fbe_full_size = self.create_end(fbe_begin)
816 return fbe_full_size
817
818 # Deserialize the struct value
819 def deserialize(self, value=None):
820 if value is None:
821 value = Order()
822

Callers 1

cloneMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected